I’m facing an issue with interfacing QGroundControl, PX4 and Dronecode’s Camera Manager. The Camera-Manager is SYSTEM_ID 1 and COMPONENT_ID 100. Mavlink messages are routed by the PX4 which forwards messages between TELEM1 and TELEM2 on which Camera-Manager is connected (modified for a serial mavlink connection).
When using the Camera Widget on QGC, I attempt to set the Camera Mode to VIDEO or STILL. QGC sends a Mavlink COMMAND_LONG MAV_CMD_SET_CAMERA_MODE.
Camera manager returns an ACK that the mode switch is successful. Apparently, PX4 also sends an acknowledgement that the mode switch is not successful, which stems from here: PX4-Autopilot/mavlink_receiver.cpp at 5e7ebbe47c3637fcea236db14df5c67a0e97b6bb · PX4/PX4-Autopilot · GitHub
So QGC receives two ACKS for the command - one from Camera-Manager and one from PX4. Since the one from PX4 fails, QGC generates a warning that the command failed.
Is this expected behavior for PX4? Or should it simply forward any commands it receives that target other component IDs?