Skip to content

Mavlink messages from other components/systems can not be used #1809

@fseegraeber

Description

@fseegraeber

Hi there,

I've encountered following problem:

Currently all mavlink messages with system_id != 1 or component_id != 1 are discarded:

if (system_id !== this.currentSystemId || component_id !== 1) {
return
}

This is a problem when trying to use mavlink messages from a separate component e.g. in a Very Generic Indicator. If you have control over the communicating component you can work around this by setting system and component id of its messages to 1. Although with certain side effects, see below. It would be nice if this was not necessary.

As a concrete example I've recently integrated a separate hardware component into a BlueROV system. The components sends a sensor reading via mavlink to be displayed in Cockpit and also listens to a mavlink message to control attached lights. Using the above workaround you can get the messages to show up in Cockpit, with one caveat: The mavlink router service will stop forwarding messages of a certain component id to an endpoint if that endpoint sends messages containing said id. This means that in this concrete example you need to configure two separate endpoints for incoming and outgoing messages because the outgoing messages with component_id 1 will prevent all other BlueROV messages from being forwarded to it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions