nodes: # In-process MAVLink 2 simulator. Replaces an autopilot/SITL/MAVProxy # for examples and smoke tests; sends a HEARTBEAT every 500 ms over # UDP to whatever endpoint MAVLINK_SIM_PEER points at. - id: mavlink-sim build: cargo build -p mavlink2-bridge-example-mavlink-sim path: ../../target/debug/mavlink2-bridge-example-mavlink-sim env: MAVLINK_SIM_PEER: 127.0.0.1:14550 # The bridge node. Listens on udp://127.0.0.1:14550 (mavlink udpin), # decodes incoming MAVLink frames into per-message Arrow outputs, and # forwards Arrow inputs named `_cmd` back over the same # connection as MAVLink frames. - id: bridge build: cargo build -p dora-mavlink2-bridge-node path: ../../target/debug/dora-mavlink2-bridge-node env: MAVLINK_BRIDGE_CONFIG: | endpoint: udp://127.0.0.1:14550 inputs: heartbeat_cmd: heartbeat-emitter/heartbeat_cmd outputs: - heartbeat - sys_status - system_time - attitude - attitude_quaternion - local_position_ned - global_position_int - gps_raw_int - rc_channels - servo_output_raw - command_long - command_ack - mission_current # dora -> MAVLink direction: emits a HEARTBEAT_DATA Arrow row each # second; the bridge serialises it and writes it back over UDP. - id: heartbeat-emitter build: cargo build -p mavlink2-bridge-example-heartbeat-emitter path: ../../target/debug/mavlink2-bridge-example-heartbeat-emitter inputs: tick: dora/timer/secs/1 outputs: - heartbeat_cmd # MAVLink -> dora direction: prints each decoded HEARTBEAT. - id: telemetry-printer path: telemetry_printer.py inputs: heartbeat: bridge/heartbeat