diff --git a/msg/CMakeLists.txt b/msg/CMakeLists.txt index 0542639650..d154039e41 100644 --- a/msg/CMakeLists.txt +++ b/msg/CMakeLists.txt @@ -80,6 +80,7 @@ set(msg_files multirotor_motor_limits.msg obstacle_distance.msg offboard_control_mode.msg + onboard_computer_status.msg optical_flow.msg orbit_status.msg parameter_update.msg diff --git a/msg/onboard_computer_status.msg b/msg/onboard_computer_status.msg new file mode 100644 index 0000000000..5e429d42f8 --- /dev/null +++ b/msg/onboard_computer_status.msg @@ -0,0 +1,22 @@ +uint64 timestamp # time since system start (microseconds) +uint32 uptime # time since system boot (miliseconds) + +uint8 type # type of onboard computer + +uint8[8] cpu_cores +uint8 cpu_combined +uint8[4] gpu_cores +uint8[10] gpu_combined +int8 temperature_board +int8 tempearture_core +int16 fan_speed +uint32 ram_usage +uint32 ram_total +uint32[4] storage_type +uint32[4] storage_usage +uint32[4] storage_total +uint32 link_type +uint32 link_tx_rate +uint32 link_rx_rate +uint32 link_tx_max +uint32 link_rx_max diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index 953ea4066e..442e28f04f 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -2545,6 +2545,9 @@ MavlinkReceiver::handle_message_onboard_computer_status(mavlink_message_t *msg) mavlink_onboard_computer_status_t status_msg; mavlink_msg_onboard_computer_status_decode(msg, &status_msg); + onboard_computer_status_s onboard_computer_status_topic{}; + + _onboard_computer_status_pub.publish(onboard_computer_status_topic); } /** diff --git a/src/modules/mavlink/mavlink_receiver.h b/src/modules/mavlink/mavlink_receiver.h index 1d39f5a63b..f826883051 100644 --- a/src/modules/mavlink/mavlink_receiver.h +++ b/src/modules/mavlink/mavlink_receiver.h @@ -71,6 +71,7 @@ #include #include #include +#include #include #include #include @@ -228,6 +229,7 @@ private: uORB::Publication _landing_target_pose_pub{ORB_ID(landing_target_pose)}; uORB::Publication _obstacle_distance_pub{ORB_ID(obstacle_distance)}; uORB::Publication _offboard_control_mode_pub{ORB_ID(offboard_control_mode)}; + uORB::Publication _onboard_computer_status_pub{ORB_ID(onboard_computer_status)}; uORB::Publication _flow_pub{ORB_ID(optical_flow)}; uORB::Publication _pos_sp_triplet_pub{ORB_ID(position_setpoint_triplet)}; uORB::Publication _attitude_pub{ORB_ID(vehicle_attitude)};