cfs-tools / cfs-basecamp

Provides a framework and tools for developing, downloading, and integrating core Flight System (cFS) applications into an operational system.
Other
26 stars 4 forks source link

Add support for commanding a remote target via MQTT #40

Closed open-stemware closed 1 year ago

open-stemware commented 1 year ago

In order to support commanding a remote target via MQTT KIT_CI needs to be enhanced to provide a wrapped command message similar to KIT_TO tunnel message.

This issue is written against version 1.4 and this version still has CI_LAB which means KIT_CI first needs to be enhanced to process EDS input messages,

This also means the current MQTT SBMSG plugin will need to be changed to a SB telemetry plugin and a new MQTT plugin will need to be created for SB commands.

open-stemware commented 1 year ago

After looking into the issue, I don't think modifying KIT_CI is the best solution. Current thoughts:

  1. Modify GUI to have a remote commanding mode. When in remote target commanding mode, commands would be encoded in BinHex and sent in a new MQTT_GW wrapped command.
  2. This mode would be switched using the Remote Ops window.
  3. One thing I don't love about this solution is that Remote Ops depends on a non-default cFS app suite. This is probably okay for now because the remote ops configuration for starting/stopping a remote target also depends on the user doing extra configuration.
  4. A new MQTT_GW plugin is needed to publish these new commands.
  5. The existing MQTT_GW "sbmsg" plugin should be renamed to reflect that it only deals with telemetry messages.
  6. KIT_TO's "tunnel" and "wrapped" topic IDs should have clearer names like KIT_TO_SUB_WRAPPED_TLM and KIT_TO_PUB_WRAPPED_TLM