diff --git a/generate.sh b/generate.sh index b58ca54d4b111922c6d8a9e3874926c711b0f176..307092bdfd4d4b15a2284056fb0fe181be55c26e 100755 --- a/generate.sh +++ b/generate.sh @@ -1,3 +1,3 @@ cd mavlink -python3 -m pymavlink.tools.mavgen --lang=C --wire-protocol=1.0 --output=../mavlink_lib ../message_definitions/gemini.xml -python3 -m pymavlink.tools.mavgen --lang=Python --wire-protocol=1.0 --output=../mavlink_lib ../message_definitions/gemini.xml \ No newline at end of file +python3 -m pymavlink.tools.mavgen --lang=C --wire-protocol=1.0 --output=../mavlink_lib ../message_definitions/lyra.xml +python3 -m pymavlink.tools.mavgen --lang=Python --wire-protocol=1.0 --output=../mavlink_lib ../message_definitions/lyra.xml \ No newline at end of file diff --git a/mavlink_lib.py b/mavlink_lib.py index cceb7f4ada86da225b6d973acb61e508670867c0..cb6bfc395bbb6f418916d460c0dbe22c6db701b9 100644 --- a/mavlink_lib.py +++ b/mavlink_lib.py @@ -1,7 +1,7 @@ ''' MAVLink protocol implementation (auto-generated by mavgen.py) -Generated from: gemini.xml +Generated from: lyra.xml Note: this file has been auto-generated. DO NOT EDIT ''' diff --git a/mavlink_lib/lyra/lyra.h b/mavlink_lib/lyra/lyra.h new file mode 100644 index 0000000000000000000000000000000000000000..99e2bd715c971b07072c4f537039c10a7185b88b --- /dev/null +++ b/mavlink_lib/lyra/lyra.h @@ -0,0 +1,246 @@ +/** @file + * @brief MAVLink comm protocol generated from lyra.xml + * @see http://mavlink.org + */ +#pragma once +#ifndef MAVLINK_LYRA_H +#define MAVLINK_LYRA_H + +#ifndef MAVLINK_H + #error Wrong include order: MAVLINK_LYRA.H MUST NOT BE DIRECTLY USED. Include mavlink.h from the same directory instead or set ALL AND EVERY defines from MAVLINK.H manually accordingly, including the #define MAVLINK_H call. +#endif + +#undef MAVLINK_THIS_XML_HASH +#define MAVLINK_THIS_XML_HASH 2073946258943493075 + +#ifdef __cplusplus +extern "C" { +#endif + +// MESSAGE LENGTHS AND CRCS + +#ifndef MAVLINK_MESSAGE_LENGTHS +#define MAVLINK_MESSAGE_LENGTHS {0, 8, 1, 1, 1, 1, 5, 1, 1, 4, 4, 12, 8, 2, 4, 8, 1, 5, 5, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 74, 64, 32, 60, 32, 32, 32, 32, 56, 21, 5, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 46, 28, 27, 53, 77, 29, 176, 163, 92, 76, 42, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#endif + +#ifndef MAVLINK_MESSAGE_CRCS +#define MAVLINK_MESSAGE_CRCS {0, 136, 198, 165, 248, 184, 215, 160, 226, 113, 38, 71, 67, 218, 44, 81, 181, 110, 22, 65, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 146, 57, 72, 87, 229, 245, 212, 140, 148, 6, 155, 87, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 242, 142, 108, 133, 234, 66, 11, 214, 84, 245, 115, 63, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#endif + +#include "../protocol.h" + +#define MAVLINK_ENABLED_LYRA + +// ENUM DEFINITIONS + + +/** @brief Enum that lists all the system IDs of the various devices */ +#ifndef HAVE_ENUM_SysIDs +#define HAVE_ENUM_SysIDs +typedef enum SysIDs +{ + MAV_SYSID_MAIN=1, /* | */ + MAV_SYSID_PAYLOAD=2, /* | */ + MAV_SYSID_RIG=3, /* | */ + MAV_SYSID_GS=4, /* | */ + SysIDs_ENUM_END=5, /* | */ +} SysIDs; +#endif + +/** @brief Enum list for all the telemetries that can be requested */ +#ifndef HAVE_ENUM_SystemTMList +#define HAVE_ENUM_SystemTMList +typedef enum SystemTMList +{ + MAV_SYS_ID=1, /* State of init results about system hardware/software components | */ + MAV_FSM_ID=2, /* States of all On-Board FSMs | */ + MAV_PIN_OBS_ID=3, /* Pin observer data | */ + MAV_LOGGER_ID=4, /* SD Logger stats | */ + MAV_MAVLINK_STATS=5, /* Mavlink driver stats | */ + MAV_TASK_STATS_ID=6, /* Task scheduler statistics answer: n mavlink messages where n is the number of tasks | */ + MAV_ADA_ID=7, /* ADA Status | */ + MAV_NAS_ID=8, /* NavigationSystem data | */ + MAV_MEA_ID=9, /* MEA Status | */ + MAV_CAN_ID=10, /* Canbus stats | */ + MAV_FLIGHT_ID=11, /* Flight telemetry | */ + MAV_STATS_ID=12, /* Satistics telemetry | */ + MAV_SENSORS_STATE_ID=13, /* Sensors init state telemetry | */ + MAV_GSE_ID=14, /* Ground Segnement Equipment | */ + MAV_MOTOR_ID=15, /* Rocket Motor data | */ + SystemTMList_ENUM_END=16, /* | */ +} SystemTMList; +#endif + +/** @brief Enum list of all sensors telemetries that can be requested */ +#ifndef HAVE_ENUM_SensorsTMList +#define HAVE_ENUM_SensorsTMList +typedef enum SensorsTMList +{ + MAV_GPS_ID=1, /* GPS data | */ + MAV_BMX160_ID=2, /* BMX160 IMU data | */ + MAV_VN100_ID=3, /* VN100 IMU data | */ + MAV_MPU9250_ID=4, /* MPU9250 IMU data | */ + MAV_ADS_ID=5, /* ADS 8 channel ADC data | */ + MAV_MS5803_ID=6, /* MS5803 barometer data | */ + MAV_BME280_ID=7, /* BME280 barometer data | */ + MAV_CURRENT_SENSE_ID=8, /* Electrical current sensors data | */ + MAV_LIS3MDL_ID=9, /* LIS3MDL compass data | */ + MAV_DPL_PRESS_ID=10, /* Deployment pressure data | */ + MAV_STATIC_PRESS_ID=11, /* Static pressure data | */ + MAV_PITOT_PRESS_ID=12, /* Pitot pressure data | */ + MAV_BATTERY_VOLTAGE_ID=13, /* Battery voltage data | */ + MAV_LOAD_CELL_ID=14, /* Load cell data | */ + MAV_FILLING_PRESS_ID=15, /* Filling line pressure | */ + MAV_TANK_TOP_PRESS_ID=16, /* Top tank pressure | */ + MAV_TANK_BOTTOM_PRESS_ID=17, /* Bottom tank pressure | */ + MAV_TANK_TEMP_ID=18, /* Tank temperature | */ + MAV_COMBUSTION_PRESS_ID=19, /* Combustion chamber pressure | */ + MAV_VESSEL_PRESS_ID=20, /* Vessel pressure | */ + MAV_LOAD_CELL_VESSEL_ID=21, /* Vessel tank weight | */ + MAV_LOAD_CELL_TANK_ID=22, /* Tank weight | */ + MAV_LIS2MDL_ID=23, /* Magnetometer data | */ + MAV_LPS28DFW_ID=24, /* Pressure sensor data | */ + MAV_LSM6DSRX_ID=25, /* IMU data | */ + MAV_H3LIS331DL_ID=26, /* 400G accelerometer | */ + MAV_LPS22DF_ID=27, /* Pressure sensor data | */ + SensorsTMList_ENUM_END=28, /* | */ +} SensorsTMList; +#endif + +/** @brief Enum of the commands */ +#ifndef HAVE_ENUM_MavCommandList +#define HAVE_ENUM_MavCommandList +typedef enum MavCommandList +{ + MAV_CMD_ARM=1, /* Command to arm the rocket | */ + MAV_CMD_DISARM=2, /* Command to disarm the rocket | */ + MAV_CMD_CALIBRATE=3, /* Command to trigger the calibration | */ + MAV_CMD_SAVE_CALIBRATION=4, /* Command to save the current calibration into a file | */ + MAV_CMD_FORCE_INIT=5, /* Command to init the rocket | */ + MAV_CMD_FORCE_LAUNCH=6, /* Command to force the launch state on the rocket | */ + MAV_CMD_FORCE_LANDING=7, /* Command to communicate the end of the mission and close the file descriptors in the SD card | */ + MAV_CMD_FORCE_APOGEE=8, /* Command to trigger the apogee event | */ + MAV_CMD_FORCE_EXPULSION=9, /* Command to open the nosecone | */ + MAV_CMD_FORCE_DEPLOYMENT=10, /* Command to activate the thermal cutters and cut the drogue, activating both thermal cutters sequentially | */ + MAV_CMD_START_LOGGING=11, /* Command to enable sensor logging | */ + MAV_CMD_STOP_LOGGING=12, /* Command to permanently close the log file | */ + MAV_CMD_FORCE_REBOOT=13, /* Command to reset the board from test status | */ + MAV_CMD_ENTER_TEST_MODE=14, /* Command to enter the test mode | */ + MAV_CMD_EXIT_TEST_MODE=15, /* Command to exit the test mode | */ + MAV_CMD_START_RECORDING=16, /* Command to start the internal cameras recordings | */ + MAV_CMD_STOP_RECORDING=17, /* Command to stop the internal cameras recordings | */ + MavCommandList_ENUM_END=18, /* | */ +} MavCommandList; +#endif + +/** @brief Enum of all the servos used on Gemini */ +#ifndef HAVE_ENUM_ServosList +#define HAVE_ENUM_ServosList +typedef enum ServosList +{ + AIR_BRAKES_SERVO=1, /* | */ + EXPULSION_SERVO=2, /* | */ + PARAFOIL_LEFT_SERVO=3, /* | */ + PARAFOIL_RIGHT_SERVO=4, /* | */ + MAIN_VALVE=5, /* | */ + VENTING_VALVE=6, /* | */ + RELEASE_VALVE=7, /* | */ + FILLING_VALVE=8, /* | */ + DISCONNECT_SERVO=9, /* | */ + ServosList_ENUM_END=10, /* | */ +} ServosList; +#endif + +/** @brief Enum of all the pins used on Gemini */ +#ifndef HAVE_ENUM_PinsList +#define HAVE_ENUM_PinsList +typedef enum PinsList +{ + LAUNCH_PIN=1, /* | */ + NOSECONE_PIN=2, /* | */ + DEPLOYMENT_PIN=3, /* | */ + QUICK_CONNECTOR_PIN=4, /* | */ + PinsList_ENUM_END=5, /* | */ +} PinsList; +#endif + +// MAVLINK VERSION + +#ifndef MAVLINK_VERSION +#define MAVLINK_VERSION 1 +#endif + +#if (MAVLINK_VERSION == 0) +#undef MAVLINK_VERSION +#define MAVLINK_VERSION 1 +#endif + +// MESSAGE DEFINITIONS +#include "./mavlink_msg_ping_tc.h" +#include "./mavlink_msg_command_tc.h" +#include "./mavlink_msg_system_tm_request_tc.h" +#include "./mavlink_msg_sensor_tm_request_tc.h" +#include "./mavlink_msg_servo_tm_request_tc.h" +#include "./mavlink_msg_set_servo_angle_tc.h" +#include "./mavlink_msg_wiggle_servo_tc.h" +#include "./mavlink_msg_reset_servo_tc.h" +#include "./mavlink_msg_set_reference_altitude_tc.h" +#include "./mavlink_msg_set_reference_temperature_tc.h" +#include "./mavlink_msg_set_orientation_tc.h" +#include "./mavlink_msg_set_coordinates_tc.h" +#include "./mavlink_msg_raw_event_tc.h" +#include "./mavlink_msg_set_deployment_altitude_tc.h" +#include "./mavlink_msg_set_target_coordinates_tc.h" +#include "./mavlink_msg_set_algorithm_tc.h" +#include "./mavlink_msg_set_atomic_valve_timing_tc.h" +#include "./mavlink_msg_set_valve_maximum_aperture_tc.h" +#include "./mavlink_msg_conrig_state_tc.h" +#include "./mavlink_msg_set_ignition_time_tc.h" +#include "./mavlink_msg_ack_tm.h" +#include "./mavlink_msg_nack_tm.h" +#include "./mavlink_msg_gps_tm.h" +#include "./mavlink_msg_imu_tm.h" +#include "./mavlink_msg_pressure_tm.h" +#include "./mavlink_msg_adc_tm.h" +#include "./mavlink_msg_voltage_tm.h" +#include "./mavlink_msg_current_tm.h" +#include "./mavlink_msg_temp_tm.h" +#include "./mavlink_msg_load_tm.h" +#include "./mavlink_msg_attitude_tm.h" +#include "./mavlink_msg_sensor_state_tm.h" +#include "./mavlink_msg_servo_tm.h" +#include "./mavlink_msg_pin_tm.h" +#include "./mavlink_msg_receiver_tm.h" +#include "./mavlink_msg_sys_tm.h" +#include "./mavlink_msg_fsm_tm.h" +#include "./mavlink_msg_logger_tm.h" +#include "./mavlink_msg_mavlink_stats_tm.h" +#include "./mavlink_msg_task_stats_tm.h" +#include "./mavlink_msg_ada_tm.h" +#include "./mavlink_msg_nas_tm.h" +#include "./mavlink_msg_mea_tm.h" +#include "./mavlink_msg_rocket_flight_tm.h" +#include "./mavlink_msg_payload_flight_tm.h" +#include "./mavlink_msg_rocket_stats_tm.h" +#include "./mavlink_msg_payload_stats_tm.h" +#include "./mavlink_msg_gse_tm.h" +#include "./mavlink_msg_motor_tm.h" + +// base include + + +#undef MAVLINK_THIS_XML_HASH +#define MAVLINK_THIS_XML_HASH 2073946258943493075 + +#if MAVLINK_THIS_XML_HASH == MAVLINK_PRIMARY_XML_HASH +# define MAVLINK_MESSAGE_INFO {{"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PING_TC, MAVLINK_MESSAGE_INFO_COMMAND_TC, MAVLINK_MESSAGE_INFO_SYSTEM_TM_REQUEST_TC, MAVLINK_MESSAGE_INFO_SENSOR_TM_REQUEST_TC, MAVLINK_MESSAGE_INFO_SERVO_TM_REQUEST_TC, MAVLINK_MESSAGE_INFO_SET_SERVO_ANGLE_TC, MAVLINK_MESSAGE_INFO_WIGGLE_SERVO_TC, MAVLINK_MESSAGE_INFO_RESET_SERVO_TC, MAVLINK_MESSAGE_INFO_SET_REFERENCE_ALTITUDE_TC, MAVLINK_MESSAGE_INFO_SET_REFERENCE_TEMPERATURE_TC, MAVLINK_MESSAGE_INFO_SET_ORIENTATION_TC, MAVLINK_MESSAGE_INFO_SET_COORDINATES_TC, MAVLINK_MESSAGE_INFO_RAW_EVENT_TC, MAVLINK_MESSAGE_INFO_SET_DEPLOYMENT_ALTITUDE_TC, MAVLINK_MESSAGE_INFO_SET_TARGET_COORDINATES_TC, MAVLINK_MESSAGE_INFO_SET_ALGORITHM_TC, MAVLINK_MESSAGE_INFO_SET_ATOMIC_VALVE_TIMING_TC, MAVLINK_MESSAGE_INFO_SET_VALVE_MAXIMUM_APERTURE_TC, MAVLINK_MESSAGE_INFO_CONRIG_STATE_TC, MAVLINK_MESSAGE_INFO_SET_IGNITION_TIME_TC, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_ACK_TM, MAVLINK_MESSAGE_INFO_NACK_TM, MAVLINK_MESSAGE_INFO_GPS_TM, MAVLINK_MESSAGE_INFO_IMU_TM, MAVLINK_MESSAGE_INFO_PRESSURE_TM, MAVLINK_MESSAGE_INFO_ADC_TM, MAVLINK_MESSAGE_INFO_VOLTAGE_TM, MAVLINK_MESSAGE_INFO_CURRENT_TM, MAVLINK_MESSAGE_INFO_TEMP_TM, MAVLINK_MESSAGE_INFO_LOAD_TM, MAVLINK_MESSAGE_INFO_ATTITUDE_TM, MAVLINK_MESSAGE_INFO_SENSOR_STATE_TM, MAVLINK_MESSAGE_INFO_SERVO_TM, MAVLINK_MESSAGE_INFO_PIN_TM, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_RECEIVER_TM, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_SYS_TM, MAVLINK_MESSAGE_INFO_FSM_TM, MAVLINK_MESSAGE_INFO_LOGGER_TM, MAVLINK_MESSAGE_INFO_MAVLINK_STATS_TM, MAVLINK_MESSAGE_INFO_TASK_STATS_TM, MAVLINK_MESSAGE_INFO_ADA_TM, MAVLINK_MESSAGE_INFO_NAS_TM, MAVLINK_MESSAGE_INFO_MEA_TM, MAVLINK_MESSAGE_INFO_ROCKET_FLIGHT_TM, MAVLINK_MESSAGE_INFO_PAYLOAD_FLIGHT_TM, MAVLINK_MESSAGE_INFO_ROCKET_STATS_TM, MAVLINK_MESSAGE_INFO_PAYLOAD_STATS_TM, MAVLINK_MESSAGE_INFO_GSE_TM, MAVLINK_MESSAGE_INFO_MOTOR_TM, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}} +# define MAVLINK_MESSAGE_NAMES {{ "ACK_TM", 100 }, { "ADA_TM", 205 }, { "ADC_TM", 105 }, { "ATTITUDE_TM", 110 }, { "COMMAND_TC", 2 }, { "CONRIG_STATE_TC", 19 }, { "CURRENT_TM", 107 }, { "FSM_TM", 201 }, { "GPS_TM", 102 }, { "GSE_TM", 212 }, { "IMU_TM", 103 }, { "LOAD_TM", 109 }, { "LOGGER_TM", 202 }, { "MAVLINK_STATS_TM", 203 }, { "MEA_TM", 207 }, { "MOTOR_TM", 213 }, { "NACK_TM", 101 }, { "NAS_TM", 206 }, { "PAYLOAD_FLIGHT_TM", 209 }, { "PAYLOAD_STATS_TM", 211 }, { "PING_TC", 1 }, { "PIN_TM", 113 }, { "PRESSURE_TM", 104 }, { "RAW_EVENT_TC", 13 }, { "RECEIVER_TM", 150 }, { "RESET_SERVO_TC", 8 }, { "ROCKET_FLIGHT_TM", 208 }, { "ROCKET_STATS_TM", 210 }, { "SENSOR_STATE_TM", 111 }, { "SENSOR_TM_REQUEST_TC", 4 }, { "SERVO_TM", 112 }, { "SERVO_TM_REQUEST_TC", 5 }, { "SET_ALGORITHM_TC", 16 }, { "SET_ATOMIC_VALVE_TIMING_TC", 17 }, { "SET_COORDINATES_TC", 12 }, { "SET_DEPLOYMENT_ALTITUDE_TC", 14 }, { "SET_IGNITION_TIME_TC", 20 }, { "SET_ORIENTATION_TC", 11 }, { "SET_REFERENCE_ALTITUDE_TC", 9 }, { "SET_REFERENCE_TEMPERATURE_TC", 10 }, { "SET_SERVO_ANGLE_TC", 6 }, { "SET_TARGET_COORDINATES_TC", 15 }, { "SET_VALVE_MAXIMUM_APERTURE_TC", 18 }, { "SYSTEM_TM_REQUEST_TC", 3 }, { "SYS_TM", 200 }, { "TASK_STATS_TM", 204 }, { "TEMP_TM", 108 }, { "VOLTAGE_TM", 106 }, { "WIGGLE_SERVO_TC", 7 }} +# if MAVLINK_COMMAND_24BIT +# include "../mavlink_get_info.h" +# endif +#endif + +#ifdef __cplusplus +} +#endif // __cplusplus +#endif // MAVLINK_LYRA_H diff --git a/mavlink_lib/lyra/mavlink.h b/mavlink_lib/lyra/mavlink.h new file mode 100644 index 0000000000000000000000000000000000000000..ac8a5e18d8249122fc3294342f94e73f907c97c0 --- /dev/null +++ b/mavlink_lib/lyra/mavlink.h @@ -0,0 +1,34 @@ +/** @file + * @brief MAVLink comm protocol built from lyra.xml + * @see http://mavlink.org + */ +#pragma once +#ifndef MAVLINK_H +#define MAVLINK_H + +#define MAVLINK_PRIMARY_XML_HASH 2073946258943493075 + +#ifndef MAVLINK_STX +#define MAVLINK_STX 254 +#endif + +#ifndef MAVLINK_ENDIAN +#define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN +#endif + +#ifndef MAVLINK_ALIGNED_FIELDS +#define MAVLINK_ALIGNED_FIELDS 1 +#endif + +#ifndef MAVLINK_CRC_EXTRA +#define MAVLINK_CRC_EXTRA 1 +#endif + +#ifndef MAVLINK_COMMAND_24BIT +#define MAVLINK_COMMAND_24BIT 0 +#endif + +#include "version.h" +#include "lyra.h" + +#endif // MAVLINK_H diff --git a/mavlink_lib/lyra/mavlink_msg_ack_tm.h b/mavlink_lib/lyra/mavlink_msg_ack_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..8abc2a50773e576580ab8179be7c6a2348071c59 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_ack_tm.h @@ -0,0 +1,238 @@ +#pragma once +// MESSAGE ACK_TM PACKING + +#define MAVLINK_MSG_ID_ACK_TM 100 + + +typedef struct __mavlink_ack_tm_t { + uint8_t recv_msgid; /*< Message id of the received message*/ + uint8_t seq_ack; /*< Sequence number of the received message*/ +} mavlink_ack_tm_t; + +#define MAVLINK_MSG_ID_ACK_TM_LEN 2 +#define MAVLINK_MSG_ID_ACK_TM_MIN_LEN 2 +#define MAVLINK_MSG_ID_100_LEN 2 +#define MAVLINK_MSG_ID_100_MIN_LEN 2 + +#define MAVLINK_MSG_ID_ACK_TM_CRC 50 +#define MAVLINK_MSG_ID_100_CRC 50 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_ACK_TM { \ + 100, \ + "ACK_TM", \ + 2, \ + { { "recv_msgid", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_ack_tm_t, recv_msgid) }, \ + { "seq_ack", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_ack_tm_t, seq_ack) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_ACK_TM { \ + "ACK_TM", \ + 2, \ + { { "recv_msgid", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_ack_tm_t, recv_msgid) }, \ + { "seq_ack", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_ack_tm_t, seq_ack) }, \ + } \ +} +#endif + +/** + * @brief Pack a ack_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param recv_msgid Message id of the received message + * @param seq_ack Sequence number of the received message + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ack_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t recv_msgid, uint8_t seq_ack) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ACK_TM_LEN]; + _mav_put_uint8_t(buf, 0, recv_msgid); + _mav_put_uint8_t(buf, 1, seq_ack); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ACK_TM_LEN); +#else + mavlink_ack_tm_t packet; + packet.recv_msgid = recv_msgid; + packet.seq_ack = seq_ack; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ACK_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ACK_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ACK_TM_MIN_LEN, MAVLINK_MSG_ID_ACK_TM_LEN, MAVLINK_MSG_ID_ACK_TM_CRC); +} + +/** + * @brief Pack a ack_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param recv_msgid Message id of the received message + * @param seq_ack Sequence number of the received message + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ack_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t recv_msgid,uint8_t seq_ack) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ACK_TM_LEN]; + _mav_put_uint8_t(buf, 0, recv_msgid); + _mav_put_uint8_t(buf, 1, seq_ack); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ACK_TM_LEN); +#else + mavlink_ack_tm_t packet; + packet.recv_msgid = recv_msgid; + packet.seq_ack = seq_ack; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ACK_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ACK_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ACK_TM_MIN_LEN, MAVLINK_MSG_ID_ACK_TM_LEN, MAVLINK_MSG_ID_ACK_TM_CRC); +} + +/** + * @brief Encode a ack_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param ack_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ack_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_ack_tm_t* ack_tm) +{ + return mavlink_msg_ack_tm_pack(system_id, component_id, msg, ack_tm->recv_msgid, ack_tm->seq_ack); +} + +/** + * @brief Encode a ack_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param ack_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ack_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_ack_tm_t* ack_tm) +{ + return mavlink_msg_ack_tm_pack_chan(system_id, component_id, chan, msg, ack_tm->recv_msgid, ack_tm->seq_ack); +} + +/** + * @brief Send a ack_tm message + * @param chan MAVLink channel to send the message + * + * @param recv_msgid Message id of the received message + * @param seq_ack Sequence number of the received message + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_ack_tm_send(mavlink_channel_t chan, uint8_t recv_msgid, uint8_t seq_ack) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ACK_TM_LEN]; + _mav_put_uint8_t(buf, 0, recv_msgid); + _mav_put_uint8_t(buf, 1, seq_ack); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ACK_TM, buf, MAVLINK_MSG_ID_ACK_TM_MIN_LEN, MAVLINK_MSG_ID_ACK_TM_LEN, MAVLINK_MSG_ID_ACK_TM_CRC); +#else + mavlink_ack_tm_t packet; + packet.recv_msgid = recv_msgid; + packet.seq_ack = seq_ack; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ACK_TM, (const char *)&packet, MAVLINK_MSG_ID_ACK_TM_MIN_LEN, MAVLINK_MSG_ID_ACK_TM_LEN, MAVLINK_MSG_ID_ACK_TM_CRC); +#endif +} + +/** + * @brief Send a ack_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_ack_tm_send_struct(mavlink_channel_t chan, const mavlink_ack_tm_t* ack_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_ack_tm_send(chan, ack_tm->recv_msgid, ack_tm->seq_ack); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ACK_TM, (const char *)ack_tm, MAVLINK_MSG_ID_ACK_TM_MIN_LEN, MAVLINK_MSG_ID_ACK_TM_LEN, MAVLINK_MSG_ID_ACK_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_ACK_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_ack_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t recv_msgid, uint8_t seq_ack) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, recv_msgid); + _mav_put_uint8_t(buf, 1, seq_ack); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ACK_TM, buf, MAVLINK_MSG_ID_ACK_TM_MIN_LEN, MAVLINK_MSG_ID_ACK_TM_LEN, MAVLINK_MSG_ID_ACK_TM_CRC); +#else + mavlink_ack_tm_t *packet = (mavlink_ack_tm_t *)msgbuf; + packet->recv_msgid = recv_msgid; + packet->seq_ack = seq_ack; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ACK_TM, (const char *)packet, MAVLINK_MSG_ID_ACK_TM_MIN_LEN, MAVLINK_MSG_ID_ACK_TM_LEN, MAVLINK_MSG_ID_ACK_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE ACK_TM UNPACKING + + +/** + * @brief Get field recv_msgid from ack_tm message + * + * @return Message id of the received message + */ +static inline uint8_t mavlink_msg_ack_tm_get_recv_msgid(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Get field seq_ack from ack_tm message + * + * @return Sequence number of the received message + */ +static inline uint8_t mavlink_msg_ack_tm_get_seq_ack(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 1); +} + +/** + * @brief Decode a ack_tm message into a struct + * + * @param msg The message to decode + * @param ack_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_ack_tm_decode(const mavlink_message_t* msg, mavlink_ack_tm_t* ack_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + ack_tm->recv_msgid = mavlink_msg_ack_tm_get_recv_msgid(msg); + ack_tm->seq_ack = mavlink_msg_ack_tm_get_seq_ack(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_ACK_TM_LEN? msg->len : MAVLINK_MSG_ID_ACK_TM_LEN; + memset(ack_tm, 0, MAVLINK_MSG_ID_ACK_TM_LEN); + memcpy(ack_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_ada_tm.h b/mavlink_lib/lyra/mavlink_msg_ada_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..f96a75c0db6fcd54bea1d9bb6658860e7e998179 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_ada_tm.h @@ -0,0 +1,513 @@ +#pragma once +// MESSAGE ADA_TM PACKING + +#define MAVLINK_MSG_ID_ADA_TM 205 + + +typedef struct __mavlink_ada_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float kalman_x0; /*< Kalman state variable 0 (pressure)*/ + float kalman_x1; /*< Kalman state variable 1 (pressure velocity)*/ + float kalman_x2; /*< Kalman state variable 2 (pressure acceleration)*/ + float vertical_speed; /*< [m/s] Vertical speed computed by the ADA*/ + float msl_altitude; /*< [m] Altitude w.r.t. mean sea level*/ + float ref_pressure; /*< [Pa] Calibration pressure*/ + float ref_altitude; /*< [m] Calibration altitude*/ + float ref_temperature; /*< [degC] Calibration temperature*/ + float msl_pressure; /*< [Pa] Expected pressure at mean sea level*/ + float msl_temperature; /*< [degC] Expected temperature at mean sea level*/ + float dpl_altitude; /*< [m] Main parachute deployment altituyde*/ + uint8_t state; /*< ADA current state*/ +} mavlink_ada_tm_t; + +#define MAVLINK_MSG_ID_ADA_TM_LEN 53 +#define MAVLINK_MSG_ID_ADA_TM_MIN_LEN 53 +#define MAVLINK_MSG_ID_205_LEN 53 +#define MAVLINK_MSG_ID_205_MIN_LEN 53 + +#define MAVLINK_MSG_ID_ADA_TM_CRC 234 +#define MAVLINK_MSG_ID_205_CRC 234 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_ADA_TM { \ + 205, \ + "ADA_TM", \ + 13, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_ada_tm_t, timestamp) }, \ + { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 52, offsetof(mavlink_ada_tm_t, state) }, \ + { "kalman_x0", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_ada_tm_t, kalman_x0) }, \ + { "kalman_x1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_ada_tm_t, kalman_x1) }, \ + { "kalman_x2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_ada_tm_t, kalman_x2) }, \ + { "vertical_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_ada_tm_t, vertical_speed) }, \ + { "msl_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_ada_tm_t, msl_altitude) }, \ + { "ref_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ada_tm_t, ref_pressure) }, \ + { "ref_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ada_tm_t, ref_altitude) }, \ + { "ref_temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ada_tm_t, ref_temperature) }, \ + { "msl_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ada_tm_t, msl_pressure) }, \ + { "msl_temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ada_tm_t, msl_temperature) }, \ + { "dpl_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ada_tm_t, dpl_altitude) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_ADA_TM { \ + "ADA_TM", \ + 13, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_ada_tm_t, timestamp) }, \ + { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 52, offsetof(mavlink_ada_tm_t, state) }, \ + { "kalman_x0", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_ada_tm_t, kalman_x0) }, \ + { "kalman_x1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_ada_tm_t, kalman_x1) }, \ + { "kalman_x2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_ada_tm_t, kalman_x2) }, \ + { "vertical_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_ada_tm_t, vertical_speed) }, \ + { "msl_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_ada_tm_t, msl_altitude) }, \ + { "ref_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ada_tm_t, ref_pressure) }, \ + { "ref_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ada_tm_t, ref_altitude) }, \ + { "ref_temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ada_tm_t, ref_temperature) }, \ + { "msl_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ada_tm_t, msl_pressure) }, \ + { "msl_temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ada_tm_t, msl_temperature) }, \ + { "dpl_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ada_tm_t, dpl_altitude) }, \ + } \ +} +#endif + +/** + * @brief Pack a ada_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param state ADA current state + * @param kalman_x0 Kalman state variable 0 (pressure) + * @param kalman_x1 Kalman state variable 1 (pressure velocity) + * @param kalman_x2 Kalman state variable 2 (pressure acceleration) + * @param vertical_speed [m/s] Vertical speed computed by the ADA + * @param msl_altitude [m] Altitude w.r.t. mean sea level + * @param ref_pressure [Pa] Calibration pressure + * @param ref_altitude [m] Calibration altitude + * @param ref_temperature [degC] Calibration temperature + * @param msl_pressure [Pa] Expected pressure at mean sea level + * @param msl_temperature [degC] Expected temperature at mean sea level + * @param dpl_altitude [m] Main parachute deployment altituyde + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ada_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t state, float kalman_x0, float kalman_x1, float kalman_x2, float vertical_speed, float msl_altitude, float ref_pressure, float ref_altitude, float ref_temperature, float msl_pressure, float msl_temperature, float dpl_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ADA_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, kalman_x0); + _mav_put_float(buf, 12, kalman_x1); + _mav_put_float(buf, 16, kalman_x2); + _mav_put_float(buf, 20, vertical_speed); + _mav_put_float(buf, 24, msl_altitude); + _mav_put_float(buf, 28, ref_pressure); + _mav_put_float(buf, 32, ref_altitude); + _mav_put_float(buf, 36, ref_temperature); + _mav_put_float(buf, 40, msl_pressure); + _mav_put_float(buf, 44, msl_temperature); + _mav_put_float(buf, 48, dpl_altitude); + _mav_put_uint8_t(buf, 52, state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ADA_TM_LEN); +#else + mavlink_ada_tm_t packet; + packet.timestamp = timestamp; + packet.kalman_x0 = kalman_x0; + packet.kalman_x1 = kalman_x1; + packet.kalman_x2 = kalman_x2; + packet.vertical_speed = vertical_speed; + packet.msl_altitude = msl_altitude; + packet.ref_pressure = ref_pressure; + packet.ref_altitude = ref_altitude; + packet.ref_temperature = ref_temperature; + packet.msl_pressure = msl_pressure; + packet.msl_temperature = msl_temperature; + packet.dpl_altitude = dpl_altitude; + packet.state = state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ADA_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ADA_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ADA_TM_MIN_LEN, MAVLINK_MSG_ID_ADA_TM_LEN, MAVLINK_MSG_ID_ADA_TM_CRC); +} + +/** + * @brief Pack a ada_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param state ADA current state + * @param kalman_x0 Kalman state variable 0 (pressure) + * @param kalman_x1 Kalman state variable 1 (pressure velocity) + * @param kalman_x2 Kalman state variable 2 (pressure acceleration) + * @param vertical_speed [m/s] Vertical speed computed by the ADA + * @param msl_altitude [m] Altitude w.r.t. mean sea level + * @param ref_pressure [Pa] Calibration pressure + * @param ref_altitude [m] Calibration altitude + * @param ref_temperature [degC] Calibration temperature + * @param msl_pressure [Pa] Expected pressure at mean sea level + * @param msl_temperature [degC] Expected temperature at mean sea level + * @param dpl_altitude [m] Main parachute deployment altituyde + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ada_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t state,float kalman_x0,float kalman_x1,float kalman_x2,float vertical_speed,float msl_altitude,float ref_pressure,float ref_altitude,float ref_temperature,float msl_pressure,float msl_temperature,float dpl_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ADA_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, kalman_x0); + _mav_put_float(buf, 12, kalman_x1); + _mav_put_float(buf, 16, kalman_x2); + _mav_put_float(buf, 20, vertical_speed); + _mav_put_float(buf, 24, msl_altitude); + _mav_put_float(buf, 28, ref_pressure); + _mav_put_float(buf, 32, ref_altitude); + _mav_put_float(buf, 36, ref_temperature); + _mav_put_float(buf, 40, msl_pressure); + _mav_put_float(buf, 44, msl_temperature); + _mav_put_float(buf, 48, dpl_altitude); + _mav_put_uint8_t(buf, 52, state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ADA_TM_LEN); +#else + mavlink_ada_tm_t packet; + packet.timestamp = timestamp; + packet.kalman_x0 = kalman_x0; + packet.kalman_x1 = kalman_x1; + packet.kalman_x2 = kalman_x2; + packet.vertical_speed = vertical_speed; + packet.msl_altitude = msl_altitude; + packet.ref_pressure = ref_pressure; + packet.ref_altitude = ref_altitude; + packet.ref_temperature = ref_temperature; + packet.msl_pressure = msl_pressure; + packet.msl_temperature = msl_temperature; + packet.dpl_altitude = dpl_altitude; + packet.state = state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ADA_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ADA_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ADA_TM_MIN_LEN, MAVLINK_MSG_ID_ADA_TM_LEN, MAVLINK_MSG_ID_ADA_TM_CRC); +} + +/** + * @brief Encode a ada_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param ada_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ada_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_ada_tm_t* ada_tm) +{ + return mavlink_msg_ada_tm_pack(system_id, component_id, msg, ada_tm->timestamp, ada_tm->state, ada_tm->kalman_x0, ada_tm->kalman_x1, ada_tm->kalman_x2, ada_tm->vertical_speed, ada_tm->msl_altitude, ada_tm->ref_pressure, ada_tm->ref_altitude, ada_tm->ref_temperature, ada_tm->msl_pressure, ada_tm->msl_temperature, ada_tm->dpl_altitude); +} + +/** + * @brief Encode a ada_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param ada_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ada_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_ada_tm_t* ada_tm) +{ + return mavlink_msg_ada_tm_pack_chan(system_id, component_id, chan, msg, ada_tm->timestamp, ada_tm->state, ada_tm->kalman_x0, ada_tm->kalman_x1, ada_tm->kalman_x2, ada_tm->vertical_speed, ada_tm->msl_altitude, ada_tm->ref_pressure, ada_tm->ref_altitude, ada_tm->ref_temperature, ada_tm->msl_pressure, ada_tm->msl_temperature, ada_tm->dpl_altitude); +} + +/** + * @brief Send a ada_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param state ADA current state + * @param kalman_x0 Kalman state variable 0 (pressure) + * @param kalman_x1 Kalman state variable 1 (pressure velocity) + * @param kalman_x2 Kalman state variable 2 (pressure acceleration) + * @param vertical_speed [m/s] Vertical speed computed by the ADA + * @param msl_altitude [m] Altitude w.r.t. mean sea level + * @param ref_pressure [Pa] Calibration pressure + * @param ref_altitude [m] Calibration altitude + * @param ref_temperature [degC] Calibration temperature + * @param msl_pressure [Pa] Expected pressure at mean sea level + * @param msl_temperature [degC] Expected temperature at mean sea level + * @param dpl_altitude [m] Main parachute deployment altituyde + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_ada_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t state, float kalman_x0, float kalman_x1, float kalman_x2, float vertical_speed, float msl_altitude, float ref_pressure, float ref_altitude, float ref_temperature, float msl_pressure, float msl_temperature, float dpl_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ADA_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, kalman_x0); + _mav_put_float(buf, 12, kalman_x1); + _mav_put_float(buf, 16, kalman_x2); + _mav_put_float(buf, 20, vertical_speed); + _mav_put_float(buf, 24, msl_altitude); + _mav_put_float(buf, 28, ref_pressure); + _mav_put_float(buf, 32, ref_altitude); + _mav_put_float(buf, 36, ref_temperature); + _mav_put_float(buf, 40, msl_pressure); + _mav_put_float(buf, 44, msl_temperature); + _mav_put_float(buf, 48, dpl_altitude); + _mav_put_uint8_t(buf, 52, state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADA_TM, buf, MAVLINK_MSG_ID_ADA_TM_MIN_LEN, MAVLINK_MSG_ID_ADA_TM_LEN, MAVLINK_MSG_ID_ADA_TM_CRC); +#else + mavlink_ada_tm_t packet; + packet.timestamp = timestamp; + packet.kalman_x0 = kalman_x0; + packet.kalman_x1 = kalman_x1; + packet.kalman_x2 = kalman_x2; + packet.vertical_speed = vertical_speed; + packet.msl_altitude = msl_altitude; + packet.ref_pressure = ref_pressure; + packet.ref_altitude = ref_altitude; + packet.ref_temperature = ref_temperature; + packet.msl_pressure = msl_pressure; + packet.msl_temperature = msl_temperature; + packet.dpl_altitude = dpl_altitude; + packet.state = state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADA_TM, (const char *)&packet, MAVLINK_MSG_ID_ADA_TM_MIN_LEN, MAVLINK_MSG_ID_ADA_TM_LEN, MAVLINK_MSG_ID_ADA_TM_CRC); +#endif +} + +/** + * @brief Send a ada_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_ada_tm_send_struct(mavlink_channel_t chan, const mavlink_ada_tm_t* ada_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_ada_tm_send(chan, ada_tm->timestamp, ada_tm->state, ada_tm->kalman_x0, ada_tm->kalman_x1, ada_tm->kalman_x2, ada_tm->vertical_speed, ada_tm->msl_altitude, ada_tm->ref_pressure, ada_tm->ref_altitude, ada_tm->ref_temperature, ada_tm->msl_pressure, ada_tm->msl_temperature, ada_tm->dpl_altitude); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADA_TM, (const char *)ada_tm, MAVLINK_MSG_ID_ADA_TM_MIN_LEN, MAVLINK_MSG_ID_ADA_TM_LEN, MAVLINK_MSG_ID_ADA_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_ADA_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_ada_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t state, float kalman_x0, float kalman_x1, float kalman_x2, float vertical_speed, float msl_altitude, float ref_pressure, float ref_altitude, float ref_temperature, float msl_pressure, float msl_temperature, float dpl_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, kalman_x0); + _mav_put_float(buf, 12, kalman_x1); + _mav_put_float(buf, 16, kalman_x2); + _mav_put_float(buf, 20, vertical_speed); + _mav_put_float(buf, 24, msl_altitude); + _mav_put_float(buf, 28, ref_pressure); + _mav_put_float(buf, 32, ref_altitude); + _mav_put_float(buf, 36, ref_temperature); + _mav_put_float(buf, 40, msl_pressure); + _mav_put_float(buf, 44, msl_temperature); + _mav_put_float(buf, 48, dpl_altitude); + _mav_put_uint8_t(buf, 52, state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADA_TM, buf, MAVLINK_MSG_ID_ADA_TM_MIN_LEN, MAVLINK_MSG_ID_ADA_TM_LEN, MAVLINK_MSG_ID_ADA_TM_CRC); +#else + mavlink_ada_tm_t *packet = (mavlink_ada_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->kalman_x0 = kalman_x0; + packet->kalman_x1 = kalman_x1; + packet->kalman_x2 = kalman_x2; + packet->vertical_speed = vertical_speed; + packet->msl_altitude = msl_altitude; + packet->ref_pressure = ref_pressure; + packet->ref_altitude = ref_altitude; + packet->ref_temperature = ref_temperature; + packet->msl_pressure = msl_pressure; + packet->msl_temperature = msl_temperature; + packet->dpl_altitude = dpl_altitude; + packet->state = state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADA_TM, (const char *)packet, MAVLINK_MSG_ID_ADA_TM_MIN_LEN, MAVLINK_MSG_ID_ADA_TM_LEN, MAVLINK_MSG_ID_ADA_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE ADA_TM UNPACKING + + +/** + * @brief Get field timestamp from ada_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_ada_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field state from ada_tm message + * + * @return ADA current state + */ +static inline uint8_t mavlink_msg_ada_tm_get_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 52); +} + +/** + * @brief Get field kalman_x0 from ada_tm message + * + * @return Kalman state variable 0 (pressure) + */ +static inline float mavlink_msg_ada_tm_get_kalman_x0(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field kalman_x1 from ada_tm message + * + * @return Kalman state variable 1 (pressure velocity) + */ +static inline float mavlink_msg_ada_tm_get_kalman_x1(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field kalman_x2 from ada_tm message + * + * @return Kalman state variable 2 (pressure acceleration) + */ +static inline float mavlink_msg_ada_tm_get_kalman_x2(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field vertical_speed from ada_tm message + * + * @return [m/s] Vertical speed computed by the ADA + */ +static inline float mavlink_msg_ada_tm_get_vertical_speed(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field msl_altitude from ada_tm message + * + * @return [m] Altitude w.r.t. mean sea level + */ +static inline float mavlink_msg_ada_tm_get_msl_altitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Get field ref_pressure from ada_tm message + * + * @return [Pa] Calibration pressure + */ +static inline float mavlink_msg_ada_tm_get_ref_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field ref_altitude from ada_tm message + * + * @return [m] Calibration altitude + */ +static inline float mavlink_msg_ada_tm_get_ref_altitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field ref_temperature from ada_tm message + * + * @return [degC] Calibration temperature + */ +static inline float mavlink_msg_ada_tm_get_ref_temperature(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Get field msl_pressure from ada_tm message + * + * @return [Pa] Expected pressure at mean sea level + */ +static inline float mavlink_msg_ada_tm_get_msl_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Get field msl_temperature from ada_tm message + * + * @return [degC] Expected temperature at mean sea level + */ +static inline float mavlink_msg_ada_tm_get_msl_temperature(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 44); +} + +/** + * @brief Get field dpl_altitude from ada_tm message + * + * @return [m] Main parachute deployment altituyde + */ +static inline float mavlink_msg_ada_tm_get_dpl_altitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 48); +} + +/** + * @brief Decode a ada_tm message into a struct + * + * @param msg The message to decode + * @param ada_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_ada_tm_decode(const mavlink_message_t* msg, mavlink_ada_tm_t* ada_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + ada_tm->timestamp = mavlink_msg_ada_tm_get_timestamp(msg); + ada_tm->kalman_x0 = mavlink_msg_ada_tm_get_kalman_x0(msg); + ada_tm->kalman_x1 = mavlink_msg_ada_tm_get_kalman_x1(msg); + ada_tm->kalman_x2 = mavlink_msg_ada_tm_get_kalman_x2(msg); + ada_tm->vertical_speed = mavlink_msg_ada_tm_get_vertical_speed(msg); + ada_tm->msl_altitude = mavlink_msg_ada_tm_get_msl_altitude(msg); + ada_tm->ref_pressure = mavlink_msg_ada_tm_get_ref_pressure(msg); + ada_tm->ref_altitude = mavlink_msg_ada_tm_get_ref_altitude(msg); + ada_tm->ref_temperature = mavlink_msg_ada_tm_get_ref_temperature(msg); + ada_tm->msl_pressure = mavlink_msg_ada_tm_get_msl_pressure(msg); + ada_tm->msl_temperature = mavlink_msg_ada_tm_get_msl_temperature(msg); + ada_tm->dpl_altitude = mavlink_msg_ada_tm_get_dpl_altitude(msg); + ada_tm->state = mavlink_msg_ada_tm_get_state(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_ADA_TM_LEN? msg->len : MAVLINK_MSG_ID_ADA_TM_LEN; + memset(ada_tm, 0, MAVLINK_MSG_ID_ADA_TM_LEN); + memcpy(ada_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_adc_tm.h b/mavlink_lib/lyra/mavlink_msg_adc_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..04c7612852769618318043c1a36059b224ba9a18 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_adc_tm.h @@ -0,0 +1,430 @@ +#pragma once +// MESSAGE ADC_TM PACKING + +#define MAVLINK_MSG_ID_ADC_TM 105 + + +typedef struct __mavlink_adc_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float channel_0; /*< [V] ADC voltage measured on channel 0*/ + float channel_1; /*< [V] ADC voltage measured on channel 1*/ + float channel_2; /*< [V] ADC voltage measured on channel 2*/ + float channel_3; /*< [V] ADC voltage measured on channel 3*/ + float channel_4; /*< [V] ADC voltage measured on channel 4*/ + float channel_5; /*< [V] ADC voltage measured on channel 5*/ + float channel_6; /*< [V] ADC voltage measured on channel 6*/ + float channel_7; /*< [V] ADC voltage measured on channel 7*/ + char sensor_name[20]; /*< Sensor name*/ +} mavlink_adc_tm_t; + +#define MAVLINK_MSG_ID_ADC_TM_LEN 60 +#define MAVLINK_MSG_ID_ADC_TM_MIN_LEN 60 +#define MAVLINK_MSG_ID_105_LEN 60 +#define MAVLINK_MSG_ID_105_MIN_LEN 60 + +#define MAVLINK_MSG_ID_ADC_TM_CRC 229 +#define MAVLINK_MSG_ID_105_CRC 229 + +#define MAVLINK_MSG_ADC_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_ADC_TM { \ + 105, \ + "ADC_TM", \ + 10, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_adc_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 40, offsetof(mavlink_adc_tm_t, sensor_name) }, \ + { "channel_0", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_adc_tm_t, channel_0) }, \ + { "channel_1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_adc_tm_t, channel_1) }, \ + { "channel_2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_adc_tm_t, channel_2) }, \ + { "channel_3", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_adc_tm_t, channel_3) }, \ + { "channel_4", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_adc_tm_t, channel_4) }, \ + { "channel_5", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_adc_tm_t, channel_5) }, \ + { "channel_6", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_adc_tm_t, channel_6) }, \ + { "channel_7", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_adc_tm_t, channel_7) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_ADC_TM { \ + "ADC_TM", \ + 10, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_adc_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 40, offsetof(mavlink_adc_tm_t, sensor_name) }, \ + { "channel_0", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_adc_tm_t, channel_0) }, \ + { "channel_1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_adc_tm_t, channel_1) }, \ + { "channel_2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_adc_tm_t, channel_2) }, \ + { "channel_3", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_adc_tm_t, channel_3) }, \ + { "channel_4", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_adc_tm_t, channel_4) }, \ + { "channel_5", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_adc_tm_t, channel_5) }, \ + { "channel_6", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_adc_tm_t, channel_6) }, \ + { "channel_7", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_adc_tm_t, channel_7) }, \ + } \ +} +#endif + +/** + * @brief Pack a adc_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param channel_0 [V] ADC voltage measured on channel 0 + * @param channel_1 [V] ADC voltage measured on channel 1 + * @param channel_2 [V] ADC voltage measured on channel 2 + * @param channel_3 [V] ADC voltage measured on channel 3 + * @param channel_4 [V] ADC voltage measured on channel 4 + * @param channel_5 [V] ADC voltage measured on channel 5 + * @param channel_6 [V] ADC voltage measured on channel 6 + * @param channel_7 [V] ADC voltage measured on channel 7 + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_adc_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, const char *sensor_name, float channel_0, float channel_1, float channel_2, float channel_3, float channel_4, float channel_5, float channel_6, float channel_7) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ADC_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, channel_0); + _mav_put_float(buf, 12, channel_1); + _mav_put_float(buf, 16, channel_2); + _mav_put_float(buf, 20, channel_3); + _mav_put_float(buf, 24, channel_4); + _mav_put_float(buf, 28, channel_5); + _mav_put_float(buf, 32, channel_6); + _mav_put_float(buf, 36, channel_7); + _mav_put_char_array(buf, 40, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ADC_TM_LEN); +#else + mavlink_adc_tm_t packet; + packet.timestamp = timestamp; + packet.channel_0 = channel_0; + packet.channel_1 = channel_1; + packet.channel_2 = channel_2; + packet.channel_3 = channel_3; + packet.channel_4 = channel_4; + packet.channel_5 = channel_5; + packet.channel_6 = channel_6; + packet.channel_7 = channel_7; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ADC_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ADC_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ADC_TM_MIN_LEN, MAVLINK_MSG_ID_ADC_TM_LEN, MAVLINK_MSG_ID_ADC_TM_CRC); +} + +/** + * @brief Pack a adc_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param channel_0 [V] ADC voltage measured on channel 0 + * @param channel_1 [V] ADC voltage measured on channel 1 + * @param channel_2 [V] ADC voltage measured on channel 2 + * @param channel_3 [V] ADC voltage measured on channel 3 + * @param channel_4 [V] ADC voltage measured on channel 4 + * @param channel_5 [V] ADC voltage measured on channel 5 + * @param channel_6 [V] ADC voltage measured on channel 6 + * @param channel_7 [V] ADC voltage measured on channel 7 + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_adc_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,const char *sensor_name,float channel_0,float channel_1,float channel_2,float channel_3,float channel_4,float channel_5,float channel_6,float channel_7) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ADC_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, channel_0); + _mav_put_float(buf, 12, channel_1); + _mav_put_float(buf, 16, channel_2); + _mav_put_float(buf, 20, channel_3); + _mav_put_float(buf, 24, channel_4); + _mav_put_float(buf, 28, channel_5); + _mav_put_float(buf, 32, channel_6); + _mav_put_float(buf, 36, channel_7); + _mav_put_char_array(buf, 40, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ADC_TM_LEN); +#else + mavlink_adc_tm_t packet; + packet.timestamp = timestamp; + packet.channel_0 = channel_0; + packet.channel_1 = channel_1; + packet.channel_2 = channel_2; + packet.channel_3 = channel_3; + packet.channel_4 = channel_4; + packet.channel_5 = channel_5; + packet.channel_6 = channel_6; + packet.channel_7 = channel_7; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ADC_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ADC_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ADC_TM_MIN_LEN, MAVLINK_MSG_ID_ADC_TM_LEN, MAVLINK_MSG_ID_ADC_TM_CRC); +} + +/** + * @brief Encode a adc_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param adc_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_adc_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_adc_tm_t* adc_tm) +{ + return mavlink_msg_adc_tm_pack(system_id, component_id, msg, adc_tm->timestamp, adc_tm->sensor_name, adc_tm->channel_0, adc_tm->channel_1, adc_tm->channel_2, adc_tm->channel_3, adc_tm->channel_4, adc_tm->channel_5, adc_tm->channel_6, adc_tm->channel_7); +} + +/** + * @brief Encode a adc_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param adc_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_adc_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_adc_tm_t* adc_tm) +{ + return mavlink_msg_adc_tm_pack_chan(system_id, component_id, chan, msg, adc_tm->timestamp, adc_tm->sensor_name, adc_tm->channel_0, adc_tm->channel_1, adc_tm->channel_2, adc_tm->channel_3, adc_tm->channel_4, adc_tm->channel_5, adc_tm->channel_6, adc_tm->channel_7); +} + +/** + * @brief Send a adc_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param channel_0 [V] ADC voltage measured on channel 0 + * @param channel_1 [V] ADC voltage measured on channel 1 + * @param channel_2 [V] ADC voltage measured on channel 2 + * @param channel_3 [V] ADC voltage measured on channel 3 + * @param channel_4 [V] ADC voltage measured on channel 4 + * @param channel_5 [V] ADC voltage measured on channel 5 + * @param channel_6 [V] ADC voltage measured on channel 6 + * @param channel_7 [V] ADC voltage measured on channel 7 + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_adc_tm_send(mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float channel_0, float channel_1, float channel_2, float channel_3, float channel_4, float channel_5, float channel_6, float channel_7) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ADC_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, channel_0); + _mav_put_float(buf, 12, channel_1); + _mav_put_float(buf, 16, channel_2); + _mav_put_float(buf, 20, channel_3); + _mav_put_float(buf, 24, channel_4); + _mav_put_float(buf, 28, channel_5); + _mav_put_float(buf, 32, channel_6); + _mav_put_float(buf, 36, channel_7); + _mav_put_char_array(buf, 40, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADC_TM, buf, MAVLINK_MSG_ID_ADC_TM_MIN_LEN, MAVLINK_MSG_ID_ADC_TM_LEN, MAVLINK_MSG_ID_ADC_TM_CRC); +#else + mavlink_adc_tm_t packet; + packet.timestamp = timestamp; + packet.channel_0 = channel_0; + packet.channel_1 = channel_1; + packet.channel_2 = channel_2; + packet.channel_3 = channel_3; + packet.channel_4 = channel_4; + packet.channel_5 = channel_5; + packet.channel_6 = channel_6; + packet.channel_7 = channel_7; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADC_TM, (const char *)&packet, MAVLINK_MSG_ID_ADC_TM_MIN_LEN, MAVLINK_MSG_ID_ADC_TM_LEN, MAVLINK_MSG_ID_ADC_TM_CRC); +#endif +} + +/** + * @brief Send a adc_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_adc_tm_send_struct(mavlink_channel_t chan, const mavlink_adc_tm_t* adc_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_adc_tm_send(chan, adc_tm->timestamp, adc_tm->sensor_name, adc_tm->channel_0, adc_tm->channel_1, adc_tm->channel_2, adc_tm->channel_3, adc_tm->channel_4, adc_tm->channel_5, adc_tm->channel_6, adc_tm->channel_7); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADC_TM, (const char *)adc_tm, MAVLINK_MSG_ID_ADC_TM_MIN_LEN, MAVLINK_MSG_ID_ADC_TM_LEN, MAVLINK_MSG_ID_ADC_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_ADC_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_adc_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float channel_0, float channel_1, float channel_2, float channel_3, float channel_4, float channel_5, float channel_6, float channel_7) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, channel_0); + _mav_put_float(buf, 12, channel_1); + _mav_put_float(buf, 16, channel_2); + _mav_put_float(buf, 20, channel_3); + _mav_put_float(buf, 24, channel_4); + _mav_put_float(buf, 28, channel_5); + _mav_put_float(buf, 32, channel_6); + _mav_put_float(buf, 36, channel_7); + _mav_put_char_array(buf, 40, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADC_TM, buf, MAVLINK_MSG_ID_ADC_TM_MIN_LEN, MAVLINK_MSG_ID_ADC_TM_LEN, MAVLINK_MSG_ID_ADC_TM_CRC); +#else + mavlink_adc_tm_t *packet = (mavlink_adc_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->channel_0 = channel_0; + packet->channel_1 = channel_1; + packet->channel_2 = channel_2; + packet->channel_3 = channel_3; + packet->channel_4 = channel_4; + packet->channel_5 = channel_5; + packet->channel_6 = channel_6; + packet->channel_7 = channel_7; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ADC_TM, (const char *)packet, MAVLINK_MSG_ID_ADC_TM_MIN_LEN, MAVLINK_MSG_ID_ADC_TM_LEN, MAVLINK_MSG_ID_ADC_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE ADC_TM UNPACKING + + +/** + * @brief Get field timestamp from adc_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_adc_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field sensor_name from adc_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_adc_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 40); +} + +/** + * @brief Get field channel_0 from adc_tm message + * + * @return [V] ADC voltage measured on channel 0 + */ +static inline float mavlink_msg_adc_tm_get_channel_0(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field channel_1 from adc_tm message + * + * @return [V] ADC voltage measured on channel 1 + */ +static inline float mavlink_msg_adc_tm_get_channel_1(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field channel_2 from adc_tm message + * + * @return [V] ADC voltage measured on channel 2 + */ +static inline float mavlink_msg_adc_tm_get_channel_2(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field channel_3 from adc_tm message + * + * @return [V] ADC voltage measured on channel 3 + */ +static inline float mavlink_msg_adc_tm_get_channel_3(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field channel_4 from adc_tm message + * + * @return [V] ADC voltage measured on channel 4 + */ +static inline float mavlink_msg_adc_tm_get_channel_4(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Get field channel_5 from adc_tm message + * + * @return [V] ADC voltage measured on channel 5 + */ +static inline float mavlink_msg_adc_tm_get_channel_5(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field channel_6 from adc_tm message + * + * @return [V] ADC voltage measured on channel 6 + */ +static inline float mavlink_msg_adc_tm_get_channel_6(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field channel_7 from adc_tm message + * + * @return [V] ADC voltage measured on channel 7 + */ +static inline float mavlink_msg_adc_tm_get_channel_7(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Decode a adc_tm message into a struct + * + * @param msg The message to decode + * @param adc_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_adc_tm_decode(const mavlink_message_t* msg, mavlink_adc_tm_t* adc_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + adc_tm->timestamp = mavlink_msg_adc_tm_get_timestamp(msg); + adc_tm->channel_0 = mavlink_msg_adc_tm_get_channel_0(msg); + adc_tm->channel_1 = mavlink_msg_adc_tm_get_channel_1(msg); + adc_tm->channel_2 = mavlink_msg_adc_tm_get_channel_2(msg); + adc_tm->channel_3 = mavlink_msg_adc_tm_get_channel_3(msg); + adc_tm->channel_4 = mavlink_msg_adc_tm_get_channel_4(msg); + adc_tm->channel_5 = mavlink_msg_adc_tm_get_channel_5(msg); + adc_tm->channel_6 = mavlink_msg_adc_tm_get_channel_6(msg); + adc_tm->channel_7 = mavlink_msg_adc_tm_get_channel_7(msg); + mavlink_msg_adc_tm_get_sensor_name(msg, adc_tm->sensor_name); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_ADC_TM_LEN? msg->len : MAVLINK_MSG_ID_ADC_TM_LEN; + memset(adc_tm, 0, MAVLINK_MSG_ID_ADC_TM_LEN); + memcpy(adc_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_attitude_tm.h b/mavlink_lib/lyra/mavlink_msg_attitude_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..c16dba2fd216b82c35caba889893c630eb261145 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_attitude_tm.h @@ -0,0 +1,405 @@ +#pragma once +// MESSAGE ATTITUDE_TM PACKING + +#define MAVLINK_MSG_ID_ATTITUDE_TM 110 + + +typedef struct __mavlink_attitude_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float roll; /*< [deg] Roll angle*/ + float pitch; /*< [deg] Pitch angle*/ + float yaw; /*< [deg] Yaw angle*/ + float quat_x; /*< Quaternion x component*/ + float quat_y; /*< Quaternion y component*/ + float quat_z; /*< Quaternion z component*/ + float quat_w; /*< Quaternion w component*/ + char sensor_name[20]; /*< Sensor name*/ +} mavlink_attitude_tm_t; + +#define MAVLINK_MSG_ID_ATTITUDE_TM_LEN 56 +#define MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN 56 +#define MAVLINK_MSG_ID_110_LEN 56 +#define MAVLINK_MSG_ID_110_MIN_LEN 56 + +#define MAVLINK_MSG_ID_ATTITUDE_TM_CRC 6 +#define MAVLINK_MSG_ID_110_CRC 6 + +#define MAVLINK_MSG_ATTITUDE_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_ATTITUDE_TM { \ + 110, \ + "ATTITUDE_TM", \ + 9, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_attitude_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 36, offsetof(mavlink_attitude_tm_t, sensor_name) }, \ + { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_attitude_tm_t, roll) }, \ + { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_attitude_tm_t, pitch) }, \ + { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_attitude_tm_t, yaw) }, \ + { "quat_x", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_attitude_tm_t, quat_x) }, \ + { "quat_y", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_attitude_tm_t, quat_y) }, \ + { "quat_z", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_attitude_tm_t, quat_z) }, \ + { "quat_w", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_attitude_tm_t, quat_w) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_ATTITUDE_TM { \ + "ATTITUDE_TM", \ + 9, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_attitude_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 36, offsetof(mavlink_attitude_tm_t, sensor_name) }, \ + { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_attitude_tm_t, roll) }, \ + { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_attitude_tm_t, pitch) }, \ + { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_attitude_tm_t, yaw) }, \ + { "quat_x", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_attitude_tm_t, quat_x) }, \ + { "quat_y", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_attitude_tm_t, quat_y) }, \ + { "quat_z", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_attitude_tm_t, quat_z) }, \ + { "quat_w", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_attitude_tm_t, quat_w) }, \ + } \ +} +#endif + +/** + * @brief Pack a attitude_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param roll [deg] Roll angle + * @param pitch [deg] Pitch angle + * @param yaw [deg] Yaw angle + * @param quat_x Quaternion x component + * @param quat_y Quaternion y component + * @param quat_z Quaternion z component + * @param quat_w Quaternion w component + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_attitude_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, const char *sensor_name, float roll, float pitch, float yaw, float quat_x, float quat_y, float quat_z, float quat_w) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ATTITUDE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, roll); + _mav_put_float(buf, 12, pitch); + _mav_put_float(buf, 16, yaw); + _mav_put_float(buf, 20, quat_x); + _mav_put_float(buf, 24, quat_y); + _mav_put_float(buf, 28, quat_z); + _mav_put_float(buf, 32, quat_w); + _mav_put_char_array(buf, 36, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ATTITUDE_TM_LEN); +#else + mavlink_attitude_tm_t packet; + packet.timestamp = timestamp; + packet.roll = roll; + packet.pitch = pitch; + packet.yaw = yaw; + packet.quat_x = quat_x; + packet.quat_y = quat_y; + packet.quat_z = quat_z; + packet.quat_w = quat_w; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ATTITUDE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ATTITUDE_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_CRC); +} + +/** + * @brief Pack a attitude_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param roll [deg] Roll angle + * @param pitch [deg] Pitch angle + * @param yaw [deg] Yaw angle + * @param quat_x Quaternion x component + * @param quat_y Quaternion y component + * @param quat_z Quaternion z component + * @param quat_w Quaternion w component + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_attitude_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,const char *sensor_name,float roll,float pitch,float yaw,float quat_x,float quat_y,float quat_z,float quat_w) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ATTITUDE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, roll); + _mav_put_float(buf, 12, pitch); + _mav_put_float(buf, 16, yaw); + _mav_put_float(buf, 20, quat_x); + _mav_put_float(buf, 24, quat_y); + _mav_put_float(buf, 28, quat_z); + _mav_put_float(buf, 32, quat_w); + _mav_put_char_array(buf, 36, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ATTITUDE_TM_LEN); +#else + mavlink_attitude_tm_t packet; + packet.timestamp = timestamp; + packet.roll = roll; + packet.pitch = pitch; + packet.yaw = yaw; + packet.quat_x = quat_x; + packet.quat_y = quat_y; + packet.quat_z = quat_z; + packet.quat_w = quat_w; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ATTITUDE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ATTITUDE_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_CRC); +} + +/** + * @brief Encode a attitude_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param attitude_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_attitude_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_attitude_tm_t* attitude_tm) +{ + return mavlink_msg_attitude_tm_pack(system_id, component_id, msg, attitude_tm->timestamp, attitude_tm->sensor_name, attitude_tm->roll, attitude_tm->pitch, attitude_tm->yaw, attitude_tm->quat_x, attitude_tm->quat_y, attitude_tm->quat_z, attitude_tm->quat_w); +} + +/** + * @brief Encode a attitude_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param attitude_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_attitude_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_attitude_tm_t* attitude_tm) +{ + return mavlink_msg_attitude_tm_pack_chan(system_id, component_id, chan, msg, attitude_tm->timestamp, attitude_tm->sensor_name, attitude_tm->roll, attitude_tm->pitch, attitude_tm->yaw, attitude_tm->quat_x, attitude_tm->quat_y, attitude_tm->quat_z, attitude_tm->quat_w); +} + +/** + * @brief Send a attitude_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param roll [deg] Roll angle + * @param pitch [deg] Pitch angle + * @param yaw [deg] Yaw angle + * @param quat_x Quaternion x component + * @param quat_y Quaternion y component + * @param quat_z Quaternion z component + * @param quat_w Quaternion w component + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_attitude_tm_send(mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float roll, float pitch, float yaw, float quat_x, float quat_y, float quat_z, float quat_w) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ATTITUDE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, roll); + _mav_put_float(buf, 12, pitch); + _mav_put_float(buf, 16, yaw); + _mav_put_float(buf, 20, quat_x); + _mav_put_float(buf, 24, quat_y); + _mav_put_float(buf, 28, quat_z); + _mav_put_float(buf, 32, quat_w); + _mav_put_char_array(buf, 36, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ATTITUDE_TM, buf, MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_CRC); +#else + mavlink_attitude_tm_t packet; + packet.timestamp = timestamp; + packet.roll = roll; + packet.pitch = pitch; + packet.yaw = yaw; + packet.quat_x = quat_x; + packet.quat_y = quat_y; + packet.quat_z = quat_z; + packet.quat_w = quat_w; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ATTITUDE_TM, (const char *)&packet, MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_CRC); +#endif +} + +/** + * @brief Send a attitude_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_attitude_tm_send_struct(mavlink_channel_t chan, const mavlink_attitude_tm_t* attitude_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_attitude_tm_send(chan, attitude_tm->timestamp, attitude_tm->sensor_name, attitude_tm->roll, attitude_tm->pitch, attitude_tm->yaw, attitude_tm->quat_x, attitude_tm->quat_y, attitude_tm->quat_z, attitude_tm->quat_w); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ATTITUDE_TM, (const char *)attitude_tm, MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_ATTITUDE_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_attitude_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float roll, float pitch, float yaw, float quat_x, float quat_y, float quat_z, float quat_w) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, roll); + _mav_put_float(buf, 12, pitch); + _mav_put_float(buf, 16, yaw); + _mav_put_float(buf, 20, quat_x); + _mav_put_float(buf, 24, quat_y); + _mav_put_float(buf, 28, quat_z); + _mav_put_float(buf, 32, quat_w); + _mav_put_char_array(buf, 36, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ATTITUDE_TM, buf, MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_CRC); +#else + mavlink_attitude_tm_t *packet = (mavlink_attitude_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->roll = roll; + packet->pitch = pitch; + packet->yaw = yaw; + packet->quat_x = quat_x; + packet->quat_y = quat_y; + packet->quat_z = quat_z; + packet->quat_w = quat_w; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ATTITUDE_TM, (const char *)packet, MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_LEN, MAVLINK_MSG_ID_ATTITUDE_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE ATTITUDE_TM UNPACKING + + +/** + * @brief Get field timestamp from attitude_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_attitude_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field sensor_name from attitude_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_attitude_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 36); +} + +/** + * @brief Get field roll from attitude_tm message + * + * @return [deg] Roll angle + */ +static inline float mavlink_msg_attitude_tm_get_roll(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field pitch from attitude_tm message + * + * @return [deg] Pitch angle + */ +static inline float mavlink_msg_attitude_tm_get_pitch(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field yaw from attitude_tm message + * + * @return [deg] Yaw angle + */ +static inline float mavlink_msg_attitude_tm_get_yaw(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field quat_x from attitude_tm message + * + * @return Quaternion x component + */ +static inline float mavlink_msg_attitude_tm_get_quat_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field quat_y from attitude_tm message + * + * @return Quaternion y component + */ +static inline float mavlink_msg_attitude_tm_get_quat_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Get field quat_z from attitude_tm message + * + * @return Quaternion z component + */ +static inline float mavlink_msg_attitude_tm_get_quat_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field quat_w from attitude_tm message + * + * @return Quaternion w component + */ +static inline float mavlink_msg_attitude_tm_get_quat_w(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Decode a attitude_tm message into a struct + * + * @param msg The message to decode + * @param attitude_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_attitude_tm_decode(const mavlink_message_t* msg, mavlink_attitude_tm_t* attitude_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + attitude_tm->timestamp = mavlink_msg_attitude_tm_get_timestamp(msg); + attitude_tm->roll = mavlink_msg_attitude_tm_get_roll(msg); + attitude_tm->pitch = mavlink_msg_attitude_tm_get_pitch(msg); + attitude_tm->yaw = mavlink_msg_attitude_tm_get_yaw(msg); + attitude_tm->quat_x = mavlink_msg_attitude_tm_get_quat_x(msg); + attitude_tm->quat_y = mavlink_msg_attitude_tm_get_quat_y(msg); + attitude_tm->quat_z = mavlink_msg_attitude_tm_get_quat_z(msg); + attitude_tm->quat_w = mavlink_msg_attitude_tm_get_quat_w(msg); + mavlink_msg_attitude_tm_get_sensor_name(msg, attitude_tm->sensor_name); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_ATTITUDE_TM_LEN? msg->len : MAVLINK_MSG_ID_ATTITUDE_TM_LEN; + memset(attitude_tm, 0, MAVLINK_MSG_ID_ATTITUDE_TM_LEN); + memcpy(attitude_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_command_tc.h b/mavlink_lib/lyra/mavlink_msg_command_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..a4d0886b3f67df648cfd4ed0b8debc059ecfa272 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_command_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE COMMAND_TC PACKING + +#define MAVLINK_MSG_ID_COMMAND_TC 2 + + +typedef struct __mavlink_command_tc_t { + uint8_t command_id; /*< A member of the MavCommandList enum*/ +} mavlink_command_tc_t; + +#define MAVLINK_MSG_ID_COMMAND_TC_LEN 1 +#define MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN 1 +#define MAVLINK_MSG_ID_2_LEN 1 +#define MAVLINK_MSG_ID_2_MIN_LEN 1 + +#define MAVLINK_MSG_ID_COMMAND_TC_CRC 198 +#define MAVLINK_MSG_ID_2_CRC 198 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_COMMAND_TC { \ + 2, \ + "COMMAND_TC", \ + 1, \ + { { "command_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_command_tc_t, command_id) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_COMMAND_TC { \ + "COMMAND_TC", \ + 1, \ + { { "command_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_command_tc_t, command_id) }, \ + } \ +} +#endif + +/** + * @brief Pack a command_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param command_id A member of the MavCommandList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_command_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t command_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_COMMAND_TC_LEN]; + _mav_put_uint8_t(buf, 0, command_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_COMMAND_TC_LEN); +#else + mavlink_command_tc_t packet; + packet.command_id = command_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_COMMAND_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_COMMAND_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN, MAVLINK_MSG_ID_COMMAND_TC_LEN, MAVLINK_MSG_ID_COMMAND_TC_CRC); +} + +/** + * @brief Pack a command_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param command_id A member of the MavCommandList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_command_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t command_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_COMMAND_TC_LEN]; + _mav_put_uint8_t(buf, 0, command_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_COMMAND_TC_LEN); +#else + mavlink_command_tc_t packet; + packet.command_id = command_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_COMMAND_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_COMMAND_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN, MAVLINK_MSG_ID_COMMAND_TC_LEN, MAVLINK_MSG_ID_COMMAND_TC_CRC); +} + +/** + * @brief Encode a command_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param command_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_command_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_command_tc_t* command_tc) +{ + return mavlink_msg_command_tc_pack(system_id, component_id, msg, command_tc->command_id); +} + +/** + * @brief Encode a command_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param command_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_command_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_command_tc_t* command_tc) +{ + return mavlink_msg_command_tc_pack_chan(system_id, component_id, chan, msg, command_tc->command_id); +} + +/** + * @brief Send a command_tc message + * @param chan MAVLink channel to send the message + * + * @param command_id A member of the MavCommandList enum + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_command_tc_send(mavlink_channel_t chan, uint8_t command_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_COMMAND_TC_LEN]; + _mav_put_uint8_t(buf, 0, command_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_TC, buf, MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN, MAVLINK_MSG_ID_COMMAND_TC_LEN, MAVLINK_MSG_ID_COMMAND_TC_CRC); +#else + mavlink_command_tc_t packet; + packet.command_id = command_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_TC, (const char *)&packet, MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN, MAVLINK_MSG_ID_COMMAND_TC_LEN, MAVLINK_MSG_ID_COMMAND_TC_CRC); +#endif +} + +/** + * @brief Send a command_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_command_tc_send_struct(mavlink_channel_t chan, const mavlink_command_tc_t* command_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_command_tc_send(chan, command_tc->command_id); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_TC, (const char *)command_tc, MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN, MAVLINK_MSG_ID_COMMAND_TC_LEN, MAVLINK_MSG_ID_COMMAND_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_COMMAND_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_command_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t command_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, command_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_TC, buf, MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN, MAVLINK_MSG_ID_COMMAND_TC_LEN, MAVLINK_MSG_ID_COMMAND_TC_CRC); +#else + mavlink_command_tc_t *packet = (mavlink_command_tc_t *)msgbuf; + packet->command_id = command_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_TC, (const char *)packet, MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN, MAVLINK_MSG_ID_COMMAND_TC_LEN, MAVLINK_MSG_ID_COMMAND_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE COMMAND_TC UNPACKING + + +/** + * @brief Get field command_id from command_tc message + * + * @return A member of the MavCommandList enum + */ +static inline uint8_t mavlink_msg_command_tc_get_command_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Decode a command_tc message into a struct + * + * @param msg The message to decode + * @param command_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_command_tc_decode(const mavlink_message_t* msg, mavlink_command_tc_t* command_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + command_tc->command_id = mavlink_msg_command_tc_get_command_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_COMMAND_TC_LEN? msg->len : MAVLINK_MSG_ID_COMMAND_TC_LEN; + memset(command_tc, 0, MAVLINK_MSG_ID_COMMAND_TC_LEN); + memcpy(command_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_conrig_state_tc.h b/mavlink_lib/lyra/mavlink_msg_conrig_state_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..9f1ada850a2a7f233ba5f5e9ae41e55121488da2 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_conrig_state_tc.h @@ -0,0 +1,363 @@ +#pragma once +// MESSAGE CONRIG_STATE_TC PACKING + +#define MAVLINK_MSG_ID_CONRIG_STATE_TC 19 + + +typedef struct __mavlink_conrig_state_tc_t { + uint8_t ignition_btn; /*< Ignition button pressed*/ + uint8_t filling_valve_btn; /*< Open filling valve pressed*/ + uint8_t venting_valve_btn; /*< Open venting valve pressed*/ + uint8_t release_pressure_btn; /*< Release filling line pressure pressed*/ + uint8_t quick_connector_btn; /*< Detach quick connector pressed*/ + uint8_t start_tars_btn; /*< Startup TARS pressed*/ + uint8_t arm_switch; /*< Arming switch state*/ +} mavlink_conrig_state_tc_t; + +#define MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN 7 +#define MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN 7 +#define MAVLINK_MSG_ID_19_LEN 7 +#define MAVLINK_MSG_ID_19_MIN_LEN 7 + +#define MAVLINK_MSG_ID_CONRIG_STATE_TC_CRC 65 +#define MAVLINK_MSG_ID_19_CRC 65 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_CONRIG_STATE_TC { \ + 19, \ + "CONRIG_STATE_TC", \ + 7, \ + { { "ignition_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_conrig_state_tc_t, ignition_btn) }, \ + { "filling_valve_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_conrig_state_tc_t, filling_valve_btn) }, \ + { "venting_valve_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_conrig_state_tc_t, venting_valve_btn) }, \ + { "release_pressure_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_conrig_state_tc_t, release_pressure_btn) }, \ + { "quick_connector_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_conrig_state_tc_t, quick_connector_btn) }, \ + { "start_tars_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_conrig_state_tc_t, start_tars_btn) }, \ + { "arm_switch", NULL, MAVLINK_TYPE_UINT8_T, 0, 6, offsetof(mavlink_conrig_state_tc_t, arm_switch) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_CONRIG_STATE_TC { \ + "CONRIG_STATE_TC", \ + 7, \ + { { "ignition_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_conrig_state_tc_t, ignition_btn) }, \ + { "filling_valve_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_conrig_state_tc_t, filling_valve_btn) }, \ + { "venting_valve_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_conrig_state_tc_t, venting_valve_btn) }, \ + { "release_pressure_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_conrig_state_tc_t, release_pressure_btn) }, \ + { "quick_connector_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_conrig_state_tc_t, quick_connector_btn) }, \ + { "start_tars_btn", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_conrig_state_tc_t, start_tars_btn) }, \ + { "arm_switch", NULL, MAVLINK_TYPE_UINT8_T, 0, 6, offsetof(mavlink_conrig_state_tc_t, arm_switch) }, \ + } \ +} +#endif + +/** + * @brief Pack a conrig_state_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param ignition_btn Ignition button pressed + * @param filling_valve_btn Open filling valve pressed + * @param venting_valve_btn Open venting valve pressed + * @param release_pressure_btn Release filling line pressure pressed + * @param quick_connector_btn Detach quick connector pressed + * @param start_tars_btn Startup TARS pressed + * @param arm_switch Arming switch state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_conrig_state_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t ignition_btn, uint8_t filling_valve_btn, uint8_t venting_valve_btn, uint8_t release_pressure_btn, uint8_t quick_connector_btn, uint8_t start_tars_btn, uint8_t arm_switch) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN]; + _mav_put_uint8_t(buf, 0, ignition_btn); + _mav_put_uint8_t(buf, 1, filling_valve_btn); + _mav_put_uint8_t(buf, 2, venting_valve_btn); + _mav_put_uint8_t(buf, 3, release_pressure_btn); + _mav_put_uint8_t(buf, 4, quick_connector_btn); + _mav_put_uint8_t(buf, 5, start_tars_btn); + _mav_put_uint8_t(buf, 6, arm_switch); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN); +#else + mavlink_conrig_state_tc_t packet; + packet.ignition_btn = ignition_btn; + packet.filling_valve_btn = filling_valve_btn; + packet.venting_valve_btn = venting_valve_btn; + packet.release_pressure_btn = release_pressure_btn; + packet.quick_connector_btn = quick_connector_btn; + packet.start_tars_btn = start_tars_btn; + packet.arm_switch = arm_switch; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CONRIG_STATE_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_CRC); +} + +/** + * @brief Pack a conrig_state_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param ignition_btn Ignition button pressed + * @param filling_valve_btn Open filling valve pressed + * @param venting_valve_btn Open venting valve pressed + * @param release_pressure_btn Release filling line pressure pressed + * @param quick_connector_btn Detach quick connector pressed + * @param start_tars_btn Startup TARS pressed + * @param arm_switch Arming switch state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_conrig_state_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t ignition_btn,uint8_t filling_valve_btn,uint8_t venting_valve_btn,uint8_t release_pressure_btn,uint8_t quick_connector_btn,uint8_t start_tars_btn,uint8_t arm_switch) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN]; + _mav_put_uint8_t(buf, 0, ignition_btn); + _mav_put_uint8_t(buf, 1, filling_valve_btn); + _mav_put_uint8_t(buf, 2, venting_valve_btn); + _mav_put_uint8_t(buf, 3, release_pressure_btn); + _mav_put_uint8_t(buf, 4, quick_connector_btn); + _mav_put_uint8_t(buf, 5, start_tars_btn); + _mav_put_uint8_t(buf, 6, arm_switch); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN); +#else + mavlink_conrig_state_tc_t packet; + packet.ignition_btn = ignition_btn; + packet.filling_valve_btn = filling_valve_btn; + packet.venting_valve_btn = venting_valve_btn; + packet.release_pressure_btn = release_pressure_btn; + packet.quick_connector_btn = quick_connector_btn; + packet.start_tars_btn = start_tars_btn; + packet.arm_switch = arm_switch; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CONRIG_STATE_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_CRC); +} + +/** + * @brief Encode a conrig_state_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param conrig_state_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_conrig_state_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_conrig_state_tc_t* conrig_state_tc) +{ + return mavlink_msg_conrig_state_tc_pack(system_id, component_id, msg, conrig_state_tc->ignition_btn, conrig_state_tc->filling_valve_btn, conrig_state_tc->venting_valve_btn, conrig_state_tc->release_pressure_btn, conrig_state_tc->quick_connector_btn, conrig_state_tc->start_tars_btn, conrig_state_tc->arm_switch); +} + +/** + * @brief Encode a conrig_state_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param conrig_state_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_conrig_state_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_conrig_state_tc_t* conrig_state_tc) +{ + return mavlink_msg_conrig_state_tc_pack_chan(system_id, component_id, chan, msg, conrig_state_tc->ignition_btn, conrig_state_tc->filling_valve_btn, conrig_state_tc->venting_valve_btn, conrig_state_tc->release_pressure_btn, conrig_state_tc->quick_connector_btn, conrig_state_tc->start_tars_btn, conrig_state_tc->arm_switch); +} + +/** + * @brief Send a conrig_state_tc message + * @param chan MAVLink channel to send the message + * + * @param ignition_btn Ignition button pressed + * @param filling_valve_btn Open filling valve pressed + * @param venting_valve_btn Open venting valve pressed + * @param release_pressure_btn Release filling line pressure pressed + * @param quick_connector_btn Detach quick connector pressed + * @param start_tars_btn Startup TARS pressed + * @param arm_switch Arming switch state + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_conrig_state_tc_send(mavlink_channel_t chan, uint8_t ignition_btn, uint8_t filling_valve_btn, uint8_t venting_valve_btn, uint8_t release_pressure_btn, uint8_t quick_connector_btn, uint8_t start_tars_btn, uint8_t arm_switch) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN]; + _mav_put_uint8_t(buf, 0, ignition_btn); + _mav_put_uint8_t(buf, 1, filling_valve_btn); + _mav_put_uint8_t(buf, 2, venting_valve_btn); + _mav_put_uint8_t(buf, 3, release_pressure_btn); + _mav_put_uint8_t(buf, 4, quick_connector_btn); + _mav_put_uint8_t(buf, 5, start_tars_btn); + _mav_put_uint8_t(buf, 6, arm_switch); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CONRIG_STATE_TC, buf, MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_CRC); +#else + mavlink_conrig_state_tc_t packet; + packet.ignition_btn = ignition_btn; + packet.filling_valve_btn = filling_valve_btn; + packet.venting_valve_btn = venting_valve_btn; + packet.release_pressure_btn = release_pressure_btn; + packet.quick_connector_btn = quick_connector_btn; + packet.start_tars_btn = start_tars_btn; + packet.arm_switch = arm_switch; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CONRIG_STATE_TC, (const char *)&packet, MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_CRC); +#endif +} + +/** + * @brief Send a conrig_state_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_conrig_state_tc_send_struct(mavlink_channel_t chan, const mavlink_conrig_state_tc_t* conrig_state_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_conrig_state_tc_send(chan, conrig_state_tc->ignition_btn, conrig_state_tc->filling_valve_btn, conrig_state_tc->venting_valve_btn, conrig_state_tc->release_pressure_btn, conrig_state_tc->quick_connector_btn, conrig_state_tc->start_tars_btn, conrig_state_tc->arm_switch); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CONRIG_STATE_TC, (const char *)conrig_state_tc, MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_conrig_state_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t ignition_btn, uint8_t filling_valve_btn, uint8_t venting_valve_btn, uint8_t release_pressure_btn, uint8_t quick_connector_btn, uint8_t start_tars_btn, uint8_t arm_switch) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, ignition_btn); + _mav_put_uint8_t(buf, 1, filling_valve_btn); + _mav_put_uint8_t(buf, 2, venting_valve_btn); + _mav_put_uint8_t(buf, 3, release_pressure_btn); + _mav_put_uint8_t(buf, 4, quick_connector_btn); + _mav_put_uint8_t(buf, 5, start_tars_btn); + _mav_put_uint8_t(buf, 6, arm_switch); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CONRIG_STATE_TC, buf, MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_CRC); +#else + mavlink_conrig_state_tc_t *packet = (mavlink_conrig_state_tc_t *)msgbuf; + packet->ignition_btn = ignition_btn; + packet->filling_valve_btn = filling_valve_btn; + packet->venting_valve_btn = venting_valve_btn; + packet->release_pressure_btn = release_pressure_btn; + packet->quick_connector_btn = quick_connector_btn; + packet->start_tars_btn = start_tars_btn; + packet->arm_switch = arm_switch; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CONRIG_STATE_TC, (const char *)packet, MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN, MAVLINK_MSG_ID_CONRIG_STATE_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE CONRIG_STATE_TC UNPACKING + + +/** + * @brief Get field ignition_btn from conrig_state_tc message + * + * @return Ignition button pressed + */ +static inline uint8_t mavlink_msg_conrig_state_tc_get_ignition_btn(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Get field filling_valve_btn from conrig_state_tc message + * + * @return Open filling valve pressed + */ +static inline uint8_t mavlink_msg_conrig_state_tc_get_filling_valve_btn(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 1); +} + +/** + * @brief Get field venting_valve_btn from conrig_state_tc message + * + * @return Open venting valve pressed + */ +static inline uint8_t mavlink_msg_conrig_state_tc_get_venting_valve_btn(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 2); +} + +/** + * @brief Get field release_pressure_btn from conrig_state_tc message + * + * @return Release filling line pressure pressed + */ +static inline uint8_t mavlink_msg_conrig_state_tc_get_release_pressure_btn(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 3); +} + +/** + * @brief Get field quick_connector_btn from conrig_state_tc message + * + * @return Detach quick connector pressed + */ +static inline uint8_t mavlink_msg_conrig_state_tc_get_quick_connector_btn(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 4); +} + +/** + * @brief Get field start_tars_btn from conrig_state_tc message + * + * @return Startup TARS pressed + */ +static inline uint8_t mavlink_msg_conrig_state_tc_get_start_tars_btn(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 5); +} + +/** + * @brief Get field arm_switch from conrig_state_tc message + * + * @return Arming switch state + */ +static inline uint8_t mavlink_msg_conrig_state_tc_get_arm_switch(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 6); +} + +/** + * @brief Decode a conrig_state_tc message into a struct + * + * @param msg The message to decode + * @param conrig_state_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_conrig_state_tc_decode(const mavlink_message_t* msg, mavlink_conrig_state_tc_t* conrig_state_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + conrig_state_tc->ignition_btn = mavlink_msg_conrig_state_tc_get_ignition_btn(msg); + conrig_state_tc->filling_valve_btn = mavlink_msg_conrig_state_tc_get_filling_valve_btn(msg); + conrig_state_tc->venting_valve_btn = mavlink_msg_conrig_state_tc_get_venting_valve_btn(msg); + conrig_state_tc->release_pressure_btn = mavlink_msg_conrig_state_tc_get_release_pressure_btn(msg); + conrig_state_tc->quick_connector_btn = mavlink_msg_conrig_state_tc_get_quick_connector_btn(msg); + conrig_state_tc->start_tars_btn = mavlink_msg_conrig_state_tc_get_start_tars_btn(msg); + conrig_state_tc->arm_switch = mavlink_msg_conrig_state_tc_get_arm_switch(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN? msg->len : MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN; + memset(conrig_state_tc, 0, MAVLINK_MSG_ID_CONRIG_STATE_TC_LEN); + memcpy(conrig_state_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_current_tm.h b/mavlink_lib/lyra/mavlink_msg_current_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..a63460b470e330fb90ada85f4cf61a1ec67401b2 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_current_tm.h @@ -0,0 +1,255 @@ +#pragma once +// MESSAGE CURRENT_TM PACKING + +#define MAVLINK_MSG_ID_CURRENT_TM 107 + + +typedef struct __mavlink_current_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float current; /*< [A] Current*/ + char sensor_name[20]; /*< Sensor name*/ +} mavlink_current_tm_t; + +#define MAVLINK_MSG_ID_CURRENT_TM_LEN 32 +#define MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN 32 +#define MAVLINK_MSG_ID_107_LEN 32 +#define MAVLINK_MSG_ID_107_MIN_LEN 32 + +#define MAVLINK_MSG_ID_CURRENT_TM_CRC 212 +#define MAVLINK_MSG_ID_107_CRC 212 + +#define MAVLINK_MSG_CURRENT_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_CURRENT_TM { \ + 107, \ + "CURRENT_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_current_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_current_tm_t, sensor_name) }, \ + { "current", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_current_tm_t, current) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_CURRENT_TM { \ + "CURRENT_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_current_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_current_tm_t, sensor_name) }, \ + { "current", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_current_tm_t, current) }, \ + } \ +} +#endif + +/** + * @brief Pack a current_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param current [A] Current + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_current_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, const char *sensor_name, float current) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CURRENT_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, current); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CURRENT_TM_LEN); +#else + mavlink_current_tm_t packet; + packet.timestamp = timestamp; + packet.current = current; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CURRENT_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CURRENT_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN, MAVLINK_MSG_ID_CURRENT_TM_LEN, MAVLINK_MSG_ID_CURRENT_TM_CRC); +} + +/** + * @brief Pack a current_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param current [A] Current + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_current_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,const char *sensor_name,float current) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CURRENT_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, current); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CURRENT_TM_LEN); +#else + mavlink_current_tm_t packet; + packet.timestamp = timestamp; + packet.current = current; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CURRENT_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CURRENT_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN, MAVLINK_MSG_ID_CURRENT_TM_LEN, MAVLINK_MSG_ID_CURRENT_TM_CRC); +} + +/** + * @brief Encode a current_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param current_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_current_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_current_tm_t* current_tm) +{ + return mavlink_msg_current_tm_pack(system_id, component_id, msg, current_tm->timestamp, current_tm->sensor_name, current_tm->current); +} + +/** + * @brief Encode a current_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param current_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_current_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_current_tm_t* current_tm) +{ + return mavlink_msg_current_tm_pack_chan(system_id, component_id, chan, msg, current_tm->timestamp, current_tm->sensor_name, current_tm->current); +} + +/** + * @brief Send a current_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param current [A] Current + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_current_tm_send(mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float current) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CURRENT_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, current); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CURRENT_TM, buf, MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN, MAVLINK_MSG_ID_CURRENT_TM_LEN, MAVLINK_MSG_ID_CURRENT_TM_CRC); +#else + mavlink_current_tm_t packet; + packet.timestamp = timestamp; + packet.current = current; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CURRENT_TM, (const char *)&packet, MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN, MAVLINK_MSG_ID_CURRENT_TM_LEN, MAVLINK_MSG_ID_CURRENT_TM_CRC); +#endif +} + +/** + * @brief Send a current_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_current_tm_send_struct(mavlink_channel_t chan, const mavlink_current_tm_t* current_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_current_tm_send(chan, current_tm->timestamp, current_tm->sensor_name, current_tm->current); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CURRENT_TM, (const char *)current_tm, MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN, MAVLINK_MSG_ID_CURRENT_TM_LEN, MAVLINK_MSG_ID_CURRENT_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_CURRENT_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_current_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float current) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, current); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CURRENT_TM, buf, MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN, MAVLINK_MSG_ID_CURRENT_TM_LEN, MAVLINK_MSG_ID_CURRENT_TM_CRC); +#else + mavlink_current_tm_t *packet = (mavlink_current_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->current = current; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CURRENT_TM, (const char *)packet, MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN, MAVLINK_MSG_ID_CURRENT_TM_LEN, MAVLINK_MSG_ID_CURRENT_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE CURRENT_TM UNPACKING + + +/** + * @brief Get field timestamp from current_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_current_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field sensor_name from current_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_current_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 12); +} + +/** + * @brief Get field current from current_tm message + * + * @return [A] Current + */ +static inline float mavlink_msg_current_tm_get_current(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Decode a current_tm message into a struct + * + * @param msg The message to decode + * @param current_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_current_tm_decode(const mavlink_message_t* msg, mavlink_current_tm_t* current_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + current_tm->timestamp = mavlink_msg_current_tm_get_timestamp(msg); + current_tm->current = mavlink_msg_current_tm_get_current(msg); + mavlink_msg_current_tm_get_sensor_name(msg, current_tm->sensor_name); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_CURRENT_TM_LEN? msg->len : MAVLINK_MSG_ID_CURRENT_TM_LEN; + memset(current_tm, 0, MAVLINK_MSG_ID_CURRENT_TM_LEN); + memcpy(current_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_fsm_tm.h b/mavlink_lib/lyra/mavlink_msg_fsm_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..cc60afc359614defcc489ad0497c01e43dfc908a --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_fsm_tm.h @@ -0,0 +1,363 @@ +#pragma once +// MESSAGE FSM_TM PACKING + +#define MAVLINK_MSG_ID_FSM_TM 201 + + +typedef struct __mavlink_fsm_tm_t { + uint64_t timestamp; /*< [us] Timestamp*/ + uint8_t ada_state; /*< Apogee Detection Algorithm state*/ + uint8_t abk_state; /*< Air Brakes state*/ + uint8_t dpl_state; /*< Deployment state*/ + uint8_t fmm_state; /*< Flight Mode Manager state*/ + uint8_t nas_state; /*< Navigation and Attitude System state*/ + uint8_t wes_state; /*< Wind Estimation System state*/ +} mavlink_fsm_tm_t; + +#define MAVLINK_MSG_ID_FSM_TM_LEN 14 +#define MAVLINK_MSG_ID_FSM_TM_MIN_LEN 14 +#define MAVLINK_MSG_ID_201_LEN 14 +#define MAVLINK_MSG_ID_201_MIN_LEN 14 + +#define MAVLINK_MSG_ID_FSM_TM_CRC 242 +#define MAVLINK_MSG_ID_201_CRC 242 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_FSM_TM { \ + 201, \ + "FSM_TM", \ + 7, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_fsm_tm_t, timestamp) }, \ + { "ada_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_fsm_tm_t, ada_state) }, \ + { "abk_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_fsm_tm_t, abk_state) }, \ + { "dpl_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_fsm_tm_t, dpl_state) }, \ + { "fmm_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_fsm_tm_t, fmm_state) }, \ + { "nas_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 12, offsetof(mavlink_fsm_tm_t, nas_state) }, \ + { "wes_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 13, offsetof(mavlink_fsm_tm_t, wes_state) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_FSM_TM { \ + "FSM_TM", \ + 7, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_fsm_tm_t, timestamp) }, \ + { "ada_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_fsm_tm_t, ada_state) }, \ + { "abk_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_fsm_tm_t, abk_state) }, \ + { "dpl_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_fsm_tm_t, dpl_state) }, \ + { "fmm_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_fsm_tm_t, fmm_state) }, \ + { "nas_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 12, offsetof(mavlink_fsm_tm_t, nas_state) }, \ + { "wes_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 13, offsetof(mavlink_fsm_tm_t, wes_state) }, \ + } \ +} +#endif + +/** + * @brief Pack a fsm_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] Timestamp + * @param ada_state Apogee Detection Algorithm state + * @param abk_state Air Brakes state + * @param dpl_state Deployment state + * @param fmm_state Flight Mode Manager state + * @param nas_state Navigation and Attitude System state + * @param wes_state Wind Estimation System state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_fsm_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t ada_state, uint8_t abk_state, uint8_t dpl_state, uint8_t fmm_state, uint8_t nas_state, uint8_t wes_state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_FSM_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint8_t(buf, 8, ada_state); + _mav_put_uint8_t(buf, 9, abk_state); + _mav_put_uint8_t(buf, 10, dpl_state); + _mav_put_uint8_t(buf, 11, fmm_state); + _mav_put_uint8_t(buf, 12, nas_state); + _mav_put_uint8_t(buf, 13, wes_state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_FSM_TM_LEN); +#else + mavlink_fsm_tm_t packet; + packet.timestamp = timestamp; + packet.ada_state = ada_state; + packet.abk_state = abk_state; + packet.dpl_state = dpl_state; + packet.fmm_state = fmm_state; + packet.nas_state = nas_state; + packet.wes_state = wes_state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_FSM_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_FSM_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_FSM_TM_MIN_LEN, MAVLINK_MSG_ID_FSM_TM_LEN, MAVLINK_MSG_ID_FSM_TM_CRC); +} + +/** + * @brief Pack a fsm_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] Timestamp + * @param ada_state Apogee Detection Algorithm state + * @param abk_state Air Brakes state + * @param dpl_state Deployment state + * @param fmm_state Flight Mode Manager state + * @param nas_state Navigation and Attitude System state + * @param wes_state Wind Estimation System state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_fsm_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t ada_state,uint8_t abk_state,uint8_t dpl_state,uint8_t fmm_state,uint8_t nas_state,uint8_t wes_state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_FSM_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint8_t(buf, 8, ada_state); + _mav_put_uint8_t(buf, 9, abk_state); + _mav_put_uint8_t(buf, 10, dpl_state); + _mav_put_uint8_t(buf, 11, fmm_state); + _mav_put_uint8_t(buf, 12, nas_state); + _mav_put_uint8_t(buf, 13, wes_state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_FSM_TM_LEN); +#else + mavlink_fsm_tm_t packet; + packet.timestamp = timestamp; + packet.ada_state = ada_state; + packet.abk_state = abk_state; + packet.dpl_state = dpl_state; + packet.fmm_state = fmm_state; + packet.nas_state = nas_state; + packet.wes_state = wes_state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_FSM_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_FSM_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_FSM_TM_MIN_LEN, MAVLINK_MSG_ID_FSM_TM_LEN, MAVLINK_MSG_ID_FSM_TM_CRC); +} + +/** + * @brief Encode a fsm_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param fsm_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_fsm_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_fsm_tm_t* fsm_tm) +{ + return mavlink_msg_fsm_tm_pack(system_id, component_id, msg, fsm_tm->timestamp, fsm_tm->ada_state, fsm_tm->abk_state, fsm_tm->dpl_state, fsm_tm->fmm_state, fsm_tm->nas_state, fsm_tm->wes_state); +} + +/** + * @brief Encode a fsm_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param fsm_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_fsm_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_fsm_tm_t* fsm_tm) +{ + return mavlink_msg_fsm_tm_pack_chan(system_id, component_id, chan, msg, fsm_tm->timestamp, fsm_tm->ada_state, fsm_tm->abk_state, fsm_tm->dpl_state, fsm_tm->fmm_state, fsm_tm->nas_state, fsm_tm->wes_state); +} + +/** + * @brief Send a fsm_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] Timestamp + * @param ada_state Apogee Detection Algorithm state + * @param abk_state Air Brakes state + * @param dpl_state Deployment state + * @param fmm_state Flight Mode Manager state + * @param nas_state Navigation and Attitude System state + * @param wes_state Wind Estimation System state + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_fsm_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t ada_state, uint8_t abk_state, uint8_t dpl_state, uint8_t fmm_state, uint8_t nas_state, uint8_t wes_state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_FSM_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint8_t(buf, 8, ada_state); + _mav_put_uint8_t(buf, 9, abk_state); + _mav_put_uint8_t(buf, 10, dpl_state); + _mav_put_uint8_t(buf, 11, fmm_state); + _mav_put_uint8_t(buf, 12, nas_state); + _mav_put_uint8_t(buf, 13, wes_state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FSM_TM, buf, MAVLINK_MSG_ID_FSM_TM_MIN_LEN, MAVLINK_MSG_ID_FSM_TM_LEN, MAVLINK_MSG_ID_FSM_TM_CRC); +#else + mavlink_fsm_tm_t packet; + packet.timestamp = timestamp; + packet.ada_state = ada_state; + packet.abk_state = abk_state; + packet.dpl_state = dpl_state; + packet.fmm_state = fmm_state; + packet.nas_state = nas_state; + packet.wes_state = wes_state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FSM_TM, (const char *)&packet, MAVLINK_MSG_ID_FSM_TM_MIN_LEN, MAVLINK_MSG_ID_FSM_TM_LEN, MAVLINK_MSG_ID_FSM_TM_CRC); +#endif +} + +/** + * @brief Send a fsm_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_fsm_tm_send_struct(mavlink_channel_t chan, const mavlink_fsm_tm_t* fsm_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_fsm_tm_send(chan, fsm_tm->timestamp, fsm_tm->ada_state, fsm_tm->abk_state, fsm_tm->dpl_state, fsm_tm->fmm_state, fsm_tm->nas_state, fsm_tm->wes_state); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FSM_TM, (const char *)fsm_tm, MAVLINK_MSG_ID_FSM_TM_MIN_LEN, MAVLINK_MSG_ID_FSM_TM_LEN, MAVLINK_MSG_ID_FSM_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_FSM_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_fsm_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t ada_state, uint8_t abk_state, uint8_t dpl_state, uint8_t fmm_state, uint8_t nas_state, uint8_t wes_state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint8_t(buf, 8, ada_state); + _mav_put_uint8_t(buf, 9, abk_state); + _mav_put_uint8_t(buf, 10, dpl_state); + _mav_put_uint8_t(buf, 11, fmm_state); + _mav_put_uint8_t(buf, 12, nas_state); + _mav_put_uint8_t(buf, 13, wes_state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FSM_TM, buf, MAVLINK_MSG_ID_FSM_TM_MIN_LEN, MAVLINK_MSG_ID_FSM_TM_LEN, MAVLINK_MSG_ID_FSM_TM_CRC); +#else + mavlink_fsm_tm_t *packet = (mavlink_fsm_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->ada_state = ada_state; + packet->abk_state = abk_state; + packet->dpl_state = dpl_state; + packet->fmm_state = fmm_state; + packet->nas_state = nas_state; + packet->wes_state = wes_state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FSM_TM, (const char *)packet, MAVLINK_MSG_ID_FSM_TM_MIN_LEN, MAVLINK_MSG_ID_FSM_TM_LEN, MAVLINK_MSG_ID_FSM_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE FSM_TM UNPACKING + + +/** + * @brief Get field timestamp from fsm_tm message + * + * @return [us] Timestamp + */ +static inline uint64_t mavlink_msg_fsm_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field ada_state from fsm_tm message + * + * @return Apogee Detection Algorithm state + */ +static inline uint8_t mavlink_msg_fsm_tm_get_ada_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 8); +} + +/** + * @brief Get field abk_state from fsm_tm message + * + * @return Air Brakes state + */ +static inline uint8_t mavlink_msg_fsm_tm_get_abk_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 9); +} + +/** + * @brief Get field dpl_state from fsm_tm message + * + * @return Deployment state + */ +static inline uint8_t mavlink_msg_fsm_tm_get_dpl_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 10); +} + +/** + * @brief Get field fmm_state from fsm_tm message + * + * @return Flight Mode Manager state + */ +static inline uint8_t mavlink_msg_fsm_tm_get_fmm_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 11); +} + +/** + * @brief Get field nas_state from fsm_tm message + * + * @return Navigation and Attitude System state + */ +static inline uint8_t mavlink_msg_fsm_tm_get_nas_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 12); +} + +/** + * @brief Get field wes_state from fsm_tm message + * + * @return Wind Estimation System state + */ +static inline uint8_t mavlink_msg_fsm_tm_get_wes_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 13); +} + +/** + * @brief Decode a fsm_tm message into a struct + * + * @param msg The message to decode + * @param fsm_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_fsm_tm_decode(const mavlink_message_t* msg, mavlink_fsm_tm_t* fsm_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + fsm_tm->timestamp = mavlink_msg_fsm_tm_get_timestamp(msg); + fsm_tm->ada_state = mavlink_msg_fsm_tm_get_ada_state(msg); + fsm_tm->abk_state = mavlink_msg_fsm_tm_get_abk_state(msg); + fsm_tm->dpl_state = mavlink_msg_fsm_tm_get_dpl_state(msg); + fsm_tm->fmm_state = mavlink_msg_fsm_tm_get_fmm_state(msg); + fsm_tm->nas_state = mavlink_msg_fsm_tm_get_nas_state(msg); + fsm_tm->wes_state = mavlink_msg_fsm_tm_get_wes_state(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_FSM_TM_LEN? msg->len : MAVLINK_MSG_ID_FSM_TM_LEN; + memset(fsm_tm, 0, MAVLINK_MSG_ID_FSM_TM_LEN); + memcpy(fsm_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_gps_tm.h b/mavlink_lib/lyra/mavlink_msg_gps_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..96f4891e5530a812d22ae2891cded1543bfddd74 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_gps_tm.h @@ -0,0 +1,480 @@ +#pragma once +// MESSAGE GPS_TM PACKING + +#define MAVLINK_MSG_ID_GPS_TM 102 + + +typedef struct __mavlink_gps_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + double latitude; /*< [deg] Latitude*/ + double longitude; /*< [deg] Longitude*/ + double height; /*< [m] Altitude*/ + float vel_north; /*< [m/s] Velocity in NED frame (north)*/ + float vel_east; /*< [m/s] Velocity in NED frame (east)*/ + float vel_down; /*< [m/s] Velocity in NED frame (down)*/ + float speed; /*< [m/s] Speed*/ + float track; /*< [deg] Track*/ + char sensor_name[20]; /*< Sensor name*/ + uint8_t fix; /*< Wether the GPS has a FIX*/ + uint8_t n_satellites; /*< Number of connected satellites*/ +} mavlink_gps_tm_t; + +#define MAVLINK_MSG_ID_GPS_TM_LEN 74 +#define MAVLINK_MSG_ID_GPS_TM_MIN_LEN 74 +#define MAVLINK_MSG_ID_102_LEN 74 +#define MAVLINK_MSG_ID_102_MIN_LEN 74 + +#define MAVLINK_MSG_ID_GPS_TM_CRC 57 +#define MAVLINK_MSG_ID_102_CRC 57 + +#define MAVLINK_MSG_GPS_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_GPS_TM { \ + 102, \ + "GPS_TM", \ + 12, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_gps_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 52, offsetof(mavlink_gps_tm_t, sensor_name) }, \ + { "fix", NULL, MAVLINK_TYPE_UINT8_T, 0, 72, offsetof(mavlink_gps_tm_t, fix) }, \ + { "latitude", NULL, MAVLINK_TYPE_DOUBLE, 0, 8, offsetof(mavlink_gps_tm_t, latitude) }, \ + { "longitude", NULL, MAVLINK_TYPE_DOUBLE, 0, 16, offsetof(mavlink_gps_tm_t, longitude) }, \ + { "height", NULL, MAVLINK_TYPE_DOUBLE, 0, 24, offsetof(mavlink_gps_tm_t, height) }, \ + { "vel_north", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_gps_tm_t, vel_north) }, \ + { "vel_east", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_gps_tm_t, vel_east) }, \ + { "vel_down", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_gps_tm_t, vel_down) }, \ + { "speed", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_gps_tm_t, speed) }, \ + { "track", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_gps_tm_t, track) }, \ + { "n_satellites", NULL, MAVLINK_TYPE_UINT8_T, 0, 73, offsetof(mavlink_gps_tm_t, n_satellites) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_GPS_TM { \ + "GPS_TM", \ + 12, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_gps_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 52, offsetof(mavlink_gps_tm_t, sensor_name) }, \ + { "fix", NULL, MAVLINK_TYPE_UINT8_T, 0, 72, offsetof(mavlink_gps_tm_t, fix) }, \ + { "latitude", NULL, MAVLINK_TYPE_DOUBLE, 0, 8, offsetof(mavlink_gps_tm_t, latitude) }, \ + { "longitude", NULL, MAVLINK_TYPE_DOUBLE, 0, 16, offsetof(mavlink_gps_tm_t, longitude) }, \ + { "height", NULL, MAVLINK_TYPE_DOUBLE, 0, 24, offsetof(mavlink_gps_tm_t, height) }, \ + { "vel_north", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_gps_tm_t, vel_north) }, \ + { "vel_east", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_gps_tm_t, vel_east) }, \ + { "vel_down", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_gps_tm_t, vel_down) }, \ + { "speed", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_gps_tm_t, speed) }, \ + { "track", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_gps_tm_t, track) }, \ + { "n_satellites", NULL, MAVLINK_TYPE_UINT8_T, 0, 73, offsetof(mavlink_gps_tm_t, n_satellites) }, \ + } \ +} +#endif + +/** + * @brief Pack a gps_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param fix Wether the GPS has a FIX + * @param latitude [deg] Latitude + * @param longitude [deg] Longitude + * @param height [m] Altitude + * @param vel_north [m/s] Velocity in NED frame (north) + * @param vel_east [m/s] Velocity in NED frame (east) + * @param vel_down [m/s] Velocity in NED frame (down) + * @param speed [m/s] Speed + * @param track [deg] Track + * @param n_satellites Number of connected satellites + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_gps_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, const char *sensor_name, uint8_t fix, double latitude, double longitude, double height, float vel_north, float vel_east, float vel_down, float speed, float track, uint8_t n_satellites) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_GPS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_double(buf, 8, latitude); + _mav_put_double(buf, 16, longitude); + _mav_put_double(buf, 24, height); + _mav_put_float(buf, 32, vel_north); + _mav_put_float(buf, 36, vel_east); + _mav_put_float(buf, 40, vel_down); + _mav_put_float(buf, 44, speed); + _mav_put_float(buf, 48, track); + _mav_put_uint8_t(buf, 72, fix); + _mav_put_uint8_t(buf, 73, n_satellites); + _mav_put_char_array(buf, 52, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_GPS_TM_LEN); +#else + mavlink_gps_tm_t packet; + packet.timestamp = timestamp; + packet.latitude = latitude; + packet.longitude = longitude; + packet.height = height; + packet.vel_north = vel_north; + packet.vel_east = vel_east; + packet.vel_down = vel_down; + packet.speed = speed; + packet.track = track; + packet.fix = fix; + packet.n_satellites = n_satellites; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_GPS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_GPS_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_GPS_TM_MIN_LEN, MAVLINK_MSG_ID_GPS_TM_LEN, MAVLINK_MSG_ID_GPS_TM_CRC); +} + +/** + * @brief Pack a gps_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param fix Wether the GPS has a FIX + * @param latitude [deg] Latitude + * @param longitude [deg] Longitude + * @param height [m] Altitude + * @param vel_north [m/s] Velocity in NED frame (north) + * @param vel_east [m/s] Velocity in NED frame (east) + * @param vel_down [m/s] Velocity in NED frame (down) + * @param speed [m/s] Speed + * @param track [deg] Track + * @param n_satellites Number of connected satellites + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_gps_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,const char *sensor_name,uint8_t fix,double latitude,double longitude,double height,float vel_north,float vel_east,float vel_down,float speed,float track,uint8_t n_satellites) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_GPS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_double(buf, 8, latitude); + _mav_put_double(buf, 16, longitude); + _mav_put_double(buf, 24, height); + _mav_put_float(buf, 32, vel_north); + _mav_put_float(buf, 36, vel_east); + _mav_put_float(buf, 40, vel_down); + _mav_put_float(buf, 44, speed); + _mav_put_float(buf, 48, track); + _mav_put_uint8_t(buf, 72, fix); + _mav_put_uint8_t(buf, 73, n_satellites); + _mav_put_char_array(buf, 52, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_GPS_TM_LEN); +#else + mavlink_gps_tm_t packet; + packet.timestamp = timestamp; + packet.latitude = latitude; + packet.longitude = longitude; + packet.height = height; + packet.vel_north = vel_north; + packet.vel_east = vel_east; + packet.vel_down = vel_down; + packet.speed = speed; + packet.track = track; + packet.fix = fix; + packet.n_satellites = n_satellites; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_GPS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_GPS_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_GPS_TM_MIN_LEN, MAVLINK_MSG_ID_GPS_TM_LEN, MAVLINK_MSG_ID_GPS_TM_CRC); +} + +/** + * @brief Encode a gps_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param gps_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_gps_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_gps_tm_t* gps_tm) +{ + return mavlink_msg_gps_tm_pack(system_id, component_id, msg, gps_tm->timestamp, gps_tm->sensor_name, gps_tm->fix, gps_tm->latitude, gps_tm->longitude, gps_tm->height, gps_tm->vel_north, gps_tm->vel_east, gps_tm->vel_down, gps_tm->speed, gps_tm->track, gps_tm->n_satellites); +} + +/** + * @brief Encode a gps_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param gps_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_gps_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_gps_tm_t* gps_tm) +{ + return mavlink_msg_gps_tm_pack_chan(system_id, component_id, chan, msg, gps_tm->timestamp, gps_tm->sensor_name, gps_tm->fix, gps_tm->latitude, gps_tm->longitude, gps_tm->height, gps_tm->vel_north, gps_tm->vel_east, gps_tm->vel_down, gps_tm->speed, gps_tm->track, gps_tm->n_satellites); +} + +/** + * @brief Send a gps_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param fix Wether the GPS has a FIX + * @param latitude [deg] Latitude + * @param longitude [deg] Longitude + * @param height [m] Altitude + * @param vel_north [m/s] Velocity in NED frame (north) + * @param vel_east [m/s] Velocity in NED frame (east) + * @param vel_down [m/s] Velocity in NED frame (down) + * @param speed [m/s] Speed + * @param track [deg] Track + * @param n_satellites Number of connected satellites + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_gps_tm_send(mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, uint8_t fix, double latitude, double longitude, double height, float vel_north, float vel_east, float vel_down, float speed, float track, uint8_t n_satellites) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_GPS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_double(buf, 8, latitude); + _mav_put_double(buf, 16, longitude); + _mav_put_double(buf, 24, height); + _mav_put_float(buf, 32, vel_north); + _mav_put_float(buf, 36, vel_east); + _mav_put_float(buf, 40, vel_down); + _mav_put_float(buf, 44, speed); + _mav_put_float(buf, 48, track); + _mav_put_uint8_t(buf, 72, fix); + _mav_put_uint8_t(buf, 73, n_satellites); + _mav_put_char_array(buf, 52, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_TM, buf, MAVLINK_MSG_ID_GPS_TM_MIN_LEN, MAVLINK_MSG_ID_GPS_TM_LEN, MAVLINK_MSG_ID_GPS_TM_CRC); +#else + mavlink_gps_tm_t packet; + packet.timestamp = timestamp; + packet.latitude = latitude; + packet.longitude = longitude; + packet.height = height; + packet.vel_north = vel_north; + packet.vel_east = vel_east; + packet.vel_down = vel_down; + packet.speed = speed; + packet.track = track; + packet.fix = fix; + packet.n_satellites = n_satellites; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_TM, (const char *)&packet, MAVLINK_MSG_ID_GPS_TM_MIN_LEN, MAVLINK_MSG_ID_GPS_TM_LEN, MAVLINK_MSG_ID_GPS_TM_CRC); +#endif +} + +/** + * @brief Send a gps_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_gps_tm_send_struct(mavlink_channel_t chan, const mavlink_gps_tm_t* gps_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_gps_tm_send(chan, gps_tm->timestamp, gps_tm->sensor_name, gps_tm->fix, gps_tm->latitude, gps_tm->longitude, gps_tm->height, gps_tm->vel_north, gps_tm->vel_east, gps_tm->vel_down, gps_tm->speed, gps_tm->track, gps_tm->n_satellites); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_TM, (const char *)gps_tm, MAVLINK_MSG_ID_GPS_TM_MIN_LEN, MAVLINK_MSG_ID_GPS_TM_LEN, MAVLINK_MSG_ID_GPS_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_GPS_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_gps_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, uint8_t fix, double latitude, double longitude, double height, float vel_north, float vel_east, float vel_down, float speed, float track, uint8_t n_satellites) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_double(buf, 8, latitude); + _mav_put_double(buf, 16, longitude); + _mav_put_double(buf, 24, height); + _mav_put_float(buf, 32, vel_north); + _mav_put_float(buf, 36, vel_east); + _mav_put_float(buf, 40, vel_down); + _mav_put_float(buf, 44, speed); + _mav_put_float(buf, 48, track); + _mav_put_uint8_t(buf, 72, fix); + _mav_put_uint8_t(buf, 73, n_satellites); + _mav_put_char_array(buf, 52, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_TM, buf, MAVLINK_MSG_ID_GPS_TM_MIN_LEN, MAVLINK_MSG_ID_GPS_TM_LEN, MAVLINK_MSG_ID_GPS_TM_CRC); +#else + mavlink_gps_tm_t *packet = (mavlink_gps_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->latitude = latitude; + packet->longitude = longitude; + packet->height = height; + packet->vel_north = vel_north; + packet->vel_east = vel_east; + packet->vel_down = vel_down; + packet->speed = speed; + packet->track = track; + packet->fix = fix; + packet->n_satellites = n_satellites; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_TM, (const char *)packet, MAVLINK_MSG_ID_GPS_TM_MIN_LEN, MAVLINK_MSG_ID_GPS_TM_LEN, MAVLINK_MSG_ID_GPS_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE GPS_TM UNPACKING + + +/** + * @brief Get field timestamp from gps_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_gps_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field sensor_name from gps_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_gps_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 52); +} + +/** + * @brief Get field fix from gps_tm message + * + * @return Wether the GPS has a FIX + */ +static inline uint8_t mavlink_msg_gps_tm_get_fix(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 72); +} + +/** + * @brief Get field latitude from gps_tm message + * + * @return [deg] Latitude + */ +static inline double mavlink_msg_gps_tm_get_latitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_double(msg, 8); +} + +/** + * @brief Get field longitude from gps_tm message + * + * @return [deg] Longitude + */ +static inline double mavlink_msg_gps_tm_get_longitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_double(msg, 16); +} + +/** + * @brief Get field height from gps_tm message + * + * @return [m] Altitude + */ +static inline double mavlink_msg_gps_tm_get_height(const mavlink_message_t* msg) +{ + return _MAV_RETURN_double(msg, 24); +} + +/** + * @brief Get field vel_north from gps_tm message + * + * @return [m/s] Velocity in NED frame (north) + */ +static inline float mavlink_msg_gps_tm_get_vel_north(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field vel_east from gps_tm message + * + * @return [m/s] Velocity in NED frame (east) + */ +static inline float mavlink_msg_gps_tm_get_vel_east(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Get field vel_down from gps_tm message + * + * @return [m/s] Velocity in NED frame (down) + */ +static inline float mavlink_msg_gps_tm_get_vel_down(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Get field speed from gps_tm message + * + * @return [m/s] Speed + */ +static inline float mavlink_msg_gps_tm_get_speed(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 44); +} + +/** + * @brief Get field track from gps_tm message + * + * @return [deg] Track + */ +static inline float mavlink_msg_gps_tm_get_track(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 48); +} + +/** + * @brief Get field n_satellites from gps_tm message + * + * @return Number of connected satellites + */ +static inline uint8_t mavlink_msg_gps_tm_get_n_satellites(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 73); +} + +/** + * @brief Decode a gps_tm message into a struct + * + * @param msg The message to decode + * @param gps_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_gps_tm_decode(const mavlink_message_t* msg, mavlink_gps_tm_t* gps_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + gps_tm->timestamp = mavlink_msg_gps_tm_get_timestamp(msg); + gps_tm->latitude = mavlink_msg_gps_tm_get_latitude(msg); + gps_tm->longitude = mavlink_msg_gps_tm_get_longitude(msg); + gps_tm->height = mavlink_msg_gps_tm_get_height(msg); + gps_tm->vel_north = mavlink_msg_gps_tm_get_vel_north(msg); + gps_tm->vel_east = mavlink_msg_gps_tm_get_vel_east(msg); + gps_tm->vel_down = mavlink_msg_gps_tm_get_vel_down(msg); + gps_tm->speed = mavlink_msg_gps_tm_get_speed(msg); + gps_tm->track = mavlink_msg_gps_tm_get_track(msg); + mavlink_msg_gps_tm_get_sensor_name(msg, gps_tm->sensor_name); + gps_tm->fix = mavlink_msg_gps_tm_get_fix(msg); + gps_tm->n_satellites = mavlink_msg_gps_tm_get_n_satellites(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_GPS_TM_LEN? msg->len : MAVLINK_MSG_ID_GPS_TM_LEN; + memset(gps_tm, 0, MAVLINK_MSG_ID_GPS_TM_LEN); + memcpy(gps_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_gse_tm.h b/mavlink_lib/lyra/mavlink_msg_gse_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..5b5742e639f0cc49886bd5df0396e8821a9075b3 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_gse_tm.h @@ -0,0 +1,613 @@ +#pragma once +// MESSAGE GSE_TM PACKING + +#define MAVLINK_MSG_ID_GSE_TM 212 + + +typedef struct __mavlink_gse_tm_t { + uint64_t timestamp; /*< [us] Timestamp in microseconds*/ + float loadcell_rocket; /*< [kg] Rocket weight*/ + float loadcell_vessel; /*< [kg] External tank weight*/ + float filling_pressure; /*< [Bar] Refueling line pressure*/ + float vessel_pressure; /*< [Bar] Vessel tank pressure*/ + float battery_voltage; /*< Battery voltage*/ + float current_consumption; /*< RIG current */ + uint8_t arming_state; /*< 1 If the rocket is armed*/ + uint8_t filling_valve_state; /*< 1 If the filling valve is open*/ + uint8_t venting_valve_state; /*< 1 If the venting valve is open*/ + uint8_t release_valve_state; /*< 1 If the release valve is open*/ + uint8_t main_valve_state; /*< 1 If the main valve is open */ + uint8_t ignition_state; /*< 1 If the RIG is in ignition process*/ + uint8_t tars_state; /*< 1 If the TARS algorithm is running*/ + uint8_t main_board_status; /*< MAIN board status [0: not present, 1: online, 2: armed]*/ + uint8_t payload_board_status; /*< PAYLOAD board status [0: not present, 1: online, 2: armed]*/ + uint8_t motor_board_status; /*< MOTOR board status [0: not present, 1: online, 2: armed]*/ +} mavlink_gse_tm_t; + +#define MAVLINK_MSG_ID_GSE_TM_LEN 42 +#define MAVLINK_MSG_ID_GSE_TM_MIN_LEN 42 +#define MAVLINK_MSG_ID_212_LEN 42 +#define MAVLINK_MSG_ID_212_MIN_LEN 42 + +#define MAVLINK_MSG_ID_GSE_TM_CRC 63 +#define MAVLINK_MSG_ID_212_CRC 63 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_GSE_TM { \ + 212, \ + "GSE_TM", \ + 17, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_gse_tm_t, timestamp) }, \ + { "loadcell_rocket", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_gse_tm_t, loadcell_rocket) }, \ + { "loadcell_vessel", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_gse_tm_t, loadcell_vessel) }, \ + { "filling_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_gse_tm_t, filling_pressure) }, \ + { "vessel_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_gse_tm_t, vessel_pressure) }, \ + { "arming_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_gse_tm_t, arming_state) }, \ + { "filling_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 33, offsetof(mavlink_gse_tm_t, filling_valve_state) }, \ + { "venting_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 34, offsetof(mavlink_gse_tm_t, venting_valve_state) }, \ + { "release_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_gse_tm_t, release_valve_state) }, \ + { "main_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_gse_tm_t, main_valve_state) }, \ + { "ignition_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 37, offsetof(mavlink_gse_tm_t, ignition_state) }, \ + { "tars_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 38, offsetof(mavlink_gse_tm_t, tars_state) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_gse_tm_t, battery_voltage) }, \ + { "current_consumption", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_gse_tm_t, current_consumption) }, \ + { "main_board_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 39, offsetof(mavlink_gse_tm_t, main_board_status) }, \ + { "payload_board_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 40, offsetof(mavlink_gse_tm_t, payload_board_status) }, \ + { "motor_board_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 41, offsetof(mavlink_gse_tm_t, motor_board_status) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_GSE_TM { \ + "GSE_TM", \ + 17, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_gse_tm_t, timestamp) }, \ + { "loadcell_rocket", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_gse_tm_t, loadcell_rocket) }, \ + { "loadcell_vessel", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_gse_tm_t, loadcell_vessel) }, \ + { "filling_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_gse_tm_t, filling_pressure) }, \ + { "vessel_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_gse_tm_t, vessel_pressure) }, \ + { "arming_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_gse_tm_t, arming_state) }, \ + { "filling_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 33, offsetof(mavlink_gse_tm_t, filling_valve_state) }, \ + { "venting_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 34, offsetof(mavlink_gse_tm_t, venting_valve_state) }, \ + { "release_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_gse_tm_t, release_valve_state) }, \ + { "main_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_gse_tm_t, main_valve_state) }, \ + { "ignition_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 37, offsetof(mavlink_gse_tm_t, ignition_state) }, \ + { "tars_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 38, offsetof(mavlink_gse_tm_t, tars_state) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_gse_tm_t, battery_voltage) }, \ + { "current_consumption", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_gse_tm_t, current_consumption) }, \ + { "main_board_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 39, offsetof(mavlink_gse_tm_t, main_board_status) }, \ + { "payload_board_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 40, offsetof(mavlink_gse_tm_t, payload_board_status) }, \ + { "motor_board_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 41, offsetof(mavlink_gse_tm_t, motor_board_status) }, \ + } \ +} +#endif + +/** + * @brief Pack a gse_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] Timestamp in microseconds + * @param loadcell_rocket [kg] Rocket weight + * @param loadcell_vessel [kg] External tank weight + * @param filling_pressure [Bar] Refueling line pressure + * @param vessel_pressure [Bar] Vessel tank pressure + * @param arming_state 1 If the rocket is armed + * @param filling_valve_state 1 If the filling valve is open + * @param venting_valve_state 1 If the venting valve is open + * @param release_valve_state 1 If the release valve is open + * @param main_valve_state 1 If the main valve is open + * @param ignition_state 1 If the RIG is in ignition process + * @param tars_state 1 If the TARS algorithm is running + * @param battery_voltage Battery voltage + * @param current_consumption RIG current + * @param main_board_status MAIN board status [0: not present, 1: online, 2: armed] + * @param payload_board_status PAYLOAD board status [0: not present, 1: online, 2: armed] + * @param motor_board_status MOTOR board status [0: not present, 1: online, 2: armed] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_gse_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, float loadcell_rocket, float loadcell_vessel, float filling_pressure, float vessel_pressure, uint8_t arming_state, uint8_t filling_valve_state, uint8_t venting_valve_state, uint8_t release_valve_state, uint8_t main_valve_state, uint8_t ignition_state, uint8_t tars_state, float battery_voltage, float current_consumption, uint8_t main_board_status, uint8_t payload_board_status, uint8_t motor_board_status) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_GSE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, loadcell_rocket); + _mav_put_float(buf, 12, loadcell_vessel); + _mav_put_float(buf, 16, filling_pressure); + _mav_put_float(buf, 20, vessel_pressure); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_float(buf, 28, current_consumption); + _mav_put_uint8_t(buf, 32, arming_state); + _mav_put_uint8_t(buf, 33, filling_valve_state); + _mav_put_uint8_t(buf, 34, venting_valve_state); + _mav_put_uint8_t(buf, 35, release_valve_state); + _mav_put_uint8_t(buf, 36, main_valve_state); + _mav_put_uint8_t(buf, 37, ignition_state); + _mav_put_uint8_t(buf, 38, tars_state); + _mav_put_uint8_t(buf, 39, main_board_status); + _mav_put_uint8_t(buf, 40, payload_board_status); + _mav_put_uint8_t(buf, 41, motor_board_status); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_GSE_TM_LEN); +#else + mavlink_gse_tm_t packet; + packet.timestamp = timestamp; + packet.loadcell_rocket = loadcell_rocket; + packet.loadcell_vessel = loadcell_vessel; + packet.filling_pressure = filling_pressure; + packet.vessel_pressure = vessel_pressure; + packet.battery_voltage = battery_voltage; + packet.current_consumption = current_consumption; + packet.arming_state = arming_state; + packet.filling_valve_state = filling_valve_state; + packet.venting_valve_state = venting_valve_state; + packet.release_valve_state = release_valve_state; + packet.main_valve_state = main_valve_state; + packet.ignition_state = ignition_state; + packet.tars_state = tars_state; + packet.main_board_status = main_board_status; + packet.payload_board_status = payload_board_status; + packet.motor_board_status = motor_board_status; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_GSE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_GSE_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_GSE_TM_MIN_LEN, MAVLINK_MSG_ID_GSE_TM_LEN, MAVLINK_MSG_ID_GSE_TM_CRC); +} + +/** + * @brief Pack a gse_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] Timestamp in microseconds + * @param loadcell_rocket [kg] Rocket weight + * @param loadcell_vessel [kg] External tank weight + * @param filling_pressure [Bar] Refueling line pressure + * @param vessel_pressure [Bar] Vessel tank pressure + * @param arming_state 1 If the rocket is armed + * @param filling_valve_state 1 If the filling valve is open + * @param venting_valve_state 1 If the venting valve is open + * @param release_valve_state 1 If the release valve is open + * @param main_valve_state 1 If the main valve is open + * @param ignition_state 1 If the RIG is in ignition process + * @param tars_state 1 If the TARS algorithm is running + * @param battery_voltage Battery voltage + * @param current_consumption RIG current + * @param main_board_status MAIN board status [0: not present, 1: online, 2: armed] + * @param payload_board_status PAYLOAD board status [0: not present, 1: online, 2: armed] + * @param motor_board_status MOTOR board status [0: not present, 1: online, 2: armed] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_gse_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,float loadcell_rocket,float loadcell_vessel,float filling_pressure,float vessel_pressure,uint8_t arming_state,uint8_t filling_valve_state,uint8_t venting_valve_state,uint8_t release_valve_state,uint8_t main_valve_state,uint8_t ignition_state,uint8_t tars_state,float battery_voltage,float current_consumption,uint8_t main_board_status,uint8_t payload_board_status,uint8_t motor_board_status) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_GSE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, loadcell_rocket); + _mav_put_float(buf, 12, loadcell_vessel); + _mav_put_float(buf, 16, filling_pressure); + _mav_put_float(buf, 20, vessel_pressure); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_float(buf, 28, current_consumption); + _mav_put_uint8_t(buf, 32, arming_state); + _mav_put_uint8_t(buf, 33, filling_valve_state); + _mav_put_uint8_t(buf, 34, venting_valve_state); + _mav_put_uint8_t(buf, 35, release_valve_state); + _mav_put_uint8_t(buf, 36, main_valve_state); + _mav_put_uint8_t(buf, 37, ignition_state); + _mav_put_uint8_t(buf, 38, tars_state); + _mav_put_uint8_t(buf, 39, main_board_status); + _mav_put_uint8_t(buf, 40, payload_board_status); + _mav_put_uint8_t(buf, 41, motor_board_status); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_GSE_TM_LEN); +#else + mavlink_gse_tm_t packet; + packet.timestamp = timestamp; + packet.loadcell_rocket = loadcell_rocket; + packet.loadcell_vessel = loadcell_vessel; + packet.filling_pressure = filling_pressure; + packet.vessel_pressure = vessel_pressure; + packet.battery_voltage = battery_voltage; + packet.current_consumption = current_consumption; + packet.arming_state = arming_state; + packet.filling_valve_state = filling_valve_state; + packet.venting_valve_state = venting_valve_state; + packet.release_valve_state = release_valve_state; + packet.main_valve_state = main_valve_state; + packet.ignition_state = ignition_state; + packet.tars_state = tars_state; + packet.main_board_status = main_board_status; + packet.payload_board_status = payload_board_status; + packet.motor_board_status = motor_board_status; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_GSE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_GSE_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_GSE_TM_MIN_LEN, MAVLINK_MSG_ID_GSE_TM_LEN, MAVLINK_MSG_ID_GSE_TM_CRC); +} + +/** + * @brief Encode a gse_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param gse_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_gse_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_gse_tm_t* gse_tm) +{ + return mavlink_msg_gse_tm_pack(system_id, component_id, msg, gse_tm->timestamp, gse_tm->loadcell_rocket, gse_tm->loadcell_vessel, gse_tm->filling_pressure, gse_tm->vessel_pressure, gse_tm->arming_state, gse_tm->filling_valve_state, gse_tm->venting_valve_state, gse_tm->release_valve_state, gse_tm->main_valve_state, gse_tm->ignition_state, gse_tm->tars_state, gse_tm->battery_voltage, gse_tm->current_consumption, gse_tm->main_board_status, gse_tm->payload_board_status, gse_tm->motor_board_status); +} + +/** + * @brief Encode a gse_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param gse_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_gse_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_gse_tm_t* gse_tm) +{ + return mavlink_msg_gse_tm_pack_chan(system_id, component_id, chan, msg, gse_tm->timestamp, gse_tm->loadcell_rocket, gse_tm->loadcell_vessel, gse_tm->filling_pressure, gse_tm->vessel_pressure, gse_tm->arming_state, gse_tm->filling_valve_state, gse_tm->venting_valve_state, gse_tm->release_valve_state, gse_tm->main_valve_state, gse_tm->ignition_state, gse_tm->tars_state, gse_tm->battery_voltage, gse_tm->current_consumption, gse_tm->main_board_status, gse_tm->payload_board_status, gse_tm->motor_board_status); +} + +/** + * @brief Send a gse_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] Timestamp in microseconds + * @param loadcell_rocket [kg] Rocket weight + * @param loadcell_vessel [kg] External tank weight + * @param filling_pressure [Bar] Refueling line pressure + * @param vessel_pressure [Bar] Vessel tank pressure + * @param arming_state 1 If the rocket is armed + * @param filling_valve_state 1 If the filling valve is open + * @param venting_valve_state 1 If the venting valve is open + * @param release_valve_state 1 If the release valve is open + * @param main_valve_state 1 If the main valve is open + * @param ignition_state 1 If the RIG is in ignition process + * @param tars_state 1 If the TARS algorithm is running + * @param battery_voltage Battery voltage + * @param current_consumption RIG current + * @param main_board_status MAIN board status [0: not present, 1: online, 2: armed] + * @param payload_board_status PAYLOAD board status [0: not present, 1: online, 2: armed] + * @param motor_board_status MOTOR board status [0: not present, 1: online, 2: armed] + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_gse_tm_send(mavlink_channel_t chan, uint64_t timestamp, float loadcell_rocket, float loadcell_vessel, float filling_pressure, float vessel_pressure, uint8_t arming_state, uint8_t filling_valve_state, uint8_t venting_valve_state, uint8_t release_valve_state, uint8_t main_valve_state, uint8_t ignition_state, uint8_t tars_state, float battery_voltage, float current_consumption, uint8_t main_board_status, uint8_t payload_board_status, uint8_t motor_board_status) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_GSE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, loadcell_rocket); + _mav_put_float(buf, 12, loadcell_vessel); + _mav_put_float(buf, 16, filling_pressure); + _mav_put_float(buf, 20, vessel_pressure); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_float(buf, 28, current_consumption); + _mav_put_uint8_t(buf, 32, arming_state); + _mav_put_uint8_t(buf, 33, filling_valve_state); + _mav_put_uint8_t(buf, 34, venting_valve_state); + _mav_put_uint8_t(buf, 35, release_valve_state); + _mav_put_uint8_t(buf, 36, main_valve_state); + _mav_put_uint8_t(buf, 37, ignition_state); + _mav_put_uint8_t(buf, 38, tars_state); + _mav_put_uint8_t(buf, 39, main_board_status); + _mav_put_uint8_t(buf, 40, payload_board_status); + _mav_put_uint8_t(buf, 41, motor_board_status); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GSE_TM, buf, MAVLINK_MSG_ID_GSE_TM_MIN_LEN, MAVLINK_MSG_ID_GSE_TM_LEN, MAVLINK_MSG_ID_GSE_TM_CRC); +#else + mavlink_gse_tm_t packet; + packet.timestamp = timestamp; + packet.loadcell_rocket = loadcell_rocket; + packet.loadcell_vessel = loadcell_vessel; + packet.filling_pressure = filling_pressure; + packet.vessel_pressure = vessel_pressure; + packet.battery_voltage = battery_voltage; + packet.current_consumption = current_consumption; + packet.arming_state = arming_state; + packet.filling_valve_state = filling_valve_state; + packet.venting_valve_state = venting_valve_state; + packet.release_valve_state = release_valve_state; + packet.main_valve_state = main_valve_state; + packet.ignition_state = ignition_state; + packet.tars_state = tars_state; + packet.main_board_status = main_board_status; + packet.payload_board_status = payload_board_status; + packet.motor_board_status = motor_board_status; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GSE_TM, (const char *)&packet, MAVLINK_MSG_ID_GSE_TM_MIN_LEN, MAVLINK_MSG_ID_GSE_TM_LEN, MAVLINK_MSG_ID_GSE_TM_CRC); +#endif +} + +/** + * @brief Send a gse_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_gse_tm_send_struct(mavlink_channel_t chan, const mavlink_gse_tm_t* gse_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_gse_tm_send(chan, gse_tm->timestamp, gse_tm->loadcell_rocket, gse_tm->loadcell_vessel, gse_tm->filling_pressure, gse_tm->vessel_pressure, gse_tm->arming_state, gse_tm->filling_valve_state, gse_tm->venting_valve_state, gse_tm->release_valve_state, gse_tm->main_valve_state, gse_tm->ignition_state, gse_tm->tars_state, gse_tm->battery_voltage, gse_tm->current_consumption, gse_tm->main_board_status, gse_tm->payload_board_status, gse_tm->motor_board_status); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GSE_TM, (const char *)gse_tm, MAVLINK_MSG_ID_GSE_TM_MIN_LEN, MAVLINK_MSG_ID_GSE_TM_LEN, MAVLINK_MSG_ID_GSE_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_GSE_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_gse_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, float loadcell_rocket, float loadcell_vessel, float filling_pressure, float vessel_pressure, uint8_t arming_state, uint8_t filling_valve_state, uint8_t venting_valve_state, uint8_t release_valve_state, uint8_t main_valve_state, uint8_t ignition_state, uint8_t tars_state, float battery_voltage, float current_consumption, uint8_t main_board_status, uint8_t payload_board_status, uint8_t motor_board_status) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, loadcell_rocket); + _mav_put_float(buf, 12, loadcell_vessel); + _mav_put_float(buf, 16, filling_pressure); + _mav_put_float(buf, 20, vessel_pressure); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_float(buf, 28, current_consumption); + _mav_put_uint8_t(buf, 32, arming_state); + _mav_put_uint8_t(buf, 33, filling_valve_state); + _mav_put_uint8_t(buf, 34, venting_valve_state); + _mav_put_uint8_t(buf, 35, release_valve_state); + _mav_put_uint8_t(buf, 36, main_valve_state); + _mav_put_uint8_t(buf, 37, ignition_state); + _mav_put_uint8_t(buf, 38, tars_state); + _mav_put_uint8_t(buf, 39, main_board_status); + _mav_put_uint8_t(buf, 40, payload_board_status); + _mav_put_uint8_t(buf, 41, motor_board_status); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GSE_TM, buf, MAVLINK_MSG_ID_GSE_TM_MIN_LEN, MAVLINK_MSG_ID_GSE_TM_LEN, MAVLINK_MSG_ID_GSE_TM_CRC); +#else + mavlink_gse_tm_t *packet = (mavlink_gse_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->loadcell_rocket = loadcell_rocket; + packet->loadcell_vessel = loadcell_vessel; + packet->filling_pressure = filling_pressure; + packet->vessel_pressure = vessel_pressure; + packet->battery_voltage = battery_voltage; + packet->current_consumption = current_consumption; + packet->arming_state = arming_state; + packet->filling_valve_state = filling_valve_state; + packet->venting_valve_state = venting_valve_state; + packet->release_valve_state = release_valve_state; + packet->main_valve_state = main_valve_state; + packet->ignition_state = ignition_state; + packet->tars_state = tars_state; + packet->main_board_status = main_board_status; + packet->payload_board_status = payload_board_status; + packet->motor_board_status = motor_board_status; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GSE_TM, (const char *)packet, MAVLINK_MSG_ID_GSE_TM_MIN_LEN, MAVLINK_MSG_ID_GSE_TM_LEN, MAVLINK_MSG_ID_GSE_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE GSE_TM UNPACKING + + +/** + * @brief Get field timestamp from gse_tm message + * + * @return [us] Timestamp in microseconds + */ +static inline uint64_t mavlink_msg_gse_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field loadcell_rocket from gse_tm message + * + * @return [kg] Rocket weight + */ +static inline float mavlink_msg_gse_tm_get_loadcell_rocket(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field loadcell_vessel from gse_tm message + * + * @return [kg] External tank weight + */ +static inline float mavlink_msg_gse_tm_get_loadcell_vessel(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field filling_pressure from gse_tm message + * + * @return [Bar] Refueling line pressure + */ +static inline float mavlink_msg_gse_tm_get_filling_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field vessel_pressure from gse_tm message + * + * @return [Bar] Vessel tank pressure + */ +static inline float mavlink_msg_gse_tm_get_vessel_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field arming_state from gse_tm message + * + * @return 1 If the rocket is armed + */ +static inline uint8_t mavlink_msg_gse_tm_get_arming_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 32); +} + +/** + * @brief Get field filling_valve_state from gse_tm message + * + * @return 1 If the filling valve is open + */ +static inline uint8_t mavlink_msg_gse_tm_get_filling_valve_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 33); +} + +/** + * @brief Get field venting_valve_state from gse_tm message + * + * @return 1 If the venting valve is open + */ +static inline uint8_t mavlink_msg_gse_tm_get_venting_valve_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 34); +} + +/** + * @brief Get field release_valve_state from gse_tm message + * + * @return 1 If the release valve is open + */ +static inline uint8_t mavlink_msg_gse_tm_get_release_valve_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 35); +} + +/** + * @brief Get field main_valve_state from gse_tm message + * + * @return 1 If the main valve is open + */ +static inline uint8_t mavlink_msg_gse_tm_get_main_valve_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 36); +} + +/** + * @brief Get field ignition_state from gse_tm message + * + * @return 1 If the RIG is in ignition process + */ +static inline uint8_t mavlink_msg_gse_tm_get_ignition_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 37); +} + +/** + * @brief Get field tars_state from gse_tm message + * + * @return 1 If the TARS algorithm is running + */ +static inline uint8_t mavlink_msg_gse_tm_get_tars_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 38); +} + +/** + * @brief Get field battery_voltage from gse_tm message + * + * @return Battery voltage + */ +static inline float mavlink_msg_gse_tm_get_battery_voltage(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Get field current_consumption from gse_tm message + * + * @return RIG current + */ +static inline float mavlink_msg_gse_tm_get_current_consumption(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field main_board_status from gse_tm message + * + * @return MAIN board status [0: not present, 1: online, 2: armed] + */ +static inline uint8_t mavlink_msg_gse_tm_get_main_board_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 39); +} + +/** + * @brief Get field payload_board_status from gse_tm message + * + * @return PAYLOAD board status [0: not present, 1: online, 2: armed] + */ +static inline uint8_t mavlink_msg_gse_tm_get_payload_board_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 40); +} + +/** + * @brief Get field motor_board_status from gse_tm message + * + * @return MOTOR board status [0: not present, 1: online, 2: armed] + */ +static inline uint8_t mavlink_msg_gse_tm_get_motor_board_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 41); +} + +/** + * @brief Decode a gse_tm message into a struct + * + * @param msg The message to decode + * @param gse_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_gse_tm_decode(const mavlink_message_t* msg, mavlink_gse_tm_t* gse_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + gse_tm->timestamp = mavlink_msg_gse_tm_get_timestamp(msg); + gse_tm->loadcell_rocket = mavlink_msg_gse_tm_get_loadcell_rocket(msg); + gse_tm->loadcell_vessel = mavlink_msg_gse_tm_get_loadcell_vessel(msg); + gse_tm->filling_pressure = mavlink_msg_gse_tm_get_filling_pressure(msg); + gse_tm->vessel_pressure = mavlink_msg_gse_tm_get_vessel_pressure(msg); + gse_tm->battery_voltage = mavlink_msg_gse_tm_get_battery_voltage(msg); + gse_tm->current_consumption = mavlink_msg_gse_tm_get_current_consumption(msg); + gse_tm->arming_state = mavlink_msg_gse_tm_get_arming_state(msg); + gse_tm->filling_valve_state = mavlink_msg_gse_tm_get_filling_valve_state(msg); + gse_tm->venting_valve_state = mavlink_msg_gse_tm_get_venting_valve_state(msg); + gse_tm->release_valve_state = mavlink_msg_gse_tm_get_release_valve_state(msg); + gse_tm->main_valve_state = mavlink_msg_gse_tm_get_main_valve_state(msg); + gse_tm->ignition_state = mavlink_msg_gse_tm_get_ignition_state(msg); + gse_tm->tars_state = mavlink_msg_gse_tm_get_tars_state(msg); + gse_tm->main_board_status = mavlink_msg_gse_tm_get_main_board_status(msg); + gse_tm->payload_board_status = mavlink_msg_gse_tm_get_payload_board_status(msg); + gse_tm->motor_board_status = mavlink_msg_gse_tm_get_motor_board_status(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_GSE_TM_LEN? msg->len : MAVLINK_MSG_ID_GSE_TM_LEN; + memset(gse_tm, 0, MAVLINK_MSG_ID_GSE_TM_LEN); + memcpy(gse_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_imu_tm.h b/mavlink_lib/lyra/mavlink_msg_imu_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..23c4739ce795a498ca8a3df799443719c003547b --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_imu_tm.h @@ -0,0 +1,455 @@ +#pragma once +// MESSAGE IMU_TM PACKING + +#define MAVLINK_MSG_ID_IMU_TM 103 + + +typedef struct __mavlink_imu_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float acc_x; /*< [m/s2] X axis acceleration*/ + float acc_y; /*< [m/s2] Y axis acceleration*/ + float acc_z; /*< [m/s2] Z axis acceleration*/ + float gyro_x; /*< [rad/s] X axis gyro*/ + float gyro_y; /*< [rad/s] Y axis gyro*/ + float gyro_z; /*< [rad/s] Z axis gyro*/ + float mag_x; /*< [uT] X axis compass*/ + float mag_y; /*< [uT] Y axis compass*/ + float mag_z; /*< [uT] Z axis compass*/ + char sensor_name[20]; /*< Sensor name*/ +} mavlink_imu_tm_t; + +#define MAVLINK_MSG_ID_IMU_TM_LEN 64 +#define MAVLINK_MSG_ID_IMU_TM_MIN_LEN 64 +#define MAVLINK_MSG_ID_103_LEN 64 +#define MAVLINK_MSG_ID_103_MIN_LEN 64 + +#define MAVLINK_MSG_ID_IMU_TM_CRC 72 +#define MAVLINK_MSG_ID_103_CRC 72 + +#define MAVLINK_MSG_IMU_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_IMU_TM { \ + 103, \ + "IMU_TM", \ + 11, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_imu_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 44, offsetof(mavlink_imu_tm_t, sensor_name) }, \ + { "acc_x", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_imu_tm_t, acc_x) }, \ + { "acc_y", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_imu_tm_t, acc_y) }, \ + { "acc_z", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_imu_tm_t, acc_z) }, \ + { "gyro_x", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_imu_tm_t, gyro_x) }, \ + { "gyro_y", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_imu_tm_t, gyro_y) }, \ + { "gyro_z", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_imu_tm_t, gyro_z) }, \ + { "mag_x", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_imu_tm_t, mag_x) }, \ + { "mag_y", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_imu_tm_t, mag_y) }, \ + { "mag_z", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_imu_tm_t, mag_z) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_IMU_TM { \ + "IMU_TM", \ + 11, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_imu_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 44, offsetof(mavlink_imu_tm_t, sensor_name) }, \ + { "acc_x", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_imu_tm_t, acc_x) }, \ + { "acc_y", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_imu_tm_t, acc_y) }, \ + { "acc_z", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_imu_tm_t, acc_z) }, \ + { "gyro_x", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_imu_tm_t, gyro_x) }, \ + { "gyro_y", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_imu_tm_t, gyro_y) }, \ + { "gyro_z", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_imu_tm_t, gyro_z) }, \ + { "mag_x", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_imu_tm_t, mag_x) }, \ + { "mag_y", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_imu_tm_t, mag_y) }, \ + { "mag_z", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_imu_tm_t, mag_z) }, \ + } \ +} +#endif + +/** + * @brief Pack a imu_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param acc_x [m/s2] X axis acceleration + * @param acc_y [m/s2] Y axis acceleration + * @param acc_z [m/s2] Z axis acceleration + * @param gyro_x [rad/s] X axis gyro + * @param gyro_y [rad/s] Y axis gyro + * @param gyro_z [rad/s] Z axis gyro + * @param mag_x [uT] X axis compass + * @param mag_y [uT] Y axis compass + * @param mag_z [uT] Z axis compass + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_imu_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, const char *sensor_name, float acc_x, float acc_y, float acc_z, float gyro_x, float gyro_y, float gyro_z, float mag_x, float mag_y, float mag_z) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_IMU_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, acc_x); + _mav_put_float(buf, 12, acc_y); + _mav_put_float(buf, 16, acc_z); + _mav_put_float(buf, 20, gyro_x); + _mav_put_float(buf, 24, gyro_y); + _mav_put_float(buf, 28, gyro_z); + _mav_put_float(buf, 32, mag_x); + _mav_put_float(buf, 36, mag_y); + _mav_put_float(buf, 40, mag_z); + _mav_put_char_array(buf, 44, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_IMU_TM_LEN); +#else + mavlink_imu_tm_t packet; + packet.timestamp = timestamp; + packet.acc_x = acc_x; + packet.acc_y = acc_y; + packet.acc_z = acc_z; + packet.gyro_x = gyro_x; + packet.gyro_y = gyro_y; + packet.gyro_z = gyro_z; + packet.mag_x = mag_x; + packet.mag_y = mag_y; + packet.mag_z = mag_z; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_IMU_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_IMU_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_IMU_TM_MIN_LEN, MAVLINK_MSG_ID_IMU_TM_LEN, MAVLINK_MSG_ID_IMU_TM_CRC); +} + +/** + * @brief Pack a imu_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param acc_x [m/s2] X axis acceleration + * @param acc_y [m/s2] Y axis acceleration + * @param acc_z [m/s2] Z axis acceleration + * @param gyro_x [rad/s] X axis gyro + * @param gyro_y [rad/s] Y axis gyro + * @param gyro_z [rad/s] Z axis gyro + * @param mag_x [uT] X axis compass + * @param mag_y [uT] Y axis compass + * @param mag_z [uT] Z axis compass + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_imu_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,const char *sensor_name,float acc_x,float acc_y,float acc_z,float gyro_x,float gyro_y,float gyro_z,float mag_x,float mag_y,float mag_z) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_IMU_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, acc_x); + _mav_put_float(buf, 12, acc_y); + _mav_put_float(buf, 16, acc_z); + _mav_put_float(buf, 20, gyro_x); + _mav_put_float(buf, 24, gyro_y); + _mav_put_float(buf, 28, gyro_z); + _mav_put_float(buf, 32, mag_x); + _mav_put_float(buf, 36, mag_y); + _mav_put_float(buf, 40, mag_z); + _mav_put_char_array(buf, 44, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_IMU_TM_LEN); +#else + mavlink_imu_tm_t packet; + packet.timestamp = timestamp; + packet.acc_x = acc_x; + packet.acc_y = acc_y; + packet.acc_z = acc_z; + packet.gyro_x = gyro_x; + packet.gyro_y = gyro_y; + packet.gyro_z = gyro_z; + packet.mag_x = mag_x; + packet.mag_y = mag_y; + packet.mag_z = mag_z; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_IMU_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_IMU_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_IMU_TM_MIN_LEN, MAVLINK_MSG_ID_IMU_TM_LEN, MAVLINK_MSG_ID_IMU_TM_CRC); +} + +/** + * @brief Encode a imu_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param imu_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_imu_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_imu_tm_t* imu_tm) +{ + return mavlink_msg_imu_tm_pack(system_id, component_id, msg, imu_tm->timestamp, imu_tm->sensor_name, imu_tm->acc_x, imu_tm->acc_y, imu_tm->acc_z, imu_tm->gyro_x, imu_tm->gyro_y, imu_tm->gyro_z, imu_tm->mag_x, imu_tm->mag_y, imu_tm->mag_z); +} + +/** + * @brief Encode a imu_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param imu_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_imu_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_imu_tm_t* imu_tm) +{ + return mavlink_msg_imu_tm_pack_chan(system_id, component_id, chan, msg, imu_tm->timestamp, imu_tm->sensor_name, imu_tm->acc_x, imu_tm->acc_y, imu_tm->acc_z, imu_tm->gyro_x, imu_tm->gyro_y, imu_tm->gyro_z, imu_tm->mag_x, imu_tm->mag_y, imu_tm->mag_z); +} + +/** + * @brief Send a imu_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param acc_x [m/s2] X axis acceleration + * @param acc_y [m/s2] Y axis acceleration + * @param acc_z [m/s2] Z axis acceleration + * @param gyro_x [rad/s] X axis gyro + * @param gyro_y [rad/s] Y axis gyro + * @param gyro_z [rad/s] Z axis gyro + * @param mag_x [uT] X axis compass + * @param mag_y [uT] Y axis compass + * @param mag_z [uT] Z axis compass + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_imu_tm_send(mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float acc_x, float acc_y, float acc_z, float gyro_x, float gyro_y, float gyro_z, float mag_x, float mag_y, float mag_z) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_IMU_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, acc_x); + _mav_put_float(buf, 12, acc_y); + _mav_put_float(buf, 16, acc_z); + _mav_put_float(buf, 20, gyro_x); + _mav_put_float(buf, 24, gyro_y); + _mav_put_float(buf, 28, gyro_z); + _mav_put_float(buf, 32, mag_x); + _mav_put_float(buf, 36, mag_y); + _mav_put_float(buf, 40, mag_z); + _mav_put_char_array(buf, 44, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IMU_TM, buf, MAVLINK_MSG_ID_IMU_TM_MIN_LEN, MAVLINK_MSG_ID_IMU_TM_LEN, MAVLINK_MSG_ID_IMU_TM_CRC); +#else + mavlink_imu_tm_t packet; + packet.timestamp = timestamp; + packet.acc_x = acc_x; + packet.acc_y = acc_y; + packet.acc_z = acc_z; + packet.gyro_x = gyro_x; + packet.gyro_y = gyro_y; + packet.gyro_z = gyro_z; + packet.mag_x = mag_x; + packet.mag_y = mag_y; + packet.mag_z = mag_z; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IMU_TM, (const char *)&packet, MAVLINK_MSG_ID_IMU_TM_MIN_LEN, MAVLINK_MSG_ID_IMU_TM_LEN, MAVLINK_MSG_ID_IMU_TM_CRC); +#endif +} + +/** + * @brief Send a imu_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_imu_tm_send_struct(mavlink_channel_t chan, const mavlink_imu_tm_t* imu_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_imu_tm_send(chan, imu_tm->timestamp, imu_tm->sensor_name, imu_tm->acc_x, imu_tm->acc_y, imu_tm->acc_z, imu_tm->gyro_x, imu_tm->gyro_y, imu_tm->gyro_z, imu_tm->mag_x, imu_tm->mag_y, imu_tm->mag_z); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IMU_TM, (const char *)imu_tm, MAVLINK_MSG_ID_IMU_TM_MIN_LEN, MAVLINK_MSG_ID_IMU_TM_LEN, MAVLINK_MSG_ID_IMU_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_IMU_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_imu_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float acc_x, float acc_y, float acc_z, float gyro_x, float gyro_y, float gyro_z, float mag_x, float mag_y, float mag_z) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, acc_x); + _mav_put_float(buf, 12, acc_y); + _mav_put_float(buf, 16, acc_z); + _mav_put_float(buf, 20, gyro_x); + _mav_put_float(buf, 24, gyro_y); + _mav_put_float(buf, 28, gyro_z); + _mav_put_float(buf, 32, mag_x); + _mav_put_float(buf, 36, mag_y); + _mav_put_float(buf, 40, mag_z); + _mav_put_char_array(buf, 44, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IMU_TM, buf, MAVLINK_MSG_ID_IMU_TM_MIN_LEN, MAVLINK_MSG_ID_IMU_TM_LEN, MAVLINK_MSG_ID_IMU_TM_CRC); +#else + mavlink_imu_tm_t *packet = (mavlink_imu_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->acc_x = acc_x; + packet->acc_y = acc_y; + packet->acc_z = acc_z; + packet->gyro_x = gyro_x; + packet->gyro_y = gyro_y; + packet->gyro_z = gyro_z; + packet->mag_x = mag_x; + packet->mag_y = mag_y; + packet->mag_z = mag_z; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IMU_TM, (const char *)packet, MAVLINK_MSG_ID_IMU_TM_MIN_LEN, MAVLINK_MSG_ID_IMU_TM_LEN, MAVLINK_MSG_ID_IMU_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE IMU_TM UNPACKING + + +/** + * @brief Get field timestamp from imu_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_imu_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field sensor_name from imu_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_imu_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 44); +} + +/** + * @brief Get field acc_x from imu_tm message + * + * @return [m/s2] X axis acceleration + */ +static inline float mavlink_msg_imu_tm_get_acc_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field acc_y from imu_tm message + * + * @return [m/s2] Y axis acceleration + */ +static inline float mavlink_msg_imu_tm_get_acc_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field acc_z from imu_tm message + * + * @return [m/s2] Z axis acceleration + */ +static inline float mavlink_msg_imu_tm_get_acc_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field gyro_x from imu_tm message + * + * @return [rad/s] X axis gyro + */ +static inline float mavlink_msg_imu_tm_get_gyro_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field gyro_y from imu_tm message + * + * @return [rad/s] Y axis gyro + */ +static inline float mavlink_msg_imu_tm_get_gyro_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Get field gyro_z from imu_tm message + * + * @return [rad/s] Z axis gyro + */ +static inline float mavlink_msg_imu_tm_get_gyro_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field mag_x from imu_tm message + * + * @return [uT] X axis compass + */ +static inline float mavlink_msg_imu_tm_get_mag_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field mag_y from imu_tm message + * + * @return [uT] Y axis compass + */ +static inline float mavlink_msg_imu_tm_get_mag_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Get field mag_z from imu_tm message + * + * @return [uT] Z axis compass + */ +static inline float mavlink_msg_imu_tm_get_mag_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Decode a imu_tm message into a struct + * + * @param msg The message to decode + * @param imu_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_imu_tm_decode(const mavlink_message_t* msg, mavlink_imu_tm_t* imu_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + imu_tm->timestamp = mavlink_msg_imu_tm_get_timestamp(msg); + imu_tm->acc_x = mavlink_msg_imu_tm_get_acc_x(msg); + imu_tm->acc_y = mavlink_msg_imu_tm_get_acc_y(msg); + imu_tm->acc_z = mavlink_msg_imu_tm_get_acc_z(msg); + imu_tm->gyro_x = mavlink_msg_imu_tm_get_gyro_x(msg); + imu_tm->gyro_y = mavlink_msg_imu_tm_get_gyro_y(msg); + imu_tm->gyro_z = mavlink_msg_imu_tm_get_gyro_z(msg); + imu_tm->mag_x = mavlink_msg_imu_tm_get_mag_x(msg); + imu_tm->mag_y = mavlink_msg_imu_tm_get_mag_y(msg); + imu_tm->mag_z = mavlink_msg_imu_tm_get_mag_z(msg); + mavlink_msg_imu_tm_get_sensor_name(msg, imu_tm->sensor_name); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_IMU_TM_LEN? msg->len : MAVLINK_MSG_ID_IMU_TM_LEN; + memset(imu_tm, 0, MAVLINK_MSG_ID_IMU_TM_LEN); + memcpy(imu_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_load_tm.h b/mavlink_lib/lyra/mavlink_msg_load_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..27c578f3b208b1174ea5499a1e31a0497c925d07 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_load_tm.h @@ -0,0 +1,255 @@ +#pragma once +// MESSAGE LOAD_TM PACKING + +#define MAVLINK_MSG_ID_LOAD_TM 109 + + +typedef struct __mavlink_load_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float load; /*< [kg] Load force*/ + char sensor_name[20]; /*< Sensor name*/ +} mavlink_load_tm_t; + +#define MAVLINK_MSG_ID_LOAD_TM_LEN 32 +#define MAVLINK_MSG_ID_LOAD_TM_MIN_LEN 32 +#define MAVLINK_MSG_ID_109_LEN 32 +#define MAVLINK_MSG_ID_109_MIN_LEN 32 + +#define MAVLINK_MSG_ID_LOAD_TM_CRC 148 +#define MAVLINK_MSG_ID_109_CRC 148 + +#define MAVLINK_MSG_LOAD_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_LOAD_TM { \ + 109, \ + "LOAD_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_load_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_load_tm_t, sensor_name) }, \ + { "load", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_load_tm_t, load) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_LOAD_TM { \ + "LOAD_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_load_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_load_tm_t, sensor_name) }, \ + { "load", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_load_tm_t, load) }, \ + } \ +} +#endif + +/** + * @brief Pack a load_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param load [kg] Load force + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_load_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, const char *sensor_name, float load) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_LOAD_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, load); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_LOAD_TM_LEN); +#else + mavlink_load_tm_t packet; + packet.timestamp = timestamp; + packet.load = load; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_LOAD_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_LOAD_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_LOAD_TM_MIN_LEN, MAVLINK_MSG_ID_LOAD_TM_LEN, MAVLINK_MSG_ID_LOAD_TM_CRC); +} + +/** + * @brief Pack a load_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param load [kg] Load force + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_load_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,const char *sensor_name,float load) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_LOAD_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, load); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_LOAD_TM_LEN); +#else + mavlink_load_tm_t packet; + packet.timestamp = timestamp; + packet.load = load; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_LOAD_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_LOAD_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_LOAD_TM_MIN_LEN, MAVLINK_MSG_ID_LOAD_TM_LEN, MAVLINK_MSG_ID_LOAD_TM_CRC); +} + +/** + * @brief Encode a load_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param load_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_load_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_load_tm_t* load_tm) +{ + return mavlink_msg_load_tm_pack(system_id, component_id, msg, load_tm->timestamp, load_tm->sensor_name, load_tm->load); +} + +/** + * @brief Encode a load_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param load_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_load_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_load_tm_t* load_tm) +{ + return mavlink_msg_load_tm_pack_chan(system_id, component_id, chan, msg, load_tm->timestamp, load_tm->sensor_name, load_tm->load); +} + +/** + * @brief Send a load_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param load [kg] Load force + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_load_tm_send(mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float load) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_LOAD_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, load); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOAD_TM, buf, MAVLINK_MSG_ID_LOAD_TM_MIN_LEN, MAVLINK_MSG_ID_LOAD_TM_LEN, MAVLINK_MSG_ID_LOAD_TM_CRC); +#else + mavlink_load_tm_t packet; + packet.timestamp = timestamp; + packet.load = load; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOAD_TM, (const char *)&packet, MAVLINK_MSG_ID_LOAD_TM_MIN_LEN, MAVLINK_MSG_ID_LOAD_TM_LEN, MAVLINK_MSG_ID_LOAD_TM_CRC); +#endif +} + +/** + * @brief Send a load_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_load_tm_send_struct(mavlink_channel_t chan, const mavlink_load_tm_t* load_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_load_tm_send(chan, load_tm->timestamp, load_tm->sensor_name, load_tm->load); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOAD_TM, (const char *)load_tm, MAVLINK_MSG_ID_LOAD_TM_MIN_LEN, MAVLINK_MSG_ID_LOAD_TM_LEN, MAVLINK_MSG_ID_LOAD_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_LOAD_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_load_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float load) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, load); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOAD_TM, buf, MAVLINK_MSG_ID_LOAD_TM_MIN_LEN, MAVLINK_MSG_ID_LOAD_TM_LEN, MAVLINK_MSG_ID_LOAD_TM_CRC); +#else + mavlink_load_tm_t *packet = (mavlink_load_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->load = load; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOAD_TM, (const char *)packet, MAVLINK_MSG_ID_LOAD_TM_MIN_LEN, MAVLINK_MSG_ID_LOAD_TM_LEN, MAVLINK_MSG_ID_LOAD_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE LOAD_TM UNPACKING + + +/** + * @brief Get field timestamp from load_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_load_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field sensor_name from load_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_load_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 12); +} + +/** + * @brief Get field load from load_tm message + * + * @return [kg] Load force + */ +static inline float mavlink_msg_load_tm_get_load(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Decode a load_tm message into a struct + * + * @param msg The message to decode + * @param load_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_load_tm_decode(const mavlink_message_t* msg, mavlink_load_tm_t* load_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + load_tm->timestamp = mavlink_msg_load_tm_get_timestamp(msg); + load_tm->load = mavlink_msg_load_tm_get_load(msg); + mavlink_msg_load_tm_get_sensor_name(msg, load_tm->sensor_name); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_LOAD_TM_LEN? msg->len : MAVLINK_MSG_ID_LOAD_TM_LEN; + memset(load_tm, 0, MAVLINK_MSG_ID_LOAD_TM_LEN); + memcpy(load_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_logger_tm.h b/mavlink_lib/lyra/mavlink_msg_logger_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..ac52b5a9d5faa26bb0047de6f0c67293ff6fe4f5 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_logger_tm.h @@ -0,0 +1,463 @@ +#pragma once +// MESSAGE LOGGER_TM PACKING + +#define MAVLINK_MSG_ID_LOGGER_TM 202 + + +typedef struct __mavlink_logger_tm_t { + uint64_t timestamp; /*< [us] Timestamp*/ + int32_t too_large_samples; /*< Number of dropped samples because too large*/ + int32_t dropped_samples; /*< Number of dropped samples due to fifo full*/ + int32_t queued_samples; /*< Number of samples written to buffer*/ + int32_t buffers_filled; /*< Number of buffers filled*/ + int32_t buffers_written; /*< Number of buffers written to disk*/ + int32_t writes_failed; /*< Number of fwrite() that failed*/ + int32_t last_write_error; /*< Error of the last fwrite() that failed*/ + int32_t average_write_time; /*< Average time to perform an fwrite() of a buffer*/ + int32_t max_write_time; /*< Max time to perform an fwrite() of a buffer*/ + int16_t log_number; /*< Currently active log file, -1 if the logger is inactive*/ +} mavlink_logger_tm_t; + +#define MAVLINK_MSG_ID_LOGGER_TM_LEN 46 +#define MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN 46 +#define MAVLINK_MSG_ID_202_LEN 46 +#define MAVLINK_MSG_ID_202_MIN_LEN 46 + +#define MAVLINK_MSG_ID_LOGGER_TM_CRC 142 +#define MAVLINK_MSG_ID_202_CRC 142 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_LOGGER_TM { \ + 202, \ + "LOGGER_TM", \ + 11, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_logger_tm_t, timestamp) }, \ + { "log_number", NULL, MAVLINK_TYPE_INT16_T, 0, 44, offsetof(mavlink_logger_tm_t, log_number) }, \ + { "too_large_samples", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_logger_tm_t, too_large_samples) }, \ + { "dropped_samples", NULL, MAVLINK_TYPE_INT32_T, 0, 12, offsetof(mavlink_logger_tm_t, dropped_samples) }, \ + { "queued_samples", NULL, MAVLINK_TYPE_INT32_T, 0, 16, offsetof(mavlink_logger_tm_t, queued_samples) }, \ + { "buffers_filled", NULL, MAVLINK_TYPE_INT32_T, 0, 20, offsetof(mavlink_logger_tm_t, buffers_filled) }, \ + { "buffers_written", NULL, MAVLINK_TYPE_INT32_T, 0, 24, offsetof(mavlink_logger_tm_t, buffers_written) }, \ + { "writes_failed", NULL, MAVLINK_TYPE_INT32_T, 0, 28, offsetof(mavlink_logger_tm_t, writes_failed) }, \ + { "last_write_error", NULL, MAVLINK_TYPE_INT32_T, 0, 32, offsetof(mavlink_logger_tm_t, last_write_error) }, \ + { "average_write_time", NULL, MAVLINK_TYPE_INT32_T, 0, 36, offsetof(mavlink_logger_tm_t, average_write_time) }, \ + { "max_write_time", NULL, MAVLINK_TYPE_INT32_T, 0, 40, offsetof(mavlink_logger_tm_t, max_write_time) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_LOGGER_TM { \ + "LOGGER_TM", \ + 11, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_logger_tm_t, timestamp) }, \ + { "log_number", NULL, MAVLINK_TYPE_INT16_T, 0, 44, offsetof(mavlink_logger_tm_t, log_number) }, \ + { "too_large_samples", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_logger_tm_t, too_large_samples) }, \ + { "dropped_samples", NULL, MAVLINK_TYPE_INT32_T, 0, 12, offsetof(mavlink_logger_tm_t, dropped_samples) }, \ + { "queued_samples", NULL, MAVLINK_TYPE_INT32_T, 0, 16, offsetof(mavlink_logger_tm_t, queued_samples) }, \ + { "buffers_filled", NULL, MAVLINK_TYPE_INT32_T, 0, 20, offsetof(mavlink_logger_tm_t, buffers_filled) }, \ + { "buffers_written", NULL, MAVLINK_TYPE_INT32_T, 0, 24, offsetof(mavlink_logger_tm_t, buffers_written) }, \ + { "writes_failed", NULL, MAVLINK_TYPE_INT32_T, 0, 28, offsetof(mavlink_logger_tm_t, writes_failed) }, \ + { "last_write_error", NULL, MAVLINK_TYPE_INT32_T, 0, 32, offsetof(mavlink_logger_tm_t, last_write_error) }, \ + { "average_write_time", NULL, MAVLINK_TYPE_INT32_T, 0, 36, offsetof(mavlink_logger_tm_t, average_write_time) }, \ + { "max_write_time", NULL, MAVLINK_TYPE_INT32_T, 0, 40, offsetof(mavlink_logger_tm_t, max_write_time) }, \ + } \ +} +#endif + +/** + * @brief Pack a logger_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] Timestamp + * @param log_number Currently active log file, -1 if the logger is inactive + * @param too_large_samples Number of dropped samples because too large + * @param dropped_samples Number of dropped samples due to fifo full + * @param queued_samples Number of samples written to buffer + * @param buffers_filled Number of buffers filled + * @param buffers_written Number of buffers written to disk + * @param writes_failed Number of fwrite() that failed + * @param last_write_error Error of the last fwrite() that failed + * @param average_write_time Average time to perform an fwrite() of a buffer + * @param max_write_time Max time to perform an fwrite() of a buffer + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_logger_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, int16_t log_number, int32_t too_large_samples, int32_t dropped_samples, int32_t queued_samples, int32_t buffers_filled, int32_t buffers_written, int32_t writes_failed, int32_t last_write_error, int32_t average_write_time, int32_t max_write_time) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_LOGGER_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_int32_t(buf, 8, too_large_samples); + _mav_put_int32_t(buf, 12, dropped_samples); + _mav_put_int32_t(buf, 16, queued_samples); + _mav_put_int32_t(buf, 20, buffers_filled); + _mav_put_int32_t(buf, 24, buffers_written); + _mav_put_int32_t(buf, 28, writes_failed); + _mav_put_int32_t(buf, 32, last_write_error); + _mav_put_int32_t(buf, 36, average_write_time); + _mav_put_int32_t(buf, 40, max_write_time); + _mav_put_int16_t(buf, 44, log_number); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_LOGGER_TM_LEN); +#else + mavlink_logger_tm_t packet; + packet.timestamp = timestamp; + packet.too_large_samples = too_large_samples; + packet.dropped_samples = dropped_samples; + packet.queued_samples = queued_samples; + packet.buffers_filled = buffers_filled; + packet.buffers_written = buffers_written; + packet.writes_failed = writes_failed; + packet.last_write_error = last_write_error; + packet.average_write_time = average_write_time; + packet.max_write_time = max_write_time; + packet.log_number = log_number; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_LOGGER_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_LOGGER_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN, MAVLINK_MSG_ID_LOGGER_TM_LEN, MAVLINK_MSG_ID_LOGGER_TM_CRC); +} + +/** + * @brief Pack a logger_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] Timestamp + * @param log_number Currently active log file, -1 if the logger is inactive + * @param too_large_samples Number of dropped samples because too large + * @param dropped_samples Number of dropped samples due to fifo full + * @param queued_samples Number of samples written to buffer + * @param buffers_filled Number of buffers filled + * @param buffers_written Number of buffers written to disk + * @param writes_failed Number of fwrite() that failed + * @param last_write_error Error of the last fwrite() that failed + * @param average_write_time Average time to perform an fwrite() of a buffer + * @param max_write_time Max time to perform an fwrite() of a buffer + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_logger_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,int16_t log_number,int32_t too_large_samples,int32_t dropped_samples,int32_t queued_samples,int32_t buffers_filled,int32_t buffers_written,int32_t writes_failed,int32_t last_write_error,int32_t average_write_time,int32_t max_write_time) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_LOGGER_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_int32_t(buf, 8, too_large_samples); + _mav_put_int32_t(buf, 12, dropped_samples); + _mav_put_int32_t(buf, 16, queued_samples); + _mav_put_int32_t(buf, 20, buffers_filled); + _mav_put_int32_t(buf, 24, buffers_written); + _mav_put_int32_t(buf, 28, writes_failed); + _mav_put_int32_t(buf, 32, last_write_error); + _mav_put_int32_t(buf, 36, average_write_time); + _mav_put_int32_t(buf, 40, max_write_time); + _mav_put_int16_t(buf, 44, log_number); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_LOGGER_TM_LEN); +#else + mavlink_logger_tm_t packet; + packet.timestamp = timestamp; + packet.too_large_samples = too_large_samples; + packet.dropped_samples = dropped_samples; + packet.queued_samples = queued_samples; + packet.buffers_filled = buffers_filled; + packet.buffers_written = buffers_written; + packet.writes_failed = writes_failed; + packet.last_write_error = last_write_error; + packet.average_write_time = average_write_time; + packet.max_write_time = max_write_time; + packet.log_number = log_number; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_LOGGER_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_LOGGER_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN, MAVLINK_MSG_ID_LOGGER_TM_LEN, MAVLINK_MSG_ID_LOGGER_TM_CRC); +} + +/** + * @brief Encode a logger_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param logger_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_logger_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_logger_tm_t* logger_tm) +{ + return mavlink_msg_logger_tm_pack(system_id, component_id, msg, logger_tm->timestamp, logger_tm->log_number, logger_tm->too_large_samples, logger_tm->dropped_samples, logger_tm->queued_samples, logger_tm->buffers_filled, logger_tm->buffers_written, logger_tm->writes_failed, logger_tm->last_write_error, logger_tm->average_write_time, logger_tm->max_write_time); +} + +/** + * @brief Encode a logger_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param logger_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_logger_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_logger_tm_t* logger_tm) +{ + return mavlink_msg_logger_tm_pack_chan(system_id, component_id, chan, msg, logger_tm->timestamp, logger_tm->log_number, logger_tm->too_large_samples, logger_tm->dropped_samples, logger_tm->queued_samples, logger_tm->buffers_filled, logger_tm->buffers_written, logger_tm->writes_failed, logger_tm->last_write_error, logger_tm->average_write_time, logger_tm->max_write_time); +} + +/** + * @brief Send a logger_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] Timestamp + * @param log_number Currently active log file, -1 if the logger is inactive + * @param too_large_samples Number of dropped samples because too large + * @param dropped_samples Number of dropped samples due to fifo full + * @param queued_samples Number of samples written to buffer + * @param buffers_filled Number of buffers filled + * @param buffers_written Number of buffers written to disk + * @param writes_failed Number of fwrite() that failed + * @param last_write_error Error of the last fwrite() that failed + * @param average_write_time Average time to perform an fwrite() of a buffer + * @param max_write_time Max time to perform an fwrite() of a buffer + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_logger_tm_send(mavlink_channel_t chan, uint64_t timestamp, int16_t log_number, int32_t too_large_samples, int32_t dropped_samples, int32_t queued_samples, int32_t buffers_filled, int32_t buffers_written, int32_t writes_failed, int32_t last_write_error, int32_t average_write_time, int32_t max_write_time) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_LOGGER_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_int32_t(buf, 8, too_large_samples); + _mav_put_int32_t(buf, 12, dropped_samples); + _mav_put_int32_t(buf, 16, queued_samples); + _mav_put_int32_t(buf, 20, buffers_filled); + _mav_put_int32_t(buf, 24, buffers_written); + _mav_put_int32_t(buf, 28, writes_failed); + _mav_put_int32_t(buf, 32, last_write_error); + _mav_put_int32_t(buf, 36, average_write_time); + _mav_put_int32_t(buf, 40, max_write_time); + _mav_put_int16_t(buf, 44, log_number); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOGGER_TM, buf, MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN, MAVLINK_MSG_ID_LOGGER_TM_LEN, MAVLINK_MSG_ID_LOGGER_TM_CRC); +#else + mavlink_logger_tm_t packet; + packet.timestamp = timestamp; + packet.too_large_samples = too_large_samples; + packet.dropped_samples = dropped_samples; + packet.queued_samples = queued_samples; + packet.buffers_filled = buffers_filled; + packet.buffers_written = buffers_written; + packet.writes_failed = writes_failed; + packet.last_write_error = last_write_error; + packet.average_write_time = average_write_time; + packet.max_write_time = max_write_time; + packet.log_number = log_number; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOGGER_TM, (const char *)&packet, MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN, MAVLINK_MSG_ID_LOGGER_TM_LEN, MAVLINK_MSG_ID_LOGGER_TM_CRC); +#endif +} + +/** + * @brief Send a logger_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_logger_tm_send_struct(mavlink_channel_t chan, const mavlink_logger_tm_t* logger_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_logger_tm_send(chan, logger_tm->timestamp, logger_tm->log_number, logger_tm->too_large_samples, logger_tm->dropped_samples, logger_tm->queued_samples, logger_tm->buffers_filled, logger_tm->buffers_written, logger_tm->writes_failed, logger_tm->last_write_error, logger_tm->average_write_time, logger_tm->max_write_time); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOGGER_TM, (const char *)logger_tm, MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN, MAVLINK_MSG_ID_LOGGER_TM_LEN, MAVLINK_MSG_ID_LOGGER_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_LOGGER_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_logger_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, int16_t log_number, int32_t too_large_samples, int32_t dropped_samples, int32_t queued_samples, int32_t buffers_filled, int32_t buffers_written, int32_t writes_failed, int32_t last_write_error, int32_t average_write_time, int32_t max_write_time) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_int32_t(buf, 8, too_large_samples); + _mav_put_int32_t(buf, 12, dropped_samples); + _mav_put_int32_t(buf, 16, queued_samples); + _mav_put_int32_t(buf, 20, buffers_filled); + _mav_put_int32_t(buf, 24, buffers_written); + _mav_put_int32_t(buf, 28, writes_failed); + _mav_put_int32_t(buf, 32, last_write_error); + _mav_put_int32_t(buf, 36, average_write_time); + _mav_put_int32_t(buf, 40, max_write_time); + _mav_put_int16_t(buf, 44, log_number); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOGGER_TM, buf, MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN, MAVLINK_MSG_ID_LOGGER_TM_LEN, MAVLINK_MSG_ID_LOGGER_TM_CRC); +#else + mavlink_logger_tm_t *packet = (mavlink_logger_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->too_large_samples = too_large_samples; + packet->dropped_samples = dropped_samples; + packet->queued_samples = queued_samples; + packet->buffers_filled = buffers_filled; + packet->buffers_written = buffers_written; + packet->writes_failed = writes_failed; + packet->last_write_error = last_write_error; + packet->average_write_time = average_write_time; + packet->max_write_time = max_write_time; + packet->log_number = log_number; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOGGER_TM, (const char *)packet, MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN, MAVLINK_MSG_ID_LOGGER_TM_LEN, MAVLINK_MSG_ID_LOGGER_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE LOGGER_TM UNPACKING + + +/** + * @brief Get field timestamp from logger_tm message + * + * @return [us] Timestamp + */ +static inline uint64_t mavlink_msg_logger_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field log_number from logger_tm message + * + * @return Currently active log file, -1 if the logger is inactive + */ +static inline int16_t mavlink_msg_logger_tm_get_log_number(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int16_t(msg, 44); +} + +/** + * @brief Get field too_large_samples from logger_tm message + * + * @return Number of dropped samples because too large + */ +static inline int32_t mavlink_msg_logger_tm_get_too_large_samples(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int32_t(msg, 8); +} + +/** + * @brief Get field dropped_samples from logger_tm message + * + * @return Number of dropped samples due to fifo full + */ +static inline int32_t mavlink_msg_logger_tm_get_dropped_samples(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int32_t(msg, 12); +} + +/** + * @brief Get field queued_samples from logger_tm message + * + * @return Number of samples written to buffer + */ +static inline int32_t mavlink_msg_logger_tm_get_queued_samples(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int32_t(msg, 16); +} + +/** + * @brief Get field buffers_filled from logger_tm message + * + * @return Number of buffers filled + */ +static inline int32_t mavlink_msg_logger_tm_get_buffers_filled(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int32_t(msg, 20); +} + +/** + * @brief Get field buffers_written from logger_tm message + * + * @return Number of buffers written to disk + */ +static inline int32_t mavlink_msg_logger_tm_get_buffers_written(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int32_t(msg, 24); +} + +/** + * @brief Get field writes_failed from logger_tm message + * + * @return Number of fwrite() that failed + */ +static inline int32_t mavlink_msg_logger_tm_get_writes_failed(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int32_t(msg, 28); +} + +/** + * @brief Get field last_write_error from logger_tm message + * + * @return Error of the last fwrite() that failed + */ +static inline int32_t mavlink_msg_logger_tm_get_last_write_error(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int32_t(msg, 32); +} + +/** + * @brief Get field average_write_time from logger_tm message + * + * @return Average time to perform an fwrite() of a buffer + */ +static inline int32_t mavlink_msg_logger_tm_get_average_write_time(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int32_t(msg, 36); +} + +/** + * @brief Get field max_write_time from logger_tm message + * + * @return Max time to perform an fwrite() of a buffer + */ +static inline int32_t mavlink_msg_logger_tm_get_max_write_time(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int32_t(msg, 40); +} + +/** + * @brief Decode a logger_tm message into a struct + * + * @param msg The message to decode + * @param logger_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_logger_tm_decode(const mavlink_message_t* msg, mavlink_logger_tm_t* logger_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + logger_tm->timestamp = mavlink_msg_logger_tm_get_timestamp(msg); + logger_tm->too_large_samples = mavlink_msg_logger_tm_get_too_large_samples(msg); + logger_tm->dropped_samples = mavlink_msg_logger_tm_get_dropped_samples(msg); + logger_tm->queued_samples = mavlink_msg_logger_tm_get_queued_samples(msg); + logger_tm->buffers_filled = mavlink_msg_logger_tm_get_buffers_filled(msg); + logger_tm->buffers_written = mavlink_msg_logger_tm_get_buffers_written(msg); + logger_tm->writes_failed = mavlink_msg_logger_tm_get_writes_failed(msg); + logger_tm->last_write_error = mavlink_msg_logger_tm_get_last_write_error(msg); + logger_tm->average_write_time = mavlink_msg_logger_tm_get_average_write_time(msg); + logger_tm->max_write_time = mavlink_msg_logger_tm_get_max_write_time(msg); + logger_tm->log_number = mavlink_msg_logger_tm_get_log_number(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_LOGGER_TM_LEN? msg->len : MAVLINK_MSG_ID_LOGGER_TM_LEN; + memset(logger_tm, 0, MAVLINK_MSG_ID_LOGGER_TM_LEN); + memcpy(logger_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_mavlink_stats_tm.h b/mavlink_lib/lyra/mavlink_msg_mavlink_stats_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..ba89b5f0761bcadff4201e229880cd30f7b90358 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_mavlink_stats_tm.h @@ -0,0 +1,513 @@ +#pragma once +// MESSAGE MAVLINK_STATS_TM PACKING + +#define MAVLINK_MSG_ID_MAVLINK_STATS_TM 203 + + +typedef struct __mavlink_mavlink_stats_tm_t { + uint64_t timestamp; /*< [us] When was this logged */ + uint32_t parse_state; /*< Parsing state machine*/ + uint16_t n_send_queue; /*< Current len of the occupied portion of the queue*/ + uint16_t max_send_queue; /*< Max occupied len of the queue */ + uint16_t n_send_errors; /*< Number of packet not sent correctly by the TMTC*/ + uint16_t packet_rx_success_count; /*< Received packets*/ + uint16_t packet_rx_drop_count; /*< Number of packet drops */ + uint8_t msg_received; /*< Number of received messages*/ + uint8_t buffer_overrun; /*< Number of buffer overruns*/ + uint8_t parse_error; /*< Number of parse errors*/ + uint8_t packet_idx; /*< Index in current packet*/ + uint8_t current_rx_seq; /*< Sequence number of last packet received*/ + uint8_t current_tx_seq; /*< Sequence number of last packet sent */ +} mavlink_mavlink_stats_tm_t; + +#define MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN 28 +#define MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN 28 +#define MAVLINK_MSG_ID_203_LEN 28 +#define MAVLINK_MSG_ID_203_MIN_LEN 28 + +#define MAVLINK_MSG_ID_MAVLINK_STATS_TM_CRC 108 +#define MAVLINK_MSG_ID_203_CRC 108 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_MAVLINK_STATS_TM { \ + 203, \ + "MAVLINK_STATS_TM", \ + 13, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_mavlink_stats_tm_t, timestamp) }, \ + { "n_send_queue", NULL, MAVLINK_TYPE_UINT16_T, 0, 12, offsetof(mavlink_mavlink_stats_tm_t, n_send_queue) }, \ + { "max_send_queue", NULL, MAVLINK_TYPE_UINT16_T, 0, 14, offsetof(mavlink_mavlink_stats_tm_t, max_send_queue) }, \ + { "n_send_errors", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_mavlink_stats_tm_t, n_send_errors) }, \ + { "msg_received", NULL, MAVLINK_TYPE_UINT8_T, 0, 22, offsetof(mavlink_mavlink_stats_tm_t, msg_received) }, \ + { "buffer_overrun", NULL, MAVLINK_TYPE_UINT8_T, 0, 23, offsetof(mavlink_mavlink_stats_tm_t, buffer_overrun) }, \ + { "parse_error", NULL, MAVLINK_TYPE_UINT8_T, 0, 24, offsetof(mavlink_mavlink_stats_tm_t, parse_error) }, \ + { "parse_state", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_mavlink_stats_tm_t, parse_state) }, \ + { "packet_idx", NULL, MAVLINK_TYPE_UINT8_T, 0, 25, offsetof(mavlink_mavlink_stats_tm_t, packet_idx) }, \ + { "current_rx_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_mavlink_stats_tm_t, current_rx_seq) }, \ + { "current_tx_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 27, offsetof(mavlink_mavlink_stats_tm_t, current_tx_seq) }, \ + { "packet_rx_success_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_mavlink_stats_tm_t, packet_rx_success_count) }, \ + { "packet_rx_drop_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_mavlink_stats_tm_t, packet_rx_drop_count) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_MAVLINK_STATS_TM { \ + "MAVLINK_STATS_TM", \ + 13, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_mavlink_stats_tm_t, timestamp) }, \ + { "n_send_queue", NULL, MAVLINK_TYPE_UINT16_T, 0, 12, offsetof(mavlink_mavlink_stats_tm_t, n_send_queue) }, \ + { "max_send_queue", NULL, MAVLINK_TYPE_UINT16_T, 0, 14, offsetof(mavlink_mavlink_stats_tm_t, max_send_queue) }, \ + { "n_send_errors", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_mavlink_stats_tm_t, n_send_errors) }, \ + { "msg_received", NULL, MAVLINK_TYPE_UINT8_T, 0, 22, offsetof(mavlink_mavlink_stats_tm_t, msg_received) }, \ + { "buffer_overrun", NULL, MAVLINK_TYPE_UINT8_T, 0, 23, offsetof(mavlink_mavlink_stats_tm_t, buffer_overrun) }, \ + { "parse_error", NULL, MAVLINK_TYPE_UINT8_T, 0, 24, offsetof(mavlink_mavlink_stats_tm_t, parse_error) }, \ + { "parse_state", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_mavlink_stats_tm_t, parse_state) }, \ + { "packet_idx", NULL, MAVLINK_TYPE_UINT8_T, 0, 25, offsetof(mavlink_mavlink_stats_tm_t, packet_idx) }, \ + { "current_rx_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_mavlink_stats_tm_t, current_rx_seq) }, \ + { "current_tx_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 27, offsetof(mavlink_mavlink_stats_tm_t, current_tx_seq) }, \ + { "packet_rx_success_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_mavlink_stats_tm_t, packet_rx_success_count) }, \ + { "packet_rx_drop_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_mavlink_stats_tm_t, packet_rx_drop_count) }, \ + } \ +} +#endif + +/** + * @brief Pack a mavlink_stats_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param n_send_queue Current len of the occupied portion of the queue + * @param max_send_queue Max occupied len of the queue + * @param n_send_errors Number of packet not sent correctly by the TMTC + * @param msg_received Number of received messages + * @param buffer_overrun Number of buffer overruns + * @param parse_error Number of parse errors + * @param parse_state Parsing state machine + * @param packet_idx Index in current packet + * @param current_rx_seq Sequence number of last packet received + * @param current_tx_seq Sequence number of last packet sent + * @param packet_rx_success_count Received packets + * @param packet_rx_drop_count Number of packet drops + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_mavlink_stats_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint16_t n_send_queue, uint16_t max_send_queue, uint16_t n_send_errors, uint8_t msg_received, uint8_t buffer_overrun, uint8_t parse_error, uint32_t parse_state, uint8_t packet_idx, uint8_t current_rx_seq, uint8_t current_tx_seq, uint16_t packet_rx_success_count, uint16_t packet_rx_drop_count) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint32_t(buf, 8, parse_state); + _mav_put_uint16_t(buf, 12, n_send_queue); + _mav_put_uint16_t(buf, 14, max_send_queue); + _mav_put_uint16_t(buf, 16, n_send_errors); + _mav_put_uint16_t(buf, 18, packet_rx_success_count); + _mav_put_uint16_t(buf, 20, packet_rx_drop_count); + _mav_put_uint8_t(buf, 22, msg_received); + _mav_put_uint8_t(buf, 23, buffer_overrun); + _mav_put_uint8_t(buf, 24, parse_error); + _mav_put_uint8_t(buf, 25, packet_idx); + _mav_put_uint8_t(buf, 26, current_rx_seq); + _mav_put_uint8_t(buf, 27, current_tx_seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN); +#else + mavlink_mavlink_stats_tm_t packet; + packet.timestamp = timestamp; + packet.parse_state = parse_state; + packet.n_send_queue = n_send_queue; + packet.max_send_queue = max_send_queue; + packet.n_send_errors = n_send_errors; + packet.packet_rx_success_count = packet_rx_success_count; + packet.packet_rx_drop_count = packet_rx_drop_count; + packet.msg_received = msg_received; + packet.buffer_overrun = buffer_overrun; + packet.parse_error = parse_error; + packet.packet_idx = packet_idx; + packet.current_rx_seq = current_rx_seq; + packet.current_tx_seq = current_tx_seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_MAVLINK_STATS_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_CRC); +} + +/** + * @brief Pack a mavlink_stats_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param n_send_queue Current len of the occupied portion of the queue + * @param max_send_queue Max occupied len of the queue + * @param n_send_errors Number of packet not sent correctly by the TMTC + * @param msg_received Number of received messages + * @param buffer_overrun Number of buffer overruns + * @param parse_error Number of parse errors + * @param parse_state Parsing state machine + * @param packet_idx Index in current packet + * @param current_rx_seq Sequence number of last packet received + * @param current_tx_seq Sequence number of last packet sent + * @param packet_rx_success_count Received packets + * @param packet_rx_drop_count Number of packet drops + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_mavlink_stats_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint16_t n_send_queue,uint16_t max_send_queue,uint16_t n_send_errors,uint8_t msg_received,uint8_t buffer_overrun,uint8_t parse_error,uint32_t parse_state,uint8_t packet_idx,uint8_t current_rx_seq,uint8_t current_tx_seq,uint16_t packet_rx_success_count,uint16_t packet_rx_drop_count) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint32_t(buf, 8, parse_state); + _mav_put_uint16_t(buf, 12, n_send_queue); + _mav_put_uint16_t(buf, 14, max_send_queue); + _mav_put_uint16_t(buf, 16, n_send_errors); + _mav_put_uint16_t(buf, 18, packet_rx_success_count); + _mav_put_uint16_t(buf, 20, packet_rx_drop_count); + _mav_put_uint8_t(buf, 22, msg_received); + _mav_put_uint8_t(buf, 23, buffer_overrun); + _mav_put_uint8_t(buf, 24, parse_error); + _mav_put_uint8_t(buf, 25, packet_idx); + _mav_put_uint8_t(buf, 26, current_rx_seq); + _mav_put_uint8_t(buf, 27, current_tx_seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN); +#else + mavlink_mavlink_stats_tm_t packet; + packet.timestamp = timestamp; + packet.parse_state = parse_state; + packet.n_send_queue = n_send_queue; + packet.max_send_queue = max_send_queue; + packet.n_send_errors = n_send_errors; + packet.packet_rx_success_count = packet_rx_success_count; + packet.packet_rx_drop_count = packet_rx_drop_count; + packet.msg_received = msg_received; + packet.buffer_overrun = buffer_overrun; + packet.parse_error = parse_error; + packet.packet_idx = packet_idx; + packet.current_rx_seq = current_rx_seq; + packet.current_tx_seq = current_tx_seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_MAVLINK_STATS_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_CRC); +} + +/** + * @brief Encode a mavlink_stats_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param mavlink_stats_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_mavlink_stats_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_mavlink_stats_tm_t* mavlink_stats_tm) +{ + return mavlink_msg_mavlink_stats_tm_pack(system_id, component_id, msg, mavlink_stats_tm->timestamp, mavlink_stats_tm->n_send_queue, mavlink_stats_tm->max_send_queue, mavlink_stats_tm->n_send_errors, mavlink_stats_tm->msg_received, mavlink_stats_tm->buffer_overrun, mavlink_stats_tm->parse_error, mavlink_stats_tm->parse_state, mavlink_stats_tm->packet_idx, mavlink_stats_tm->current_rx_seq, mavlink_stats_tm->current_tx_seq, mavlink_stats_tm->packet_rx_success_count, mavlink_stats_tm->packet_rx_drop_count); +} + +/** + * @brief Encode a mavlink_stats_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param mavlink_stats_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_mavlink_stats_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_mavlink_stats_tm_t* mavlink_stats_tm) +{ + return mavlink_msg_mavlink_stats_tm_pack_chan(system_id, component_id, chan, msg, mavlink_stats_tm->timestamp, mavlink_stats_tm->n_send_queue, mavlink_stats_tm->max_send_queue, mavlink_stats_tm->n_send_errors, mavlink_stats_tm->msg_received, mavlink_stats_tm->buffer_overrun, mavlink_stats_tm->parse_error, mavlink_stats_tm->parse_state, mavlink_stats_tm->packet_idx, mavlink_stats_tm->current_rx_seq, mavlink_stats_tm->current_tx_seq, mavlink_stats_tm->packet_rx_success_count, mavlink_stats_tm->packet_rx_drop_count); +} + +/** + * @brief Send a mavlink_stats_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param n_send_queue Current len of the occupied portion of the queue + * @param max_send_queue Max occupied len of the queue + * @param n_send_errors Number of packet not sent correctly by the TMTC + * @param msg_received Number of received messages + * @param buffer_overrun Number of buffer overruns + * @param parse_error Number of parse errors + * @param parse_state Parsing state machine + * @param packet_idx Index in current packet + * @param current_rx_seq Sequence number of last packet received + * @param current_tx_seq Sequence number of last packet sent + * @param packet_rx_success_count Received packets + * @param packet_rx_drop_count Number of packet drops + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_mavlink_stats_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint16_t n_send_queue, uint16_t max_send_queue, uint16_t n_send_errors, uint8_t msg_received, uint8_t buffer_overrun, uint8_t parse_error, uint32_t parse_state, uint8_t packet_idx, uint8_t current_rx_seq, uint8_t current_tx_seq, uint16_t packet_rx_success_count, uint16_t packet_rx_drop_count) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint32_t(buf, 8, parse_state); + _mav_put_uint16_t(buf, 12, n_send_queue); + _mav_put_uint16_t(buf, 14, max_send_queue); + _mav_put_uint16_t(buf, 16, n_send_errors); + _mav_put_uint16_t(buf, 18, packet_rx_success_count); + _mav_put_uint16_t(buf, 20, packet_rx_drop_count); + _mav_put_uint8_t(buf, 22, msg_received); + _mav_put_uint8_t(buf, 23, buffer_overrun); + _mav_put_uint8_t(buf, 24, parse_error); + _mav_put_uint8_t(buf, 25, packet_idx); + _mav_put_uint8_t(buf, 26, current_rx_seq); + _mav_put_uint8_t(buf, 27, current_tx_seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MAVLINK_STATS_TM, buf, MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_CRC); +#else + mavlink_mavlink_stats_tm_t packet; + packet.timestamp = timestamp; + packet.parse_state = parse_state; + packet.n_send_queue = n_send_queue; + packet.max_send_queue = max_send_queue; + packet.n_send_errors = n_send_errors; + packet.packet_rx_success_count = packet_rx_success_count; + packet.packet_rx_drop_count = packet_rx_drop_count; + packet.msg_received = msg_received; + packet.buffer_overrun = buffer_overrun; + packet.parse_error = parse_error; + packet.packet_idx = packet_idx; + packet.current_rx_seq = current_rx_seq; + packet.current_tx_seq = current_tx_seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MAVLINK_STATS_TM, (const char *)&packet, MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_CRC); +#endif +} + +/** + * @brief Send a mavlink_stats_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_mavlink_stats_tm_send_struct(mavlink_channel_t chan, const mavlink_mavlink_stats_tm_t* mavlink_stats_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_mavlink_stats_tm_send(chan, mavlink_stats_tm->timestamp, mavlink_stats_tm->n_send_queue, mavlink_stats_tm->max_send_queue, mavlink_stats_tm->n_send_errors, mavlink_stats_tm->msg_received, mavlink_stats_tm->buffer_overrun, mavlink_stats_tm->parse_error, mavlink_stats_tm->parse_state, mavlink_stats_tm->packet_idx, mavlink_stats_tm->current_rx_seq, mavlink_stats_tm->current_tx_seq, mavlink_stats_tm->packet_rx_success_count, mavlink_stats_tm->packet_rx_drop_count); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MAVLINK_STATS_TM, (const char *)mavlink_stats_tm, MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_mavlink_stats_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint16_t n_send_queue, uint16_t max_send_queue, uint16_t n_send_errors, uint8_t msg_received, uint8_t buffer_overrun, uint8_t parse_error, uint32_t parse_state, uint8_t packet_idx, uint8_t current_rx_seq, uint8_t current_tx_seq, uint16_t packet_rx_success_count, uint16_t packet_rx_drop_count) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint32_t(buf, 8, parse_state); + _mav_put_uint16_t(buf, 12, n_send_queue); + _mav_put_uint16_t(buf, 14, max_send_queue); + _mav_put_uint16_t(buf, 16, n_send_errors); + _mav_put_uint16_t(buf, 18, packet_rx_success_count); + _mav_put_uint16_t(buf, 20, packet_rx_drop_count); + _mav_put_uint8_t(buf, 22, msg_received); + _mav_put_uint8_t(buf, 23, buffer_overrun); + _mav_put_uint8_t(buf, 24, parse_error); + _mav_put_uint8_t(buf, 25, packet_idx); + _mav_put_uint8_t(buf, 26, current_rx_seq); + _mav_put_uint8_t(buf, 27, current_tx_seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MAVLINK_STATS_TM, buf, MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_CRC); +#else + mavlink_mavlink_stats_tm_t *packet = (mavlink_mavlink_stats_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->parse_state = parse_state; + packet->n_send_queue = n_send_queue; + packet->max_send_queue = max_send_queue; + packet->n_send_errors = n_send_errors; + packet->packet_rx_success_count = packet_rx_success_count; + packet->packet_rx_drop_count = packet_rx_drop_count; + packet->msg_received = msg_received; + packet->buffer_overrun = buffer_overrun; + packet->parse_error = parse_error; + packet->packet_idx = packet_idx; + packet->current_rx_seq = current_rx_seq; + packet->current_tx_seq = current_tx_seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MAVLINK_STATS_TM, (const char *)packet, MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN, MAVLINK_MSG_ID_MAVLINK_STATS_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE MAVLINK_STATS_TM UNPACKING + + +/** + * @brief Get field timestamp from mavlink_stats_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_mavlink_stats_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field n_send_queue from mavlink_stats_tm message + * + * @return Current len of the occupied portion of the queue + */ +static inline uint16_t mavlink_msg_mavlink_stats_tm_get_n_send_queue(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 12); +} + +/** + * @brief Get field max_send_queue from mavlink_stats_tm message + * + * @return Max occupied len of the queue + */ +static inline uint16_t mavlink_msg_mavlink_stats_tm_get_max_send_queue(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 14); +} + +/** + * @brief Get field n_send_errors from mavlink_stats_tm message + * + * @return Number of packet not sent correctly by the TMTC + */ +static inline uint16_t mavlink_msg_mavlink_stats_tm_get_n_send_errors(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 16); +} + +/** + * @brief Get field msg_received from mavlink_stats_tm message + * + * @return Number of received messages + */ +static inline uint8_t mavlink_msg_mavlink_stats_tm_get_msg_received(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 22); +} + +/** + * @brief Get field buffer_overrun from mavlink_stats_tm message + * + * @return Number of buffer overruns + */ +static inline uint8_t mavlink_msg_mavlink_stats_tm_get_buffer_overrun(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 23); +} + +/** + * @brief Get field parse_error from mavlink_stats_tm message + * + * @return Number of parse errors + */ +static inline uint8_t mavlink_msg_mavlink_stats_tm_get_parse_error(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 24); +} + +/** + * @brief Get field parse_state from mavlink_stats_tm message + * + * @return Parsing state machine + */ +static inline uint32_t mavlink_msg_mavlink_stats_tm_get_parse_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 8); +} + +/** + * @brief Get field packet_idx from mavlink_stats_tm message + * + * @return Index in current packet + */ +static inline uint8_t mavlink_msg_mavlink_stats_tm_get_packet_idx(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 25); +} + +/** + * @brief Get field current_rx_seq from mavlink_stats_tm message + * + * @return Sequence number of last packet received + */ +static inline uint8_t mavlink_msg_mavlink_stats_tm_get_current_rx_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 26); +} + +/** + * @brief Get field current_tx_seq from mavlink_stats_tm message + * + * @return Sequence number of last packet sent + */ +static inline uint8_t mavlink_msg_mavlink_stats_tm_get_current_tx_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 27); +} + +/** + * @brief Get field packet_rx_success_count from mavlink_stats_tm message + * + * @return Received packets + */ +static inline uint16_t mavlink_msg_mavlink_stats_tm_get_packet_rx_success_count(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 18); +} + +/** + * @brief Get field packet_rx_drop_count from mavlink_stats_tm message + * + * @return Number of packet drops + */ +static inline uint16_t mavlink_msg_mavlink_stats_tm_get_packet_rx_drop_count(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 20); +} + +/** + * @brief Decode a mavlink_stats_tm message into a struct + * + * @param msg The message to decode + * @param mavlink_stats_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_mavlink_stats_tm_decode(const mavlink_message_t* msg, mavlink_mavlink_stats_tm_t* mavlink_stats_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_stats_tm->timestamp = mavlink_msg_mavlink_stats_tm_get_timestamp(msg); + mavlink_stats_tm->parse_state = mavlink_msg_mavlink_stats_tm_get_parse_state(msg); + mavlink_stats_tm->n_send_queue = mavlink_msg_mavlink_stats_tm_get_n_send_queue(msg); + mavlink_stats_tm->max_send_queue = mavlink_msg_mavlink_stats_tm_get_max_send_queue(msg); + mavlink_stats_tm->n_send_errors = mavlink_msg_mavlink_stats_tm_get_n_send_errors(msg); + mavlink_stats_tm->packet_rx_success_count = mavlink_msg_mavlink_stats_tm_get_packet_rx_success_count(msg); + mavlink_stats_tm->packet_rx_drop_count = mavlink_msg_mavlink_stats_tm_get_packet_rx_drop_count(msg); + mavlink_stats_tm->msg_received = mavlink_msg_mavlink_stats_tm_get_msg_received(msg); + mavlink_stats_tm->buffer_overrun = mavlink_msg_mavlink_stats_tm_get_buffer_overrun(msg); + mavlink_stats_tm->parse_error = mavlink_msg_mavlink_stats_tm_get_parse_error(msg); + mavlink_stats_tm->packet_idx = mavlink_msg_mavlink_stats_tm_get_packet_idx(msg); + mavlink_stats_tm->current_rx_seq = mavlink_msg_mavlink_stats_tm_get_current_rx_seq(msg); + mavlink_stats_tm->current_tx_seq = mavlink_msg_mavlink_stats_tm_get_current_tx_seq(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN? msg->len : MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN; + memset(mavlink_stats_tm, 0, MAVLINK_MSG_ID_MAVLINK_STATS_TM_LEN); + memcpy(mavlink_stats_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_mea_tm.h b/mavlink_lib/lyra/mavlink_msg_mea_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..a3887d7e6363b14616deca868632f1fc6c0d3b26 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_mea_tm.h @@ -0,0 +1,363 @@ +#pragma once +// MESSAGE MEA_TM PACKING + +#define MAVLINK_MSG_ID_MEA_TM 207 + + +typedef struct __mavlink_mea_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float kalman_x0; /*< Kalman state variable 0 (corrected pressure)*/ + float kalman_x1; /*< Kalman state variable 1 */ + float kalman_x2; /*< Kalman state variable 2 (mass)*/ + float mass; /*< [kg] Mass estimated*/ + float corrected_pressure; /*< [kg] Corrected pressure*/ + uint8_t state; /*< MEA current state*/ +} mavlink_mea_tm_t; + +#define MAVLINK_MSG_ID_MEA_TM_LEN 29 +#define MAVLINK_MSG_ID_MEA_TM_MIN_LEN 29 +#define MAVLINK_MSG_ID_207_LEN 29 +#define MAVLINK_MSG_ID_207_MIN_LEN 29 + +#define MAVLINK_MSG_ID_MEA_TM_CRC 11 +#define MAVLINK_MSG_ID_207_CRC 11 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_MEA_TM { \ + 207, \ + "MEA_TM", \ + 7, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_mea_tm_t, timestamp) }, \ + { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_mea_tm_t, state) }, \ + { "kalman_x0", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_mea_tm_t, kalman_x0) }, \ + { "kalman_x1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_mea_tm_t, kalman_x1) }, \ + { "kalman_x2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_mea_tm_t, kalman_x2) }, \ + { "mass", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_mea_tm_t, mass) }, \ + { "corrected_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_mea_tm_t, corrected_pressure) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_MEA_TM { \ + "MEA_TM", \ + 7, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_mea_tm_t, timestamp) }, \ + { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_mea_tm_t, state) }, \ + { "kalman_x0", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_mea_tm_t, kalman_x0) }, \ + { "kalman_x1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_mea_tm_t, kalman_x1) }, \ + { "kalman_x2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_mea_tm_t, kalman_x2) }, \ + { "mass", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_mea_tm_t, mass) }, \ + { "corrected_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_mea_tm_t, corrected_pressure) }, \ + } \ +} +#endif + +/** + * @brief Pack a mea_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param state MEA current state + * @param kalman_x0 Kalman state variable 0 (corrected pressure) + * @param kalman_x1 Kalman state variable 1 + * @param kalman_x2 Kalman state variable 2 (mass) + * @param mass [kg] Mass estimated + * @param corrected_pressure [kg] Corrected pressure + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_mea_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t state, float kalman_x0, float kalman_x1, float kalman_x2, float mass, float corrected_pressure) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_MEA_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, kalman_x0); + _mav_put_float(buf, 12, kalman_x1); + _mav_put_float(buf, 16, kalman_x2); + _mav_put_float(buf, 20, mass); + _mav_put_float(buf, 24, corrected_pressure); + _mav_put_uint8_t(buf, 28, state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_MEA_TM_LEN); +#else + mavlink_mea_tm_t packet; + packet.timestamp = timestamp; + packet.kalman_x0 = kalman_x0; + packet.kalman_x1 = kalman_x1; + packet.kalman_x2 = kalman_x2; + packet.mass = mass; + packet.corrected_pressure = corrected_pressure; + packet.state = state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_MEA_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_MEA_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_MEA_TM_MIN_LEN, MAVLINK_MSG_ID_MEA_TM_LEN, MAVLINK_MSG_ID_MEA_TM_CRC); +} + +/** + * @brief Pack a mea_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param state MEA current state + * @param kalman_x0 Kalman state variable 0 (corrected pressure) + * @param kalman_x1 Kalman state variable 1 + * @param kalman_x2 Kalman state variable 2 (mass) + * @param mass [kg] Mass estimated + * @param corrected_pressure [kg] Corrected pressure + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_mea_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t state,float kalman_x0,float kalman_x1,float kalman_x2,float mass,float corrected_pressure) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_MEA_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, kalman_x0); + _mav_put_float(buf, 12, kalman_x1); + _mav_put_float(buf, 16, kalman_x2); + _mav_put_float(buf, 20, mass); + _mav_put_float(buf, 24, corrected_pressure); + _mav_put_uint8_t(buf, 28, state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_MEA_TM_LEN); +#else + mavlink_mea_tm_t packet; + packet.timestamp = timestamp; + packet.kalman_x0 = kalman_x0; + packet.kalman_x1 = kalman_x1; + packet.kalman_x2 = kalman_x2; + packet.mass = mass; + packet.corrected_pressure = corrected_pressure; + packet.state = state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_MEA_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_MEA_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_MEA_TM_MIN_LEN, MAVLINK_MSG_ID_MEA_TM_LEN, MAVLINK_MSG_ID_MEA_TM_CRC); +} + +/** + * @brief Encode a mea_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param mea_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_mea_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_mea_tm_t* mea_tm) +{ + return mavlink_msg_mea_tm_pack(system_id, component_id, msg, mea_tm->timestamp, mea_tm->state, mea_tm->kalman_x0, mea_tm->kalman_x1, mea_tm->kalman_x2, mea_tm->mass, mea_tm->corrected_pressure); +} + +/** + * @brief Encode a mea_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param mea_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_mea_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_mea_tm_t* mea_tm) +{ + return mavlink_msg_mea_tm_pack_chan(system_id, component_id, chan, msg, mea_tm->timestamp, mea_tm->state, mea_tm->kalman_x0, mea_tm->kalman_x1, mea_tm->kalman_x2, mea_tm->mass, mea_tm->corrected_pressure); +} + +/** + * @brief Send a mea_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param state MEA current state + * @param kalman_x0 Kalman state variable 0 (corrected pressure) + * @param kalman_x1 Kalman state variable 1 + * @param kalman_x2 Kalman state variable 2 (mass) + * @param mass [kg] Mass estimated + * @param corrected_pressure [kg] Corrected pressure + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_mea_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t state, float kalman_x0, float kalman_x1, float kalman_x2, float mass, float corrected_pressure) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_MEA_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, kalman_x0); + _mav_put_float(buf, 12, kalman_x1); + _mav_put_float(buf, 16, kalman_x2); + _mav_put_float(buf, 20, mass); + _mav_put_float(buf, 24, corrected_pressure); + _mav_put_uint8_t(buf, 28, state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MEA_TM, buf, MAVLINK_MSG_ID_MEA_TM_MIN_LEN, MAVLINK_MSG_ID_MEA_TM_LEN, MAVLINK_MSG_ID_MEA_TM_CRC); +#else + mavlink_mea_tm_t packet; + packet.timestamp = timestamp; + packet.kalman_x0 = kalman_x0; + packet.kalman_x1 = kalman_x1; + packet.kalman_x2 = kalman_x2; + packet.mass = mass; + packet.corrected_pressure = corrected_pressure; + packet.state = state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MEA_TM, (const char *)&packet, MAVLINK_MSG_ID_MEA_TM_MIN_LEN, MAVLINK_MSG_ID_MEA_TM_LEN, MAVLINK_MSG_ID_MEA_TM_CRC); +#endif +} + +/** + * @brief Send a mea_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_mea_tm_send_struct(mavlink_channel_t chan, const mavlink_mea_tm_t* mea_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_mea_tm_send(chan, mea_tm->timestamp, mea_tm->state, mea_tm->kalman_x0, mea_tm->kalman_x1, mea_tm->kalman_x2, mea_tm->mass, mea_tm->corrected_pressure); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MEA_TM, (const char *)mea_tm, MAVLINK_MSG_ID_MEA_TM_MIN_LEN, MAVLINK_MSG_ID_MEA_TM_LEN, MAVLINK_MSG_ID_MEA_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_MEA_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_mea_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t state, float kalman_x0, float kalman_x1, float kalman_x2, float mass, float corrected_pressure) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, kalman_x0); + _mav_put_float(buf, 12, kalman_x1); + _mav_put_float(buf, 16, kalman_x2); + _mav_put_float(buf, 20, mass); + _mav_put_float(buf, 24, corrected_pressure); + _mav_put_uint8_t(buf, 28, state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MEA_TM, buf, MAVLINK_MSG_ID_MEA_TM_MIN_LEN, MAVLINK_MSG_ID_MEA_TM_LEN, MAVLINK_MSG_ID_MEA_TM_CRC); +#else + mavlink_mea_tm_t *packet = (mavlink_mea_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->kalman_x0 = kalman_x0; + packet->kalman_x1 = kalman_x1; + packet->kalman_x2 = kalman_x2; + packet->mass = mass; + packet->corrected_pressure = corrected_pressure; + packet->state = state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MEA_TM, (const char *)packet, MAVLINK_MSG_ID_MEA_TM_MIN_LEN, MAVLINK_MSG_ID_MEA_TM_LEN, MAVLINK_MSG_ID_MEA_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE MEA_TM UNPACKING + + +/** + * @brief Get field timestamp from mea_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_mea_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field state from mea_tm message + * + * @return MEA current state + */ +static inline uint8_t mavlink_msg_mea_tm_get_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 28); +} + +/** + * @brief Get field kalman_x0 from mea_tm message + * + * @return Kalman state variable 0 (corrected pressure) + */ +static inline float mavlink_msg_mea_tm_get_kalman_x0(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field kalman_x1 from mea_tm message + * + * @return Kalman state variable 1 + */ +static inline float mavlink_msg_mea_tm_get_kalman_x1(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field kalman_x2 from mea_tm message + * + * @return Kalman state variable 2 (mass) + */ +static inline float mavlink_msg_mea_tm_get_kalman_x2(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field mass from mea_tm message + * + * @return [kg] Mass estimated + */ +static inline float mavlink_msg_mea_tm_get_mass(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field corrected_pressure from mea_tm message + * + * @return [kg] Corrected pressure + */ +static inline float mavlink_msg_mea_tm_get_corrected_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Decode a mea_tm message into a struct + * + * @param msg The message to decode + * @param mea_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_mea_tm_decode(const mavlink_message_t* msg, mavlink_mea_tm_t* mea_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mea_tm->timestamp = mavlink_msg_mea_tm_get_timestamp(msg); + mea_tm->kalman_x0 = mavlink_msg_mea_tm_get_kalman_x0(msg); + mea_tm->kalman_x1 = mavlink_msg_mea_tm_get_kalman_x1(msg); + mea_tm->kalman_x2 = mavlink_msg_mea_tm_get_kalman_x2(msg); + mea_tm->mass = mavlink_msg_mea_tm_get_mass(msg); + mea_tm->corrected_pressure = mavlink_msg_mea_tm_get_corrected_pressure(msg); + mea_tm->state = mavlink_msg_mea_tm_get_state(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_MEA_TM_LEN? msg->len : MAVLINK_MSG_ID_MEA_TM_LEN; + memset(mea_tm, 0, MAVLINK_MSG_ID_MEA_TM_LEN); + memcpy(mea_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_motor_tm.h b/mavlink_lib/lyra/mavlink_msg_motor_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..25643d25c37da50e8d0f474b4649b81d103b7ab4 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_motor_tm.h @@ -0,0 +1,438 @@ +#pragma once +// MESSAGE MOTOR_TM PACKING + +#define MAVLINK_MSG_ID_MOTOR_TM 213 + + +typedef struct __mavlink_motor_tm_t { + uint64_t timestamp; /*< [us] Timestamp in microseconds*/ + float top_tank_pressure; /*< [Bar] Tank upper pressure*/ + float bottom_tank_pressure; /*< [Bar] Tank bottom pressure*/ + float combustion_chamber_pressure; /*< [Bar] Pressure inside the combustion chamber used for automatic shutdown*/ + float tank_temperature; /*< Tank temperature*/ + float battery_voltage; /*< [V] Battery voltage*/ + float current_consumption; /*< [A] Current drained from the battery*/ + uint8_t floating_level; /*< Floating level in tank*/ + uint8_t main_valve_state; /*< 1 If the main valve is open */ + uint8_t venting_valve_state; /*< 1 If the venting valve is open */ +} mavlink_motor_tm_t; + +#define MAVLINK_MSG_ID_MOTOR_TM_LEN 35 +#define MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN 35 +#define MAVLINK_MSG_ID_213_LEN 35 +#define MAVLINK_MSG_ID_213_MIN_LEN 35 + +#define MAVLINK_MSG_ID_MOTOR_TM_CRC 79 +#define MAVLINK_MSG_ID_213_CRC 79 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_MOTOR_TM { \ + 213, \ + "MOTOR_TM", \ + 10, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_motor_tm_t, timestamp) }, \ + { "top_tank_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_motor_tm_t, top_tank_pressure) }, \ + { "bottom_tank_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_motor_tm_t, bottom_tank_pressure) }, \ + { "combustion_chamber_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_motor_tm_t, combustion_chamber_pressure) }, \ + { "floating_level", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_motor_tm_t, floating_level) }, \ + { "tank_temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_motor_tm_t, tank_temperature) }, \ + { "main_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 33, offsetof(mavlink_motor_tm_t, main_valve_state) }, \ + { "venting_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 34, offsetof(mavlink_motor_tm_t, venting_valve_state) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_motor_tm_t, battery_voltage) }, \ + { "current_consumption", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_motor_tm_t, current_consumption) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_MOTOR_TM { \ + "MOTOR_TM", \ + 10, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_motor_tm_t, timestamp) }, \ + { "top_tank_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_motor_tm_t, top_tank_pressure) }, \ + { "bottom_tank_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_motor_tm_t, bottom_tank_pressure) }, \ + { "combustion_chamber_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_motor_tm_t, combustion_chamber_pressure) }, \ + { "floating_level", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_motor_tm_t, floating_level) }, \ + { "tank_temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_motor_tm_t, tank_temperature) }, \ + { "main_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 33, offsetof(mavlink_motor_tm_t, main_valve_state) }, \ + { "venting_valve_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 34, offsetof(mavlink_motor_tm_t, venting_valve_state) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_motor_tm_t, battery_voltage) }, \ + { "current_consumption", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_motor_tm_t, current_consumption) }, \ + } \ +} +#endif + +/** + * @brief Pack a motor_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] Timestamp in microseconds + * @param top_tank_pressure [Bar] Tank upper pressure + * @param bottom_tank_pressure [Bar] Tank bottom pressure + * @param combustion_chamber_pressure [Bar] Pressure inside the combustion chamber used for automatic shutdown + * @param floating_level Floating level in tank + * @param tank_temperature Tank temperature + * @param main_valve_state 1 If the main valve is open + * @param venting_valve_state 1 If the venting valve is open + * @param battery_voltage [V] Battery voltage + * @param current_consumption [A] Current drained from the battery + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_motor_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, float top_tank_pressure, float bottom_tank_pressure, float combustion_chamber_pressure, uint8_t floating_level, float tank_temperature, uint8_t main_valve_state, uint8_t venting_valve_state, float battery_voltage, float current_consumption) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_MOTOR_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, top_tank_pressure); + _mav_put_float(buf, 12, bottom_tank_pressure); + _mav_put_float(buf, 16, combustion_chamber_pressure); + _mav_put_float(buf, 20, tank_temperature); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_float(buf, 28, current_consumption); + _mav_put_uint8_t(buf, 32, floating_level); + _mav_put_uint8_t(buf, 33, main_valve_state); + _mav_put_uint8_t(buf, 34, venting_valve_state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_MOTOR_TM_LEN); +#else + mavlink_motor_tm_t packet; + packet.timestamp = timestamp; + packet.top_tank_pressure = top_tank_pressure; + packet.bottom_tank_pressure = bottom_tank_pressure; + packet.combustion_chamber_pressure = combustion_chamber_pressure; + packet.tank_temperature = tank_temperature; + packet.battery_voltage = battery_voltage; + packet.current_consumption = current_consumption; + packet.floating_level = floating_level; + packet.main_valve_state = main_valve_state; + packet.venting_valve_state = venting_valve_state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_MOTOR_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_MOTOR_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN, MAVLINK_MSG_ID_MOTOR_TM_LEN, MAVLINK_MSG_ID_MOTOR_TM_CRC); +} + +/** + * @brief Pack a motor_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] Timestamp in microseconds + * @param top_tank_pressure [Bar] Tank upper pressure + * @param bottom_tank_pressure [Bar] Tank bottom pressure + * @param combustion_chamber_pressure [Bar] Pressure inside the combustion chamber used for automatic shutdown + * @param floating_level Floating level in tank + * @param tank_temperature Tank temperature + * @param main_valve_state 1 If the main valve is open + * @param venting_valve_state 1 If the venting valve is open + * @param battery_voltage [V] Battery voltage + * @param current_consumption [A] Current drained from the battery + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_motor_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,float top_tank_pressure,float bottom_tank_pressure,float combustion_chamber_pressure,uint8_t floating_level,float tank_temperature,uint8_t main_valve_state,uint8_t venting_valve_state,float battery_voltage,float current_consumption) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_MOTOR_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, top_tank_pressure); + _mav_put_float(buf, 12, bottom_tank_pressure); + _mav_put_float(buf, 16, combustion_chamber_pressure); + _mav_put_float(buf, 20, tank_temperature); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_float(buf, 28, current_consumption); + _mav_put_uint8_t(buf, 32, floating_level); + _mav_put_uint8_t(buf, 33, main_valve_state); + _mav_put_uint8_t(buf, 34, venting_valve_state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_MOTOR_TM_LEN); +#else + mavlink_motor_tm_t packet; + packet.timestamp = timestamp; + packet.top_tank_pressure = top_tank_pressure; + packet.bottom_tank_pressure = bottom_tank_pressure; + packet.combustion_chamber_pressure = combustion_chamber_pressure; + packet.tank_temperature = tank_temperature; + packet.battery_voltage = battery_voltage; + packet.current_consumption = current_consumption; + packet.floating_level = floating_level; + packet.main_valve_state = main_valve_state; + packet.venting_valve_state = venting_valve_state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_MOTOR_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_MOTOR_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN, MAVLINK_MSG_ID_MOTOR_TM_LEN, MAVLINK_MSG_ID_MOTOR_TM_CRC); +} + +/** + * @brief Encode a motor_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param motor_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_motor_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_motor_tm_t* motor_tm) +{ + return mavlink_msg_motor_tm_pack(system_id, component_id, msg, motor_tm->timestamp, motor_tm->top_tank_pressure, motor_tm->bottom_tank_pressure, motor_tm->combustion_chamber_pressure, motor_tm->floating_level, motor_tm->tank_temperature, motor_tm->main_valve_state, motor_tm->venting_valve_state, motor_tm->battery_voltage, motor_tm->current_consumption); +} + +/** + * @brief Encode a motor_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param motor_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_motor_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_motor_tm_t* motor_tm) +{ + return mavlink_msg_motor_tm_pack_chan(system_id, component_id, chan, msg, motor_tm->timestamp, motor_tm->top_tank_pressure, motor_tm->bottom_tank_pressure, motor_tm->combustion_chamber_pressure, motor_tm->floating_level, motor_tm->tank_temperature, motor_tm->main_valve_state, motor_tm->venting_valve_state, motor_tm->battery_voltage, motor_tm->current_consumption); +} + +/** + * @brief Send a motor_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] Timestamp in microseconds + * @param top_tank_pressure [Bar] Tank upper pressure + * @param bottom_tank_pressure [Bar] Tank bottom pressure + * @param combustion_chamber_pressure [Bar] Pressure inside the combustion chamber used for automatic shutdown + * @param floating_level Floating level in tank + * @param tank_temperature Tank temperature + * @param main_valve_state 1 If the main valve is open + * @param venting_valve_state 1 If the venting valve is open + * @param battery_voltage [V] Battery voltage + * @param current_consumption [A] Current drained from the battery + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_motor_tm_send(mavlink_channel_t chan, uint64_t timestamp, float top_tank_pressure, float bottom_tank_pressure, float combustion_chamber_pressure, uint8_t floating_level, float tank_temperature, uint8_t main_valve_state, uint8_t venting_valve_state, float battery_voltage, float current_consumption) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_MOTOR_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, top_tank_pressure); + _mav_put_float(buf, 12, bottom_tank_pressure); + _mav_put_float(buf, 16, combustion_chamber_pressure); + _mav_put_float(buf, 20, tank_temperature); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_float(buf, 28, current_consumption); + _mav_put_uint8_t(buf, 32, floating_level); + _mav_put_uint8_t(buf, 33, main_valve_state); + _mav_put_uint8_t(buf, 34, venting_valve_state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MOTOR_TM, buf, MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN, MAVLINK_MSG_ID_MOTOR_TM_LEN, MAVLINK_MSG_ID_MOTOR_TM_CRC); +#else + mavlink_motor_tm_t packet; + packet.timestamp = timestamp; + packet.top_tank_pressure = top_tank_pressure; + packet.bottom_tank_pressure = bottom_tank_pressure; + packet.combustion_chamber_pressure = combustion_chamber_pressure; + packet.tank_temperature = tank_temperature; + packet.battery_voltage = battery_voltage; + packet.current_consumption = current_consumption; + packet.floating_level = floating_level; + packet.main_valve_state = main_valve_state; + packet.venting_valve_state = venting_valve_state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MOTOR_TM, (const char *)&packet, MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN, MAVLINK_MSG_ID_MOTOR_TM_LEN, MAVLINK_MSG_ID_MOTOR_TM_CRC); +#endif +} + +/** + * @brief Send a motor_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_motor_tm_send_struct(mavlink_channel_t chan, const mavlink_motor_tm_t* motor_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_motor_tm_send(chan, motor_tm->timestamp, motor_tm->top_tank_pressure, motor_tm->bottom_tank_pressure, motor_tm->combustion_chamber_pressure, motor_tm->floating_level, motor_tm->tank_temperature, motor_tm->main_valve_state, motor_tm->venting_valve_state, motor_tm->battery_voltage, motor_tm->current_consumption); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MOTOR_TM, (const char *)motor_tm, MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN, MAVLINK_MSG_ID_MOTOR_TM_LEN, MAVLINK_MSG_ID_MOTOR_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_MOTOR_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_motor_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, float top_tank_pressure, float bottom_tank_pressure, float combustion_chamber_pressure, uint8_t floating_level, float tank_temperature, uint8_t main_valve_state, uint8_t venting_valve_state, float battery_voltage, float current_consumption) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, top_tank_pressure); + _mav_put_float(buf, 12, bottom_tank_pressure); + _mav_put_float(buf, 16, combustion_chamber_pressure); + _mav_put_float(buf, 20, tank_temperature); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_float(buf, 28, current_consumption); + _mav_put_uint8_t(buf, 32, floating_level); + _mav_put_uint8_t(buf, 33, main_valve_state); + _mav_put_uint8_t(buf, 34, venting_valve_state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MOTOR_TM, buf, MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN, MAVLINK_MSG_ID_MOTOR_TM_LEN, MAVLINK_MSG_ID_MOTOR_TM_CRC); +#else + mavlink_motor_tm_t *packet = (mavlink_motor_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->top_tank_pressure = top_tank_pressure; + packet->bottom_tank_pressure = bottom_tank_pressure; + packet->combustion_chamber_pressure = combustion_chamber_pressure; + packet->tank_temperature = tank_temperature; + packet->battery_voltage = battery_voltage; + packet->current_consumption = current_consumption; + packet->floating_level = floating_level; + packet->main_valve_state = main_valve_state; + packet->venting_valve_state = venting_valve_state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MOTOR_TM, (const char *)packet, MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN, MAVLINK_MSG_ID_MOTOR_TM_LEN, MAVLINK_MSG_ID_MOTOR_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE MOTOR_TM UNPACKING + + +/** + * @brief Get field timestamp from motor_tm message + * + * @return [us] Timestamp in microseconds + */ +static inline uint64_t mavlink_msg_motor_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field top_tank_pressure from motor_tm message + * + * @return [Bar] Tank upper pressure + */ +static inline float mavlink_msg_motor_tm_get_top_tank_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field bottom_tank_pressure from motor_tm message + * + * @return [Bar] Tank bottom pressure + */ +static inline float mavlink_msg_motor_tm_get_bottom_tank_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field combustion_chamber_pressure from motor_tm message + * + * @return [Bar] Pressure inside the combustion chamber used for automatic shutdown + */ +static inline float mavlink_msg_motor_tm_get_combustion_chamber_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field floating_level from motor_tm message + * + * @return Floating level in tank + */ +static inline uint8_t mavlink_msg_motor_tm_get_floating_level(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 32); +} + +/** + * @brief Get field tank_temperature from motor_tm message + * + * @return Tank temperature + */ +static inline float mavlink_msg_motor_tm_get_tank_temperature(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field main_valve_state from motor_tm message + * + * @return 1 If the main valve is open + */ +static inline uint8_t mavlink_msg_motor_tm_get_main_valve_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 33); +} + +/** + * @brief Get field venting_valve_state from motor_tm message + * + * @return 1 If the venting valve is open + */ +static inline uint8_t mavlink_msg_motor_tm_get_venting_valve_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 34); +} + +/** + * @brief Get field battery_voltage from motor_tm message + * + * @return [V] Battery voltage + */ +static inline float mavlink_msg_motor_tm_get_battery_voltage(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Get field current_consumption from motor_tm message + * + * @return [A] Current drained from the battery + */ +static inline float mavlink_msg_motor_tm_get_current_consumption(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Decode a motor_tm message into a struct + * + * @param msg The message to decode + * @param motor_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_motor_tm_decode(const mavlink_message_t* msg, mavlink_motor_tm_t* motor_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + motor_tm->timestamp = mavlink_msg_motor_tm_get_timestamp(msg); + motor_tm->top_tank_pressure = mavlink_msg_motor_tm_get_top_tank_pressure(msg); + motor_tm->bottom_tank_pressure = mavlink_msg_motor_tm_get_bottom_tank_pressure(msg); + motor_tm->combustion_chamber_pressure = mavlink_msg_motor_tm_get_combustion_chamber_pressure(msg); + motor_tm->tank_temperature = mavlink_msg_motor_tm_get_tank_temperature(msg); + motor_tm->battery_voltage = mavlink_msg_motor_tm_get_battery_voltage(msg); + motor_tm->current_consumption = mavlink_msg_motor_tm_get_current_consumption(msg); + motor_tm->floating_level = mavlink_msg_motor_tm_get_floating_level(msg); + motor_tm->main_valve_state = mavlink_msg_motor_tm_get_main_valve_state(msg); + motor_tm->venting_valve_state = mavlink_msg_motor_tm_get_venting_valve_state(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_MOTOR_TM_LEN? msg->len : MAVLINK_MSG_ID_MOTOR_TM_LEN; + memset(motor_tm, 0, MAVLINK_MSG_ID_MOTOR_TM_LEN); + memcpy(motor_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_nack_tm.h b/mavlink_lib/lyra/mavlink_msg_nack_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..85abd048c50911cd99ded380f566cf5c34b29322 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_nack_tm.h @@ -0,0 +1,238 @@ +#pragma once +// MESSAGE NACK_TM PACKING + +#define MAVLINK_MSG_ID_NACK_TM 101 + + +typedef struct __mavlink_nack_tm_t { + uint8_t recv_msgid; /*< Message id of the received message*/ + uint8_t seq_ack; /*< Sequence number of the received message*/ +} mavlink_nack_tm_t; + +#define MAVLINK_MSG_ID_NACK_TM_LEN 2 +#define MAVLINK_MSG_ID_NACK_TM_MIN_LEN 2 +#define MAVLINK_MSG_ID_101_LEN 2 +#define MAVLINK_MSG_ID_101_MIN_LEN 2 + +#define MAVLINK_MSG_ID_NACK_TM_CRC 146 +#define MAVLINK_MSG_ID_101_CRC 146 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_NACK_TM { \ + 101, \ + "NACK_TM", \ + 2, \ + { { "recv_msgid", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_nack_tm_t, recv_msgid) }, \ + { "seq_ack", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_nack_tm_t, seq_ack) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_NACK_TM { \ + "NACK_TM", \ + 2, \ + { { "recv_msgid", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_nack_tm_t, recv_msgid) }, \ + { "seq_ack", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_nack_tm_t, seq_ack) }, \ + } \ +} +#endif + +/** + * @brief Pack a nack_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param recv_msgid Message id of the received message + * @param seq_ack Sequence number of the received message + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_nack_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t recv_msgid, uint8_t seq_ack) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_NACK_TM_LEN]; + _mav_put_uint8_t(buf, 0, recv_msgid); + _mav_put_uint8_t(buf, 1, seq_ack); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_NACK_TM_LEN); +#else + mavlink_nack_tm_t packet; + packet.recv_msgid = recv_msgid; + packet.seq_ack = seq_ack; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_NACK_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_NACK_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_NACK_TM_MIN_LEN, MAVLINK_MSG_ID_NACK_TM_LEN, MAVLINK_MSG_ID_NACK_TM_CRC); +} + +/** + * @brief Pack a nack_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param recv_msgid Message id of the received message + * @param seq_ack Sequence number of the received message + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_nack_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t recv_msgid,uint8_t seq_ack) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_NACK_TM_LEN]; + _mav_put_uint8_t(buf, 0, recv_msgid); + _mav_put_uint8_t(buf, 1, seq_ack); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_NACK_TM_LEN); +#else + mavlink_nack_tm_t packet; + packet.recv_msgid = recv_msgid; + packet.seq_ack = seq_ack; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_NACK_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_NACK_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_NACK_TM_MIN_LEN, MAVLINK_MSG_ID_NACK_TM_LEN, MAVLINK_MSG_ID_NACK_TM_CRC); +} + +/** + * @brief Encode a nack_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param nack_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_nack_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_nack_tm_t* nack_tm) +{ + return mavlink_msg_nack_tm_pack(system_id, component_id, msg, nack_tm->recv_msgid, nack_tm->seq_ack); +} + +/** + * @brief Encode a nack_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param nack_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_nack_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_nack_tm_t* nack_tm) +{ + return mavlink_msg_nack_tm_pack_chan(system_id, component_id, chan, msg, nack_tm->recv_msgid, nack_tm->seq_ack); +} + +/** + * @brief Send a nack_tm message + * @param chan MAVLink channel to send the message + * + * @param recv_msgid Message id of the received message + * @param seq_ack Sequence number of the received message + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_nack_tm_send(mavlink_channel_t chan, uint8_t recv_msgid, uint8_t seq_ack) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_NACK_TM_LEN]; + _mav_put_uint8_t(buf, 0, recv_msgid); + _mav_put_uint8_t(buf, 1, seq_ack); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NACK_TM, buf, MAVLINK_MSG_ID_NACK_TM_MIN_LEN, MAVLINK_MSG_ID_NACK_TM_LEN, MAVLINK_MSG_ID_NACK_TM_CRC); +#else + mavlink_nack_tm_t packet; + packet.recv_msgid = recv_msgid; + packet.seq_ack = seq_ack; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NACK_TM, (const char *)&packet, MAVLINK_MSG_ID_NACK_TM_MIN_LEN, MAVLINK_MSG_ID_NACK_TM_LEN, MAVLINK_MSG_ID_NACK_TM_CRC); +#endif +} + +/** + * @brief Send a nack_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_nack_tm_send_struct(mavlink_channel_t chan, const mavlink_nack_tm_t* nack_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_nack_tm_send(chan, nack_tm->recv_msgid, nack_tm->seq_ack); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NACK_TM, (const char *)nack_tm, MAVLINK_MSG_ID_NACK_TM_MIN_LEN, MAVLINK_MSG_ID_NACK_TM_LEN, MAVLINK_MSG_ID_NACK_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_NACK_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_nack_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t recv_msgid, uint8_t seq_ack) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, recv_msgid); + _mav_put_uint8_t(buf, 1, seq_ack); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NACK_TM, buf, MAVLINK_MSG_ID_NACK_TM_MIN_LEN, MAVLINK_MSG_ID_NACK_TM_LEN, MAVLINK_MSG_ID_NACK_TM_CRC); +#else + mavlink_nack_tm_t *packet = (mavlink_nack_tm_t *)msgbuf; + packet->recv_msgid = recv_msgid; + packet->seq_ack = seq_ack; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NACK_TM, (const char *)packet, MAVLINK_MSG_ID_NACK_TM_MIN_LEN, MAVLINK_MSG_ID_NACK_TM_LEN, MAVLINK_MSG_ID_NACK_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE NACK_TM UNPACKING + + +/** + * @brief Get field recv_msgid from nack_tm message + * + * @return Message id of the received message + */ +static inline uint8_t mavlink_msg_nack_tm_get_recv_msgid(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Get field seq_ack from nack_tm message + * + * @return Sequence number of the received message + */ +static inline uint8_t mavlink_msg_nack_tm_get_seq_ack(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 1); +} + +/** + * @brief Decode a nack_tm message into a struct + * + * @param msg The message to decode + * @param nack_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_nack_tm_decode(const mavlink_message_t* msg, mavlink_nack_tm_t* nack_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + nack_tm->recv_msgid = mavlink_msg_nack_tm_get_recv_msgid(msg); + nack_tm->seq_ack = mavlink_msg_nack_tm_get_seq_ack(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_NACK_TM_LEN? msg->len : MAVLINK_MSG_ID_NACK_TM_LEN; + memset(nack_tm, 0, MAVLINK_MSG_ID_NACK_TM_LEN); + memcpy(nack_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_nas_tm.h b/mavlink_lib/lyra/mavlink_msg_nas_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..e91b837c04d4e2bc46c3226696f68c32890b9f08 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_nas_tm.h @@ -0,0 +1,663 @@ +#pragma once +// MESSAGE NAS_TM PACKING + +#define MAVLINK_MSG_ID_NAS_TM 206 + + +typedef struct __mavlink_nas_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float nas_n; /*< [deg] Navigation system estimated noth position*/ + float nas_e; /*< [deg] Navigation system estimated east position*/ + float nas_d; /*< [m] Navigation system estimated down position*/ + float nas_vn; /*< [m/s] Navigation system estimated north velocity*/ + float nas_ve; /*< [m/s] Navigation system estimated east velocity*/ + float nas_vd; /*< [m/s] Navigation system estimated down velocity*/ + float nas_qx; /*< [deg] Navigation system estimated attitude (qx)*/ + float nas_qy; /*< [deg] Navigation system estimated attitude (qy)*/ + float nas_qz; /*< [deg] Navigation system estimated attitude (qz)*/ + float nas_qw; /*< [deg] Navigation system estimated attitude (qw)*/ + float nas_bias_x; /*< Navigation system gyroscope bias on x axis*/ + float nas_bias_y; /*< Navigation system gyroscope bias on y axis*/ + float nas_bias_z; /*< Navigation system gyroscope bias on z axis*/ + float ref_pressure; /*< [Pa] Calibration pressure*/ + float ref_temperature; /*< [degC] Calibration temperature*/ + float ref_latitude; /*< [deg] Calibration latitude*/ + float ref_longitude; /*< [deg] Calibration longitude*/ + uint8_t state; /*< NAS current state*/ +} mavlink_nas_tm_t; + +#define MAVLINK_MSG_ID_NAS_TM_LEN 77 +#define MAVLINK_MSG_ID_NAS_TM_MIN_LEN 77 +#define MAVLINK_MSG_ID_206_LEN 77 +#define MAVLINK_MSG_ID_206_MIN_LEN 77 + +#define MAVLINK_MSG_ID_NAS_TM_CRC 66 +#define MAVLINK_MSG_ID_206_CRC 66 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_NAS_TM { \ + 206, \ + "NAS_TM", \ + 19, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_nas_tm_t, timestamp) }, \ + { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 76, offsetof(mavlink_nas_tm_t, state) }, \ + { "nas_n", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_nas_tm_t, nas_n) }, \ + { "nas_e", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_nas_tm_t, nas_e) }, \ + { "nas_d", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_nas_tm_t, nas_d) }, \ + { "nas_vn", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_nas_tm_t, nas_vn) }, \ + { "nas_ve", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_nas_tm_t, nas_ve) }, \ + { "nas_vd", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_nas_tm_t, nas_vd) }, \ + { "nas_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_nas_tm_t, nas_qx) }, \ + { "nas_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_nas_tm_t, nas_qy) }, \ + { "nas_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_nas_tm_t, nas_qz) }, \ + { "nas_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_nas_tm_t, nas_qw) }, \ + { "nas_bias_x", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_nas_tm_t, nas_bias_x) }, \ + { "nas_bias_y", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_nas_tm_t, nas_bias_y) }, \ + { "nas_bias_z", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_nas_tm_t, nas_bias_z) }, \ + { "ref_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_nas_tm_t, ref_pressure) }, \ + { "ref_temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_nas_tm_t, ref_temperature) }, \ + { "ref_latitude", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_nas_tm_t, ref_latitude) }, \ + { "ref_longitude", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_nas_tm_t, ref_longitude) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_NAS_TM { \ + "NAS_TM", \ + 19, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_nas_tm_t, timestamp) }, \ + { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 76, offsetof(mavlink_nas_tm_t, state) }, \ + { "nas_n", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_nas_tm_t, nas_n) }, \ + { "nas_e", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_nas_tm_t, nas_e) }, \ + { "nas_d", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_nas_tm_t, nas_d) }, \ + { "nas_vn", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_nas_tm_t, nas_vn) }, \ + { "nas_ve", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_nas_tm_t, nas_ve) }, \ + { "nas_vd", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_nas_tm_t, nas_vd) }, \ + { "nas_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_nas_tm_t, nas_qx) }, \ + { "nas_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_nas_tm_t, nas_qy) }, \ + { "nas_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_nas_tm_t, nas_qz) }, \ + { "nas_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_nas_tm_t, nas_qw) }, \ + { "nas_bias_x", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_nas_tm_t, nas_bias_x) }, \ + { "nas_bias_y", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_nas_tm_t, nas_bias_y) }, \ + { "nas_bias_z", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_nas_tm_t, nas_bias_z) }, \ + { "ref_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_nas_tm_t, ref_pressure) }, \ + { "ref_temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_nas_tm_t, ref_temperature) }, \ + { "ref_latitude", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_nas_tm_t, ref_latitude) }, \ + { "ref_longitude", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_nas_tm_t, ref_longitude) }, \ + } \ +} +#endif + +/** + * @brief Pack a nas_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param state NAS current state + * @param nas_n [deg] Navigation system estimated noth position + * @param nas_e [deg] Navigation system estimated east position + * @param nas_d [m] Navigation system estimated down position + * @param nas_vn [m/s] Navigation system estimated north velocity + * @param nas_ve [m/s] Navigation system estimated east velocity + * @param nas_vd [m/s] Navigation system estimated down velocity + * @param nas_qx [deg] Navigation system estimated attitude (qx) + * @param nas_qy [deg] Navigation system estimated attitude (qy) + * @param nas_qz [deg] Navigation system estimated attitude (qz) + * @param nas_qw [deg] Navigation system estimated attitude (qw) + * @param nas_bias_x Navigation system gyroscope bias on x axis + * @param nas_bias_y Navigation system gyroscope bias on y axis + * @param nas_bias_z Navigation system gyroscope bias on z axis + * @param ref_pressure [Pa] Calibration pressure + * @param ref_temperature [degC] Calibration temperature + * @param ref_latitude [deg] Calibration latitude + * @param ref_longitude [deg] Calibration longitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_nas_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t state, float nas_n, float nas_e, float nas_d, float nas_vn, float nas_ve, float nas_vd, float nas_qx, float nas_qy, float nas_qz, float nas_qw, float nas_bias_x, float nas_bias_y, float nas_bias_z, float ref_pressure, float ref_temperature, float ref_latitude, float ref_longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_NAS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, nas_n); + _mav_put_float(buf, 12, nas_e); + _mav_put_float(buf, 16, nas_d); + _mav_put_float(buf, 20, nas_vn); + _mav_put_float(buf, 24, nas_ve); + _mav_put_float(buf, 28, nas_vd); + _mav_put_float(buf, 32, nas_qx); + _mav_put_float(buf, 36, nas_qy); + _mav_put_float(buf, 40, nas_qz); + _mav_put_float(buf, 44, nas_qw); + _mav_put_float(buf, 48, nas_bias_x); + _mav_put_float(buf, 52, nas_bias_y); + _mav_put_float(buf, 56, nas_bias_z); + _mav_put_float(buf, 60, ref_pressure); + _mav_put_float(buf, 64, ref_temperature); + _mav_put_float(buf, 68, ref_latitude); + _mav_put_float(buf, 72, ref_longitude); + _mav_put_uint8_t(buf, 76, state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_NAS_TM_LEN); +#else + mavlink_nas_tm_t packet; + packet.timestamp = timestamp; + packet.nas_n = nas_n; + packet.nas_e = nas_e; + packet.nas_d = nas_d; + packet.nas_vn = nas_vn; + packet.nas_ve = nas_ve; + packet.nas_vd = nas_vd; + packet.nas_qx = nas_qx; + packet.nas_qy = nas_qy; + packet.nas_qz = nas_qz; + packet.nas_qw = nas_qw; + packet.nas_bias_x = nas_bias_x; + packet.nas_bias_y = nas_bias_y; + packet.nas_bias_z = nas_bias_z; + packet.ref_pressure = ref_pressure; + packet.ref_temperature = ref_temperature; + packet.ref_latitude = ref_latitude; + packet.ref_longitude = ref_longitude; + packet.state = state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_NAS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_NAS_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_NAS_TM_MIN_LEN, MAVLINK_MSG_ID_NAS_TM_LEN, MAVLINK_MSG_ID_NAS_TM_CRC); +} + +/** + * @brief Pack a nas_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param state NAS current state + * @param nas_n [deg] Navigation system estimated noth position + * @param nas_e [deg] Navigation system estimated east position + * @param nas_d [m] Navigation system estimated down position + * @param nas_vn [m/s] Navigation system estimated north velocity + * @param nas_ve [m/s] Navigation system estimated east velocity + * @param nas_vd [m/s] Navigation system estimated down velocity + * @param nas_qx [deg] Navigation system estimated attitude (qx) + * @param nas_qy [deg] Navigation system estimated attitude (qy) + * @param nas_qz [deg] Navigation system estimated attitude (qz) + * @param nas_qw [deg] Navigation system estimated attitude (qw) + * @param nas_bias_x Navigation system gyroscope bias on x axis + * @param nas_bias_y Navigation system gyroscope bias on y axis + * @param nas_bias_z Navigation system gyroscope bias on z axis + * @param ref_pressure [Pa] Calibration pressure + * @param ref_temperature [degC] Calibration temperature + * @param ref_latitude [deg] Calibration latitude + * @param ref_longitude [deg] Calibration longitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_nas_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t state,float nas_n,float nas_e,float nas_d,float nas_vn,float nas_ve,float nas_vd,float nas_qx,float nas_qy,float nas_qz,float nas_qw,float nas_bias_x,float nas_bias_y,float nas_bias_z,float ref_pressure,float ref_temperature,float ref_latitude,float ref_longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_NAS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, nas_n); + _mav_put_float(buf, 12, nas_e); + _mav_put_float(buf, 16, nas_d); + _mav_put_float(buf, 20, nas_vn); + _mav_put_float(buf, 24, nas_ve); + _mav_put_float(buf, 28, nas_vd); + _mav_put_float(buf, 32, nas_qx); + _mav_put_float(buf, 36, nas_qy); + _mav_put_float(buf, 40, nas_qz); + _mav_put_float(buf, 44, nas_qw); + _mav_put_float(buf, 48, nas_bias_x); + _mav_put_float(buf, 52, nas_bias_y); + _mav_put_float(buf, 56, nas_bias_z); + _mav_put_float(buf, 60, ref_pressure); + _mav_put_float(buf, 64, ref_temperature); + _mav_put_float(buf, 68, ref_latitude); + _mav_put_float(buf, 72, ref_longitude); + _mav_put_uint8_t(buf, 76, state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_NAS_TM_LEN); +#else + mavlink_nas_tm_t packet; + packet.timestamp = timestamp; + packet.nas_n = nas_n; + packet.nas_e = nas_e; + packet.nas_d = nas_d; + packet.nas_vn = nas_vn; + packet.nas_ve = nas_ve; + packet.nas_vd = nas_vd; + packet.nas_qx = nas_qx; + packet.nas_qy = nas_qy; + packet.nas_qz = nas_qz; + packet.nas_qw = nas_qw; + packet.nas_bias_x = nas_bias_x; + packet.nas_bias_y = nas_bias_y; + packet.nas_bias_z = nas_bias_z; + packet.ref_pressure = ref_pressure; + packet.ref_temperature = ref_temperature; + packet.ref_latitude = ref_latitude; + packet.ref_longitude = ref_longitude; + packet.state = state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_NAS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_NAS_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_NAS_TM_MIN_LEN, MAVLINK_MSG_ID_NAS_TM_LEN, MAVLINK_MSG_ID_NAS_TM_CRC); +} + +/** + * @brief Encode a nas_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param nas_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_nas_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_nas_tm_t* nas_tm) +{ + return mavlink_msg_nas_tm_pack(system_id, component_id, msg, nas_tm->timestamp, nas_tm->state, nas_tm->nas_n, nas_tm->nas_e, nas_tm->nas_d, nas_tm->nas_vn, nas_tm->nas_ve, nas_tm->nas_vd, nas_tm->nas_qx, nas_tm->nas_qy, nas_tm->nas_qz, nas_tm->nas_qw, nas_tm->nas_bias_x, nas_tm->nas_bias_y, nas_tm->nas_bias_z, nas_tm->ref_pressure, nas_tm->ref_temperature, nas_tm->ref_latitude, nas_tm->ref_longitude); +} + +/** + * @brief Encode a nas_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param nas_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_nas_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_nas_tm_t* nas_tm) +{ + return mavlink_msg_nas_tm_pack_chan(system_id, component_id, chan, msg, nas_tm->timestamp, nas_tm->state, nas_tm->nas_n, nas_tm->nas_e, nas_tm->nas_d, nas_tm->nas_vn, nas_tm->nas_ve, nas_tm->nas_vd, nas_tm->nas_qx, nas_tm->nas_qy, nas_tm->nas_qz, nas_tm->nas_qw, nas_tm->nas_bias_x, nas_tm->nas_bias_y, nas_tm->nas_bias_z, nas_tm->ref_pressure, nas_tm->ref_temperature, nas_tm->ref_latitude, nas_tm->ref_longitude); +} + +/** + * @brief Send a nas_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param state NAS current state + * @param nas_n [deg] Navigation system estimated noth position + * @param nas_e [deg] Navigation system estimated east position + * @param nas_d [m] Navigation system estimated down position + * @param nas_vn [m/s] Navigation system estimated north velocity + * @param nas_ve [m/s] Navigation system estimated east velocity + * @param nas_vd [m/s] Navigation system estimated down velocity + * @param nas_qx [deg] Navigation system estimated attitude (qx) + * @param nas_qy [deg] Navigation system estimated attitude (qy) + * @param nas_qz [deg] Navigation system estimated attitude (qz) + * @param nas_qw [deg] Navigation system estimated attitude (qw) + * @param nas_bias_x Navigation system gyroscope bias on x axis + * @param nas_bias_y Navigation system gyroscope bias on y axis + * @param nas_bias_z Navigation system gyroscope bias on z axis + * @param ref_pressure [Pa] Calibration pressure + * @param ref_temperature [degC] Calibration temperature + * @param ref_latitude [deg] Calibration latitude + * @param ref_longitude [deg] Calibration longitude + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_nas_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t state, float nas_n, float nas_e, float nas_d, float nas_vn, float nas_ve, float nas_vd, float nas_qx, float nas_qy, float nas_qz, float nas_qw, float nas_bias_x, float nas_bias_y, float nas_bias_z, float ref_pressure, float ref_temperature, float ref_latitude, float ref_longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_NAS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, nas_n); + _mav_put_float(buf, 12, nas_e); + _mav_put_float(buf, 16, nas_d); + _mav_put_float(buf, 20, nas_vn); + _mav_put_float(buf, 24, nas_ve); + _mav_put_float(buf, 28, nas_vd); + _mav_put_float(buf, 32, nas_qx); + _mav_put_float(buf, 36, nas_qy); + _mav_put_float(buf, 40, nas_qz); + _mav_put_float(buf, 44, nas_qw); + _mav_put_float(buf, 48, nas_bias_x); + _mav_put_float(buf, 52, nas_bias_y); + _mav_put_float(buf, 56, nas_bias_z); + _mav_put_float(buf, 60, ref_pressure); + _mav_put_float(buf, 64, ref_temperature); + _mav_put_float(buf, 68, ref_latitude); + _mav_put_float(buf, 72, ref_longitude); + _mav_put_uint8_t(buf, 76, state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NAS_TM, buf, MAVLINK_MSG_ID_NAS_TM_MIN_LEN, MAVLINK_MSG_ID_NAS_TM_LEN, MAVLINK_MSG_ID_NAS_TM_CRC); +#else + mavlink_nas_tm_t packet; + packet.timestamp = timestamp; + packet.nas_n = nas_n; + packet.nas_e = nas_e; + packet.nas_d = nas_d; + packet.nas_vn = nas_vn; + packet.nas_ve = nas_ve; + packet.nas_vd = nas_vd; + packet.nas_qx = nas_qx; + packet.nas_qy = nas_qy; + packet.nas_qz = nas_qz; + packet.nas_qw = nas_qw; + packet.nas_bias_x = nas_bias_x; + packet.nas_bias_y = nas_bias_y; + packet.nas_bias_z = nas_bias_z; + packet.ref_pressure = ref_pressure; + packet.ref_temperature = ref_temperature; + packet.ref_latitude = ref_latitude; + packet.ref_longitude = ref_longitude; + packet.state = state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NAS_TM, (const char *)&packet, MAVLINK_MSG_ID_NAS_TM_MIN_LEN, MAVLINK_MSG_ID_NAS_TM_LEN, MAVLINK_MSG_ID_NAS_TM_CRC); +#endif +} + +/** + * @brief Send a nas_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_nas_tm_send_struct(mavlink_channel_t chan, const mavlink_nas_tm_t* nas_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_nas_tm_send(chan, nas_tm->timestamp, nas_tm->state, nas_tm->nas_n, nas_tm->nas_e, nas_tm->nas_d, nas_tm->nas_vn, nas_tm->nas_ve, nas_tm->nas_vd, nas_tm->nas_qx, nas_tm->nas_qy, nas_tm->nas_qz, nas_tm->nas_qw, nas_tm->nas_bias_x, nas_tm->nas_bias_y, nas_tm->nas_bias_z, nas_tm->ref_pressure, nas_tm->ref_temperature, nas_tm->ref_latitude, nas_tm->ref_longitude); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NAS_TM, (const char *)nas_tm, MAVLINK_MSG_ID_NAS_TM_MIN_LEN, MAVLINK_MSG_ID_NAS_TM_LEN, MAVLINK_MSG_ID_NAS_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_NAS_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_nas_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t state, float nas_n, float nas_e, float nas_d, float nas_vn, float nas_ve, float nas_vd, float nas_qx, float nas_qy, float nas_qz, float nas_qw, float nas_bias_x, float nas_bias_y, float nas_bias_z, float ref_pressure, float ref_temperature, float ref_latitude, float ref_longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, nas_n); + _mav_put_float(buf, 12, nas_e); + _mav_put_float(buf, 16, nas_d); + _mav_put_float(buf, 20, nas_vn); + _mav_put_float(buf, 24, nas_ve); + _mav_put_float(buf, 28, nas_vd); + _mav_put_float(buf, 32, nas_qx); + _mav_put_float(buf, 36, nas_qy); + _mav_put_float(buf, 40, nas_qz); + _mav_put_float(buf, 44, nas_qw); + _mav_put_float(buf, 48, nas_bias_x); + _mav_put_float(buf, 52, nas_bias_y); + _mav_put_float(buf, 56, nas_bias_z); + _mav_put_float(buf, 60, ref_pressure); + _mav_put_float(buf, 64, ref_temperature); + _mav_put_float(buf, 68, ref_latitude); + _mav_put_float(buf, 72, ref_longitude); + _mav_put_uint8_t(buf, 76, state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NAS_TM, buf, MAVLINK_MSG_ID_NAS_TM_MIN_LEN, MAVLINK_MSG_ID_NAS_TM_LEN, MAVLINK_MSG_ID_NAS_TM_CRC); +#else + mavlink_nas_tm_t *packet = (mavlink_nas_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->nas_n = nas_n; + packet->nas_e = nas_e; + packet->nas_d = nas_d; + packet->nas_vn = nas_vn; + packet->nas_ve = nas_ve; + packet->nas_vd = nas_vd; + packet->nas_qx = nas_qx; + packet->nas_qy = nas_qy; + packet->nas_qz = nas_qz; + packet->nas_qw = nas_qw; + packet->nas_bias_x = nas_bias_x; + packet->nas_bias_y = nas_bias_y; + packet->nas_bias_z = nas_bias_z; + packet->ref_pressure = ref_pressure; + packet->ref_temperature = ref_temperature; + packet->ref_latitude = ref_latitude; + packet->ref_longitude = ref_longitude; + packet->state = state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_NAS_TM, (const char *)packet, MAVLINK_MSG_ID_NAS_TM_MIN_LEN, MAVLINK_MSG_ID_NAS_TM_LEN, MAVLINK_MSG_ID_NAS_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE NAS_TM UNPACKING + + +/** + * @brief Get field timestamp from nas_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_nas_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field state from nas_tm message + * + * @return NAS current state + */ +static inline uint8_t mavlink_msg_nas_tm_get_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 76); +} + +/** + * @brief Get field nas_n from nas_tm message + * + * @return [deg] Navigation system estimated noth position + */ +static inline float mavlink_msg_nas_tm_get_nas_n(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field nas_e from nas_tm message + * + * @return [deg] Navigation system estimated east position + */ +static inline float mavlink_msg_nas_tm_get_nas_e(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field nas_d from nas_tm message + * + * @return [m] Navigation system estimated down position + */ +static inline float mavlink_msg_nas_tm_get_nas_d(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field nas_vn from nas_tm message + * + * @return [m/s] Navigation system estimated north velocity + */ +static inline float mavlink_msg_nas_tm_get_nas_vn(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field nas_ve from nas_tm message + * + * @return [m/s] Navigation system estimated east velocity + */ +static inline float mavlink_msg_nas_tm_get_nas_ve(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Get field nas_vd from nas_tm message + * + * @return [m/s] Navigation system estimated down velocity + */ +static inline float mavlink_msg_nas_tm_get_nas_vd(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field nas_qx from nas_tm message + * + * @return [deg] Navigation system estimated attitude (qx) + */ +static inline float mavlink_msg_nas_tm_get_nas_qx(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field nas_qy from nas_tm message + * + * @return [deg] Navigation system estimated attitude (qy) + */ +static inline float mavlink_msg_nas_tm_get_nas_qy(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Get field nas_qz from nas_tm message + * + * @return [deg] Navigation system estimated attitude (qz) + */ +static inline float mavlink_msg_nas_tm_get_nas_qz(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Get field nas_qw from nas_tm message + * + * @return [deg] Navigation system estimated attitude (qw) + */ +static inline float mavlink_msg_nas_tm_get_nas_qw(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 44); +} + +/** + * @brief Get field nas_bias_x from nas_tm message + * + * @return Navigation system gyroscope bias on x axis + */ +static inline float mavlink_msg_nas_tm_get_nas_bias_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 48); +} + +/** + * @brief Get field nas_bias_y from nas_tm message + * + * @return Navigation system gyroscope bias on y axis + */ +static inline float mavlink_msg_nas_tm_get_nas_bias_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 52); +} + +/** + * @brief Get field nas_bias_z from nas_tm message + * + * @return Navigation system gyroscope bias on z axis + */ +static inline float mavlink_msg_nas_tm_get_nas_bias_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 56); +} + +/** + * @brief Get field ref_pressure from nas_tm message + * + * @return [Pa] Calibration pressure + */ +static inline float mavlink_msg_nas_tm_get_ref_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 60); +} + +/** + * @brief Get field ref_temperature from nas_tm message + * + * @return [degC] Calibration temperature + */ +static inline float mavlink_msg_nas_tm_get_ref_temperature(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 64); +} + +/** + * @brief Get field ref_latitude from nas_tm message + * + * @return [deg] Calibration latitude + */ +static inline float mavlink_msg_nas_tm_get_ref_latitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 68); +} + +/** + * @brief Get field ref_longitude from nas_tm message + * + * @return [deg] Calibration longitude + */ +static inline float mavlink_msg_nas_tm_get_ref_longitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 72); +} + +/** + * @brief Decode a nas_tm message into a struct + * + * @param msg The message to decode + * @param nas_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_nas_tm_decode(const mavlink_message_t* msg, mavlink_nas_tm_t* nas_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + nas_tm->timestamp = mavlink_msg_nas_tm_get_timestamp(msg); + nas_tm->nas_n = mavlink_msg_nas_tm_get_nas_n(msg); + nas_tm->nas_e = mavlink_msg_nas_tm_get_nas_e(msg); + nas_tm->nas_d = mavlink_msg_nas_tm_get_nas_d(msg); + nas_tm->nas_vn = mavlink_msg_nas_tm_get_nas_vn(msg); + nas_tm->nas_ve = mavlink_msg_nas_tm_get_nas_ve(msg); + nas_tm->nas_vd = mavlink_msg_nas_tm_get_nas_vd(msg); + nas_tm->nas_qx = mavlink_msg_nas_tm_get_nas_qx(msg); + nas_tm->nas_qy = mavlink_msg_nas_tm_get_nas_qy(msg); + nas_tm->nas_qz = mavlink_msg_nas_tm_get_nas_qz(msg); + nas_tm->nas_qw = mavlink_msg_nas_tm_get_nas_qw(msg); + nas_tm->nas_bias_x = mavlink_msg_nas_tm_get_nas_bias_x(msg); + nas_tm->nas_bias_y = mavlink_msg_nas_tm_get_nas_bias_y(msg); + nas_tm->nas_bias_z = mavlink_msg_nas_tm_get_nas_bias_z(msg); + nas_tm->ref_pressure = mavlink_msg_nas_tm_get_ref_pressure(msg); + nas_tm->ref_temperature = mavlink_msg_nas_tm_get_ref_temperature(msg); + nas_tm->ref_latitude = mavlink_msg_nas_tm_get_ref_latitude(msg); + nas_tm->ref_longitude = mavlink_msg_nas_tm_get_ref_longitude(msg); + nas_tm->state = mavlink_msg_nas_tm_get_state(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_NAS_TM_LEN? msg->len : MAVLINK_MSG_ID_NAS_TM_LEN; + memset(nas_tm, 0, MAVLINK_MSG_ID_NAS_TM_LEN); + memcpy(nas_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_payload_flight_tm.h b/mavlink_lib/lyra/mavlink_msg_payload_flight_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..bfe077c3582106f59cfe4d17c86e22f178d0d299 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_payload_flight_tm.h @@ -0,0 +1,1313 @@ +#pragma once +// MESSAGE PAYLOAD_FLIGHT_TM PACKING + +#define MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM 209 + + +typedef struct __mavlink_payload_flight_tm_t { + uint64_t timestamp; /*< [us] Timestamp in microseconds*/ + float pressure_digi; /*< [Pa] Pressure from digital sensor*/ + float pressure_static; /*< [Pa] Pressure from static port*/ + float airspeed_pitot; /*< [m/s] Pitot airspeed*/ + float altitude_agl; /*< [m] Altitude above ground level*/ + float acc_x; /*< [m/s^2] Acceleration on X axis (body)*/ + float acc_y; /*< [m/s^2] Acceleration on Y axis (body)*/ + float acc_z; /*< [m/s^2] Acceleration on Z axis (body)*/ + float gyro_x; /*< [rad/s] Angular speed on X axis (body)*/ + float gyro_y; /*< [rad/s] Angular speed on Y axis (body)*/ + float gyro_z; /*< [rad/s] Angular speed on Z axis (body)*/ + float mag_x; /*< [uT] Magnetic field on X axis (body)*/ + float mag_y; /*< [uT] Magnetic field on Y axis (body)*/ + float mag_z; /*< [uT] Magnetic field on Z axis (body)*/ + float gps_lat; /*< [deg] Latitude*/ + float gps_lon; /*< [deg] Longitude*/ + float gps_alt; /*< [m] GPS Altitude*/ + float left_servo_angle; /*< [deg] Left servo motor angle*/ + float right_servo_angle; /*< [deg] Right servo motor angle*/ + float nas_n; /*< [deg] Navigation system estimated noth position*/ + float nas_e; /*< [deg] Navigation system estimated east position*/ + float nas_d; /*< [m] Navigation system estimated down position*/ + float nas_vn; /*< [m/s] Navigation system estimated north velocity*/ + float nas_ve; /*< [m/s] Navigation system estimated east velocity*/ + float nas_vd; /*< [m/s] Navigation system estimated down velocity*/ + float nas_qx; /*< [deg] Navigation system estimated attitude (qx)*/ + float nas_qy; /*< [deg] Navigation system estimated attitude (qy)*/ + float nas_qz; /*< [deg] Navigation system estimated attitude (qz)*/ + float nas_qw; /*< [deg] Navigation system estimated attitude (qw)*/ + float nas_bias_x; /*< Navigation system gyroscope bias on x axis*/ + float nas_bias_y; /*< Navigation system gyroscope bias on y axis*/ + float nas_bias_z; /*< Navigation system gyroscope bias on z axis*/ + float wes_n; /*< [m/s] Wind estimated north velocity*/ + float wes_e; /*< [m/s] Wind estimated east velocity*/ + float battery_voltage; /*< [V] Battery voltage*/ + float cam_battery_voltage; /*< [V] Camera battery voltage*/ + float current_consumption; /*< [A] Battery current*/ + float temperature; /*< [degC] Temperature*/ + uint8_t fmm_state; /*< Flight Mode Manager State*/ + uint8_t nas_state; /*< Navigation System FSM State*/ + uint8_t wes_state; /*< Wind Estimation System FSM State*/ + uint8_t gps_fix; /*< GPS fix (1 = fix, 0 = no fix)*/ + uint8_t pin_nosecone; /*< Nosecone pin status (1 = connected, 0 = disconnected)*/ + uint8_t cutter_presence; /*< Cutter presence status (1 = present, 0 = missing)*/ + int8_t logger_error; /*< Logger error (0 = no error)*/ +} mavlink_payload_flight_tm_t; + +#define MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN 163 +#define MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN 163 +#define MAVLINK_MSG_ID_209_LEN 163 +#define MAVLINK_MSG_ID_209_MIN_LEN 163 + +#define MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_CRC 84 +#define MAVLINK_MSG_ID_209_CRC 84 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_PAYLOAD_FLIGHT_TM { \ + 209, \ + "PAYLOAD_FLIGHT_TM", \ + 45, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_payload_flight_tm_t, timestamp) }, \ + { "fmm_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 156, offsetof(mavlink_payload_flight_tm_t, fmm_state) }, \ + { "nas_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 157, offsetof(mavlink_payload_flight_tm_t, nas_state) }, \ + { "wes_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 158, offsetof(mavlink_payload_flight_tm_t, wes_state) }, \ + { "pressure_digi", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_payload_flight_tm_t, pressure_digi) }, \ + { "pressure_static", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_payload_flight_tm_t, pressure_static) }, \ + { "airspeed_pitot", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_payload_flight_tm_t, airspeed_pitot) }, \ + { "altitude_agl", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_payload_flight_tm_t, altitude_agl) }, \ + { "acc_x", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_payload_flight_tm_t, acc_x) }, \ + { "acc_y", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_payload_flight_tm_t, acc_y) }, \ + { "acc_z", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_payload_flight_tm_t, acc_z) }, \ + { "gyro_x", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_payload_flight_tm_t, gyro_x) }, \ + { "gyro_y", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_payload_flight_tm_t, gyro_y) }, \ + { "gyro_z", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_payload_flight_tm_t, gyro_z) }, \ + { "mag_x", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_payload_flight_tm_t, mag_x) }, \ + { "mag_y", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_payload_flight_tm_t, mag_y) }, \ + { "mag_z", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_payload_flight_tm_t, mag_z) }, \ + { "gps_fix", NULL, MAVLINK_TYPE_UINT8_T, 0, 159, offsetof(mavlink_payload_flight_tm_t, gps_fix) }, \ + { "gps_lat", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_payload_flight_tm_t, gps_lat) }, \ + { "gps_lon", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_payload_flight_tm_t, gps_lon) }, \ + { "gps_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_payload_flight_tm_t, gps_alt) }, \ + { "left_servo_angle", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_payload_flight_tm_t, left_servo_angle) }, \ + { "right_servo_angle", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_payload_flight_tm_t, right_servo_angle) }, \ + { "nas_n", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_payload_flight_tm_t, nas_n) }, \ + { "nas_e", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_payload_flight_tm_t, nas_e) }, \ + { "nas_d", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_payload_flight_tm_t, nas_d) }, \ + { "nas_vn", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_payload_flight_tm_t, nas_vn) }, \ + { "nas_ve", NULL, MAVLINK_TYPE_FLOAT, 0, 96, offsetof(mavlink_payload_flight_tm_t, nas_ve) }, \ + { "nas_vd", NULL, MAVLINK_TYPE_FLOAT, 0, 100, offsetof(mavlink_payload_flight_tm_t, nas_vd) }, \ + { "nas_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 104, offsetof(mavlink_payload_flight_tm_t, nas_qx) }, \ + { "nas_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 108, offsetof(mavlink_payload_flight_tm_t, nas_qy) }, \ + { "nas_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 112, offsetof(mavlink_payload_flight_tm_t, nas_qz) }, \ + { "nas_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 116, offsetof(mavlink_payload_flight_tm_t, nas_qw) }, \ + { "nas_bias_x", NULL, MAVLINK_TYPE_FLOAT, 0, 120, offsetof(mavlink_payload_flight_tm_t, nas_bias_x) }, \ + { "nas_bias_y", NULL, MAVLINK_TYPE_FLOAT, 0, 124, offsetof(mavlink_payload_flight_tm_t, nas_bias_y) }, \ + { "nas_bias_z", NULL, MAVLINK_TYPE_FLOAT, 0, 128, offsetof(mavlink_payload_flight_tm_t, nas_bias_z) }, \ + { "wes_n", NULL, MAVLINK_TYPE_FLOAT, 0, 132, offsetof(mavlink_payload_flight_tm_t, wes_n) }, \ + { "wes_e", NULL, MAVLINK_TYPE_FLOAT, 0, 136, offsetof(mavlink_payload_flight_tm_t, wes_e) }, \ + { "pin_nosecone", NULL, MAVLINK_TYPE_UINT8_T, 0, 160, offsetof(mavlink_payload_flight_tm_t, pin_nosecone) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 140, offsetof(mavlink_payload_flight_tm_t, battery_voltage) }, \ + { "cam_battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 144, offsetof(mavlink_payload_flight_tm_t, cam_battery_voltage) }, \ + { "current_consumption", NULL, MAVLINK_TYPE_FLOAT, 0, 148, offsetof(mavlink_payload_flight_tm_t, current_consumption) }, \ + { "cutter_presence", NULL, MAVLINK_TYPE_UINT8_T, 0, 161, offsetof(mavlink_payload_flight_tm_t, cutter_presence) }, \ + { "temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 152, offsetof(mavlink_payload_flight_tm_t, temperature) }, \ + { "logger_error", NULL, MAVLINK_TYPE_INT8_T, 0, 162, offsetof(mavlink_payload_flight_tm_t, logger_error) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_PAYLOAD_FLIGHT_TM { \ + "PAYLOAD_FLIGHT_TM", \ + 45, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_payload_flight_tm_t, timestamp) }, \ + { "fmm_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 156, offsetof(mavlink_payload_flight_tm_t, fmm_state) }, \ + { "nas_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 157, offsetof(mavlink_payload_flight_tm_t, nas_state) }, \ + { "wes_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 158, offsetof(mavlink_payload_flight_tm_t, wes_state) }, \ + { "pressure_digi", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_payload_flight_tm_t, pressure_digi) }, \ + { "pressure_static", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_payload_flight_tm_t, pressure_static) }, \ + { "airspeed_pitot", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_payload_flight_tm_t, airspeed_pitot) }, \ + { "altitude_agl", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_payload_flight_tm_t, altitude_agl) }, \ + { "acc_x", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_payload_flight_tm_t, acc_x) }, \ + { "acc_y", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_payload_flight_tm_t, acc_y) }, \ + { "acc_z", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_payload_flight_tm_t, acc_z) }, \ + { "gyro_x", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_payload_flight_tm_t, gyro_x) }, \ + { "gyro_y", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_payload_flight_tm_t, gyro_y) }, \ + { "gyro_z", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_payload_flight_tm_t, gyro_z) }, \ + { "mag_x", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_payload_flight_tm_t, mag_x) }, \ + { "mag_y", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_payload_flight_tm_t, mag_y) }, \ + { "mag_z", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_payload_flight_tm_t, mag_z) }, \ + { "gps_fix", NULL, MAVLINK_TYPE_UINT8_T, 0, 159, offsetof(mavlink_payload_flight_tm_t, gps_fix) }, \ + { "gps_lat", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_payload_flight_tm_t, gps_lat) }, \ + { "gps_lon", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_payload_flight_tm_t, gps_lon) }, \ + { "gps_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_payload_flight_tm_t, gps_alt) }, \ + { "left_servo_angle", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_payload_flight_tm_t, left_servo_angle) }, \ + { "right_servo_angle", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_payload_flight_tm_t, right_servo_angle) }, \ + { "nas_n", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_payload_flight_tm_t, nas_n) }, \ + { "nas_e", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_payload_flight_tm_t, nas_e) }, \ + { "nas_d", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_payload_flight_tm_t, nas_d) }, \ + { "nas_vn", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_payload_flight_tm_t, nas_vn) }, \ + { "nas_ve", NULL, MAVLINK_TYPE_FLOAT, 0, 96, offsetof(mavlink_payload_flight_tm_t, nas_ve) }, \ + { "nas_vd", NULL, MAVLINK_TYPE_FLOAT, 0, 100, offsetof(mavlink_payload_flight_tm_t, nas_vd) }, \ + { "nas_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 104, offsetof(mavlink_payload_flight_tm_t, nas_qx) }, \ + { "nas_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 108, offsetof(mavlink_payload_flight_tm_t, nas_qy) }, \ + { "nas_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 112, offsetof(mavlink_payload_flight_tm_t, nas_qz) }, \ + { "nas_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 116, offsetof(mavlink_payload_flight_tm_t, nas_qw) }, \ + { "nas_bias_x", NULL, MAVLINK_TYPE_FLOAT, 0, 120, offsetof(mavlink_payload_flight_tm_t, nas_bias_x) }, \ + { "nas_bias_y", NULL, MAVLINK_TYPE_FLOAT, 0, 124, offsetof(mavlink_payload_flight_tm_t, nas_bias_y) }, \ + { "nas_bias_z", NULL, MAVLINK_TYPE_FLOAT, 0, 128, offsetof(mavlink_payload_flight_tm_t, nas_bias_z) }, \ + { "wes_n", NULL, MAVLINK_TYPE_FLOAT, 0, 132, offsetof(mavlink_payload_flight_tm_t, wes_n) }, \ + { "wes_e", NULL, MAVLINK_TYPE_FLOAT, 0, 136, offsetof(mavlink_payload_flight_tm_t, wes_e) }, \ + { "pin_nosecone", NULL, MAVLINK_TYPE_UINT8_T, 0, 160, offsetof(mavlink_payload_flight_tm_t, pin_nosecone) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 140, offsetof(mavlink_payload_flight_tm_t, battery_voltage) }, \ + { "cam_battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 144, offsetof(mavlink_payload_flight_tm_t, cam_battery_voltage) }, \ + { "current_consumption", NULL, MAVLINK_TYPE_FLOAT, 0, 148, offsetof(mavlink_payload_flight_tm_t, current_consumption) }, \ + { "cutter_presence", NULL, MAVLINK_TYPE_UINT8_T, 0, 161, offsetof(mavlink_payload_flight_tm_t, cutter_presence) }, \ + { "temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 152, offsetof(mavlink_payload_flight_tm_t, temperature) }, \ + { "logger_error", NULL, MAVLINK_TYPE_INT8_T, 0, 162, offsetof(mavlink_payload_flight_tm_t, logger_error) }, \ + } \ +} +#endif + +/** + * @brief Pack a payload_flight_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] Timestamp in microseconds + * @param fmm_state Flight Mode Manager State + * @param nas_state Navigation System FSM State + * @param wes_state Wind Estimation System FSM State + * @param pressure_digi [Pa] Pressure from digital sensor + * @param pressure_static [Pa] Pressure from static port + * @param airspeed_pitot [m/s] Pitot airspeed + * @param altitude_agl [m] Altitude above ground level + * @param acc_x [m/s^2] Acceleration on X axis (body) + * @param acc_y [m/s^2] Acceleration on Y axis (body) + * @param acc_z [m/s^2] Acceleration on Z axis (body) + * @param gyro_x [rad/s] Angular speed on X axis (body) + * @param gyro_y [rad/s] Angular speed on Y axis (body) + * @param gyro_z [rad/s] Angular speed on Z axis (body) + * @param mag_x [uT] Magnetic field on X axis (body) + * @param mag_y [uT] Magnetic field on Y axis (body) + * @param mag_z [uT] Magnetic field on Z axis (body) + * @param gps_fix GPS fix (1 = fix, 0 = no fix) + * @param gps_lat [deg] Latitude + * @param gps_lon [deg] Longitude + * @param gps_alt [m] GPS Altitude + * @param left_servo_angle [deg] Left servo motor angle + * @param right_servo_angle [deg] Right servo motor angle + * @param nas_n [deg] Navigation system estimated noth position + * @param nas_e [deg] Navigation system estimated east position + * @param nas_d [m] Navigation system estimated down position + * @param nas_vn [m/s] Navigation system estimated north velocity + * @param nas_ve [m/s] Navigation system estimated east velocity + * @param nas_vd [m/s] Navigation system estimated down velocity + * @param nas_qx [deg] Navigation system estimated attitude (qx) + * @param nas_qy [deg] Navigation system estimated attitude (qy) + * @param nas_qz [deg] Navigation system estimated attitude (qz) + * @param nas_qw [deg] Navigation system estimated attitude (qw) + * @param nas_bias_x Navigation system gyroscope bias on x axis + * @param nas_bias_y Navigation system gyroscope bias on y axis + * @param nas_bias_z Navigation system gyroscope bias on z axis + * @param wes_n [m/s] Wind estimated north velocity + * @param wes_e [m/s] Wind estimated east velocity + * @param pin_nosecone Nosecone pin status (1 = connected, 0 = disconnected) + * @param battery_voltage [V] Battery voltage + * @param cam_battery_voltage [V] Camera battery voltage + * @param current_consumption [A] Battery current + * @param cutter_presence Cutter presence status (1 = present, 0 = missing) + * @param temperature [degC] Temperature + * @param logger_error Logger error (0 = no error) + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_payload_flight_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t fmm_state, uint8_t nas_state, uint8_t wes_state, float pressure_digi, float pressure_static, float airspeed_pitot, float altitude_agl, float acc_x, float acc_y, float acc_z, float gyro_x, float gyro_y, float gyro_z, float mag_x, float mag_y, float mag_z, uint8_t gps_fix, float gps_lat, float gps_lon, float gps_alt, float left_servo_angle, float right_servo_angle, float nas_n, float nas_e, float nas_d, float nas_vn, float nas_ve, float nas_vd, float nas_qx, float nas_qy, float nas_qz, float nas_qw, float nas_bias_x, float nas_bias_y, float nas_bias_z, float wes_n, float wes_e, uint8_t pin_nosecone, float battery_voltage, float cam_battery_voltage, float current_consumption, uint8_t cutter_presence, float temperature, int8_t logger_error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure_digi); + _mav_put_float(buf, 12, pressure_static); + _mav_put_float(buf, 16, airspeed_pitot); + _mav_put_float(buf, 20, altitude_agl); + _mav_put_float(buf, 24, acc_x); + _mav_put_float(buf, 28, acc_y); + _mav_put_float(buf, 32, acc_z); + _mav_put_float(buf, 36, gyro_x); + _mav_put_float(buf, 40, gyro_y); + _mav_put_float(buf, 44, gyro_z); + _mav_put_float(buf, 48, mag_x); + _mav_put_float(buf, 52, mag_y); + _mav_put_float(buf, 56, mag_z); + _mav_put_float(buf, 60, gps_lat); + _mav_put_float(buf, 64, gps_lon); + _mav_put_float(buf, 68, gps_alt); + _mav_put_float(buf, 72, left_servo_angle); + _mav_put_float(buf, 76, right_servo_angle); + _mav_put_float(buf, 80, nas_n); + _mav_put_float(buf, 84, nas_e); + _mav_put_float(buf, 88, nas_d); + _mav_put_float(buf, 92, nas_vn); + _mav_put_float(buf, 96, nas_ve); + _mav_put_float(buf, 100, nas_vd); + _mav_put_float(buf, 104, nas_qx); + _mav_put_float(buf, 108, nas_qy); + _mav_put_float(buf, 112, nas_qz); + _mav_put_float(buf, 116, nas_qw); + _mav_put_float(buf, 120, nas_bias_x); + _mav_put_float(buf, 124, nas_bias_y); + _mav_put_float(buf, 128, nas_bias_z); + _mav_put_float(buf, 132, wes_n); + _mav_put_float(buf, 136, wes_e); + _mav_put_float(buf, 140, battery_voltage); + _mav_put_float(buf, 144, cam_battery_voltage); + _mav_put_float(buf, 148, current_consumption); + _mav_put_float(buf, 152, temperature); + _mav_put_uint8_t(buf, 156, fmm_state); + _mav_put_uint8_t(buf, 157, nas_state); + _mav_put_uint8_t(buf, 158, wes_state); + _mav_put_uint8_t(buf, 159, gps_fix); + _mav_put_uint8_t(buf, 160, pin_nosecone); + _mav_put_uint8_t(buf, 161, cutter_presence); + _mav_put_int8_t(buf, 162, logger_error); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN); +#else + mavlink_payload_flight_tm_t packet; + packet.timestamp = timestamp; + packet.pressure_digi = pressure_digi; + packet.pressure_static = pressure_static; + packet.airspeed_pitot = airspeed_pitot; + packet.altitude_agl = altitude_agl; + packet.acc_x = acc_x; + packet.acc_y = acc_y; + packet.acc_z = acc_z; + packet.gyro_x = gyro_x; + packet.gyro_y = gyro_y; + packet.gyro_z = gyro_z; + packet.mag_x = mag_x; + packet.mag_y = mag_y; + packet.mag_z = mag_z; + packet.gps_lat = gps_lat; + packet.gps_lon = gps_lon; + packet.gps_alt = gps_alt; + packet.left_servo_angle = left_servo_angle; + packet.right_servo_angle = right_servo_angle; + packet.nas_n = nas_n; + packet.nas_e = nas_e; + packet.nas_d = nas_d; + packet.nas_vn = nas_vn; + packet.nas_ve = nas_ve; + packet.nas_vd = nas_vd; + packet.nas_qx = nas_qx; + packet.nas_qy = nas_qy; + packet.nas_qz = nas_qz; + packet.nas_qw = nas_qw; + packet.nas_bias_x = nas_bias_x; + packet.nas_bias_y = nas_bias_y; + packet.nas_bias_z = nas_bias_z; + packet.wes_n = wes_n; + packet.wes_e = wes_e; + packet.battery_voltage = battery_voltage; + packet.cam_battery_voltage = cam_battery_voltage; + packet.current_consumption = current_consumption; + packet.temperature = temperature; + packet.fmm_state = fmm_state; + packet.nas_state = nas_state; + packet.wes_state = wes_state; + packet.gps_fix = gps_fix; + packet.pin_nosecone = pin_nosecone; + packet.cutter_presence = cutter_presence; + packet.logger_error = logger_error; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_CRC); +} + +/** + * @brief Pack a payload_flight_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] Timestamp in microseconds + * @param fmm_state Flight Mode Manager State + * @param nas_state Navigation System FSM State + * @param wes_state Wind Estimation System FSM State + * @param pressure_digi [Pa] Pressure from digital sensor + * @param pressure_static [Pa] Pressure from static port + * @param airspeed_pitot [m/s] Pitot airspeed + * @param altitude_agl [m] Altitude above ground level + * @param acc_x [m/s^2] Acceleration on X axis (body) + * @param acc_y [m/s^2] Acceleration on Y axis (body) + * @param acc_z [m/s^2] Acceleration on Z axis (body) + * @param gyro_x [rad/s] Angular speed on X axis (body) + * @param gyro_y [rad/s] Angular speed on Y axis (body) + * @param gyro_z [rad/s] Angular speed on Z axis (body) + * @param mag_x [uT] Magnetic field on X axis (body) + * @param mag_y [uT] Magnetic field on Y axis (body) + * @param mag_z [uT] Magnetic field on Z axis (body) + * @param gps_fix GPS fix (1 = fix, 0 = no fix) + * @param gps_lat [deg] Latitude + * @param gps_lon [deg] Longitude + * @param gps_alt [m] GPS Altitude + * @param left_servo_angle [deg] Left servo motor angle + * @param right_servo_angle [deg] Right servo motor angle + * @param nas_n [deg] Navigation system estimated noth position + * @param nas_e [deg] Navigation system estimated east position + * @param nas_d [m] Navigation system estimated down position + * @param nas_vn [m/s] Navigation system estimated north velocity + * @param nas_ve [m/s] Navigation system estimated east velocity + * @param nas_vd [m/s] Navigation system estimated down velocity + * @param nas_qx [deg] Navigation system estimated attitude (qx) + * @param nas_qy [deg] Navigation system estimated attitude (qy) + * @param nas_qz [deg] Navigation system estimated attitude (qz) + * @param nas_qw [deg] Navigation system estimated attitude (qw) + * @param nas_bias_x Navigation system gyroscope bias on x axis + * @param nas_bias_y Navigation system gyroscope bias on y axis + * @param nas_bias_z Navigation system gyroscope bias on z axis + * @param wes_n [m/s] Wind estimated north velocity + * @param wes_e [m/s] Wind estimated east velocity + * @param pin_nosecone Nosecone pin status (1 = connected, 0 = disconnected) + * @param battery_voltage [V] Battery voltage + * @param cam_battery_voltage [V] Camera battery voltage + * @param current_consumption [A] Battery current + * @param cutter_presence Cutter presence status (1 = present, 0 = missing) + * @param temperature [degC] Temperature + * @param logger_error Logger error (0 = no error) + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_payload_flight_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t fmm_state,uint8_t nas_state,uint8_t wes_state,float pressure_digi,float pressure_static,float airspeed_pitot,float altitude_agl,float acc_x,float acc_y,float acc_z,float gyro_x,float gyro_y,float gyro_z,float mag_x,float mag_y,float mag_z,uint8_t gps_fix,float gps_lat,float gps_lon,float gps_alt,float left_servo_angle,float right_servo_angle,float nas_n,float nas_e,float nas_d,float nas_vn,float nas_ve,float nas_vd,float nas_qx,float nas_qy,float nas_qz,float nas_qw,float nas_bias_x,float nas_bias_y,float nas_bias_z,float wes_n,float wes_e,uint8_t pin_nosecone,float battery_voltage,float cam_battery_voltage,float current_consumption,uint8_t cutter_presence,float temperature,int8_t logger_error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure_digi); + _mav_put_float(buf, 12, pressure_static); + _mav_put_float(buf, 16, airspeed_pitot); + _mav_put_float(buf, 20, altitude_agl); + _mav_put_float(buf, 24, acc_x); + _mav_put_float(buf, 28, acc_y); + _mav_put_float(buf, 32, acc_z); + _mav_put_float(buf, 36, gyro_x); + _mav_put_float(buf, 40, gyro_y); + _mav_put_float(buf, 44, gyro_z); + _mav_put_float(buf, 48, mag_x); + _mav_put_float(buf, 52, mag_y); + _mav_put_float(buf, 56, mag_z); + _mav_put_float(buf, 60, gps_lat); + _mav_put_float(buf, 64, gps_lon); + _mav_put_float(buf, 68, gps_alt); + _mav_put_float(buf, 72, left_servo_angle); + _mav_put_float(buf, 76, right_servo_angle); + _mav_put_float(buf, 80, nas_n); + _mav_put_float(buf, 84, nas_e); + _mav_put_float(buf, 88, nas_d); + _mav_put_float(buf, 92, nas_vn); + _mav_put_float(buf, 96, nas_ve); + _mav_put_float(buf, 100, nas_vd); + _mav_put_float(buf, 104, nas_qx); + _mav_put_float(buf, 108, nas_qy); + _mav_put_float(buf, 112, nas_qz); + _mav_put_float(buf, 116, nas_qw); + _mav_put_float(buf, 120, nas_bias_x); + _mav_put_float(buf, 124, nas_bias_y); + _mav_put_float(buf, 128, nas_bias_z); + _mav_put_float(buf, 132, wes_n); + _mav_put_float(buf, 136, wes_e); + _mav_put_float(buf, 140, battery_voltage); + _mav_put_float(buf, 144, cam_battery_voltage); + _mav_put_float(buf, 148, current_consumption); + _mav_put_float(buf, 152, temperature); + _mav_put_uint8_t(buf, 156, fmm_state); + _mav_put_uint8_t(buf, 157, nas_state); + _mav_put_uint8_t(buf, 158, wes_state); + _mav_put_uint8_t(buf, 159, gps_fix); + _mav_put_uint8_t(buf, 160, pin_nosecone); + _mav_put_uint8_t(buf, 161, cutter_presence); + _mav_put_int8_t(buf, 162, logger_error); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN); +#else + mavlink_payload_flight_tm_t packet; + packet.timestamp = timestamp; + packet.pressure_digi = pressure_digi; + packet.pressure_static = pressure_static; + packet.airspeed_pitot = airspeed_pitot; + packet.altitude_agl = altitude_agl; + packet.acc_x = acc_x; + packet.acc_y = acc_y; + packet.acc_z = acc_z; + packet.gyro_x = gyro_x; + packet.gyro_y = gyro_y; + packet.gyro_z = gyro_z; + packet.mag_x = mag_x; + packet.mag_y = mag_y; + packet.mag_z = mag_z; + packet.gps_lat = gps_lat; + packet.gps_lon = gps_lon; + packet.gps_alt = gps_alt; + packet.left_servo_angle = left_servo_angle; + packet.right_servo_angle = right_servo_angle; + packet.nas_n = nas_n; + packet.nas_e = nas_e; + packet.nas_d = nas_d; + packet.nas_vn = nas_vn; + packet.nas_ve = nas_ve; + packet.nas_vd = nas_vd; + packet.nas_qx = nas_qx; + packet.nas_qy = nas_qy; + packet.nas_qz = nas_qz; + packet.nas_qw = nas_qw; + packet.nas_bias_x = nas_bias_x; + packet.nas_bias_y = nas_bias_y; + packet.nas_bias_z = nas_bias_z; + packet.wes_n = wes_n; + packet.wes_e = wes_e; + packet.battery_voltage = battery_voltage; + packet.cam_battery_voltage = cam_battery_voltage; + packet.current_consumption = current_consumption; + packet.temperature = temperature; + packet.fmm_state = fmm_state; + packet.nas_state = nas_state; + packet.wes_state = wes_state; + packet.gps_fix = gps_fix; + packet.pin_nosecone = pin_nosecone; + packet.cutter_presence = cutter_presence; + packet.logger_error = logger_error; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_CRC); +} + +/** + * @brief Encode a payload_flight_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param payload_flight_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_payload_flight_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_payload_flight_tm_t* payload_flight_tm) +{ + return mavlink_msg_payload_flight_tm_pack(system_id, component_id, msg, payload_flight_tm->timestamp, payload_flight_tm->fmm_state, payload_flight_tm->nas_state, payload_flight_tm->wes_state, payload_flight_tm->pressure_digi, payload_flight_tm->pressure_static, payload_flight_tm->airspeed_pitot, payload_flight_tm->altitude_agl, payload_flight_tm->acc_x, payload_flight_tm->acc_y, payload_flight_tm->acc_z, payload_flight_tm->gyro_x, payload_flight_tm->gyro_y, payload_flight_tm->gyro_z, payload_flight_tm->mag_x, payload_flight_tm->mag_y, payload_flight_tm->mag_z, payload_flight_tm->gps_fix, payload_flight_tm->gps_lat, payload_flight_tm->gps_lon, payload_flight_tm->gps_alt, payload_flight_tm->left_servo_angle, payload_flight_tm->right_servo_angle, payload_flight_tm->nas_n, payload_flight_tm->nas_e, payload_flight_tm->nas_d, payload_flight_tm->nas_vn, payload_flight_tm->nas_ve, payload_flight_tm->nas_vd, payload_flight_tm->nas_qx, payload_flight_tm->nas_qy, payload_flight_tm->nas_qz, payload_flight_tm->nas_qw, payload_flight_tm->nas_bias_x, payload_flight_tm->nas_bias_y, payload_flight_tm->nas_bias_z, payload_flight_tm->wes_n, payload_flight_tm->wes_e, payload_flight_tm->pin_nosecone, payload_flight_tm->battery_voltage, payload_flight_tm->cam_battery_voltage, payload_flight_tm->current_consumption, payload_flight_tm->cutter_presence, payload_flight_tm->temperature, payload_flight_tm->logger_error); +} + +/** + * @brief Encode a payload_flight_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param payload_flight_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_payload_flight_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_payload_flight_tm_t* payload_flight_tm) +{ + return mavlink_msg_payload_flight_tm_pack_chan(system_id, component_id, chan, msg, payload_flight_tm->timestamp, payload_flight_tm->fmm_state, payload_flight_tm->nas_state, payload_flight_tm->wes_state, payload_flight_tm->pressure_digi, payload_flight_tm->pressure_static, payload_flight_tm->airspeed_pitot, payload_flight_tm->altitude_agl, payload_flight_tm->acc_x, payload_flight_tm->acc_y, payload_flight_tm->acc_z, payload_flight_tm->gyro_x, payload_flight_tm->gyro_y, payload_flight_tm->gyro_z, payload_flight_tm->mag_x, payload_flight_tm->mag_y, payload_flight_tm->mag_z, payload_flight_tm->gps_fix, payload_flight_tm->gps_lat, payload_flight_tm->gps_lon, payload_flight_tm->gps_alt, payload_flight_tm->left_servo_angle, payload_flight_tm->right_servo_angle, payload_flight_tm->nas_n, payload_flight_tm->nas_e, payload_flight_tm->nas_d, payload_flight_tm->nas_vn, payload_flight_tm->nas_ve, payload_flight_tm->nas_vd, payload_flight_tm->nas_qx, payload_flight_tm->nas_qy, payload_flight_tm->nas_qz, payload_flight_tm->nas_qw, payload_flight_tm->nas_bias_x, payload_flight_tm->nas_bias_y, payload_flight_tm->nas_bias_z, payload_flight_tm->wes_n, payload_flight_tm->wes_e, payload_flight_tm->pin_nosecone, payload_flight_tm->battery_voltage, payload_flight_tm->cam_battery_voltage, payload_flight_tm->current_consumption, payload_flight_tm->cutter_presence, payload_flight_tm->temperature, payload_flight_tm->logger_error); +} + +/** + * @brief Send a payload_flight_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] Timestamp in microseconds + * @param fmm_state Flight Mode Manager State + * @param nas_state Navigation System FSM State + * @param wes_state Wind Estimation System FSM State + * @param pressure_digi [Pa] Pressure from digital sensor + * @param pressure_static [Pa] Pressure from static port + * @param airspeed_pitot [m/s] Pitot airspeed + * @param altitude_agl [m] Altitude above ground level + * @param acc_x [m/s^2] Acceleration on X axis (body) + * @param acc_y [m/s^2] Acceleration on Y axis (body) + * @param acc_z [m/s^2] Acceleration on Z axis (body) + * @param gyro_x [rad/s] Angular speed on X axis (body) + * @param gyro_y [rad/s] Angular speed on Y axis (body) + * @param gyro_z [rad/s] Angular speed on Z axis (body) + * @param mag_x [uT] Magnetic field on X axis (body) + * @param mag_y [uT] Magnetic field on Y axis (body) + * @param mag_z [uT] Magnetic field on Z axis (body) + * @param gps_fix GPS fix (1 = fix, 0 = no fix) + * @param gps_lat [deg] Latitude + * @param gps_lon [deg] Longitude + * @param gps_alt [m] GPS Altitude + * @param left_servo_angle [deg] Left servo motor angle + * @param right_servo_angle [deg] Right servo motor angle + * @param nas_n [deg] Navigation system estimated noth position + * @param nas_e [deg] Navigation system estimated east position + * @param nas_d [m] Navigation system estimated down position + * @param nas_vn [m/s] Navigation system estimated north velocity + * @param nas_ve [m/s] Navigation system estimated east velocity + * @param nas_vd [m/s] Navigation system estimated down velocity + * @param nas_qx [deg] Navigation system estimated attitude (qx) + * @param nas_qy [deg] Navigation system estimated attitude (qy) + * @param nas_qz [deg] Navigation system estimated attitude (qz) + * @param nas_qw [deg] Navigation system estimated attitude (qw) + * @param nas_bias_x Navigation system gyroscope bias on x axis + * @param nas_bias_y Navigation system gyroscope bias on y axis + * @param nas_bias_z Navigation system gyroscope bias on z axis + * @param wes_n [m/s] Wind estimated north velocity + * @param wes_e [m/s] Wind estimated east velocity + * @param pin_nosecone Nosecone pin status (1 = connected, 0 = disconnected) + * @param battery_voltage [V] Battery voltage + * @param cam_battery_voltage [V] Camera battery voltage + * @param current_consumption [A] Battery current + * @param cutter_presence Cutter presence status (1 = present, 0 = missing) + * @param temperature [degC] Temperature + * @param logger_error Logger error (0 = no error) + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_payload_flight_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t fmm_state, uint8_t nas_state, uint8_t wes_state, float pressure_digi, float pressure_static, float airspeed_pitot, float altitude_agl, float acc_x, float acc_y, float acc_z, float gyro_x, float gyro_y, float gyro_z, float mag_x, float mag_y, float mag_z, uint8_t gps_fix, float gps_lat, float gps_lon, float gps_alt, float left_servo_angle, float right_servo_angle, float nas_n, float nas_e, float nas_d, float nas_vn, float nas_ve, float nas_vd, float nas_qx, float nas_qy, float nas_qz, float nas_qw, float nas_bias_x, float nas_bias_y, float nas_bias_z, float wes_n, float wes_e, uint8_t pin_nosecone, float battery_voltage, float cam_battery_voltage, float current_consumption, uint8_t cutter_presence, float temperature, int8_t logger_error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure_digi); + _mav_put_float(buf, 12, pressure_static); + _mav_put_float(buf, 16, airspeed_pitot); + _mav_put_float(buf, 20, altitude_agl); + _mav_put_float(buf, 24, acc_x); + _mav_put_float(buf, 28, acc_y); + _mav_put_float(buf, 32, acc_z); + _mav_put_float(buf, 36, gyro_x); + _mav_put_float(buf, 40, gyro_y); + _mav_put_float(buf, 44, gyro_z); + _mav_put_float(buf, 48, mag_x); + _mav_put_float(buf, 52, mag_y); + _mav_put_float(buf, 56, mag_z); + _mav_put_float(buf, 60, gps_lat); + _mav_put_float(buf, 64, gps_lon); + _mav_put_float(buf, 68, gps_alt); + _mav_put_float(buf, 72, left_servo_angle); + _mav_put_float(buf, 76, right_servo_angle); + _mav_put_float(buf, 80, nas_n); + _mav_put_float(buf, 84, nas_e); + _mav_put_float(buf, 88, nas_d); + _mav_put_float(buf, 92, nas_vn); + _mav_put_float(buf, 96, nas_ve); + _mav_put_float(buf, 100, nas_vd); + _mav_put_float(buf, 104, nas_qx); + _mav_put_float(buf, 108, nas_qy); + _mav_put_float(buf, 112, nas_qz); + _mav_put_float(buf, 116, nas_qw); + _mav_put_float(buf, 120, nas_bias_x); + _mav_put_float(buf, 124, nas_bias_y); + _mav_put_float(buf, 128, nas_bias_z); + _mav_put_float(buf, 132, wes_n); + _mav_put_float(buf, 136, wes_e); + _mav_put_float(buf, 140, battery_voltage); + _mav_put_float(buf, 144, cam_battery_voltage); + _mav_put_float(buf, 148, current_consumption); + _mav_put_float(buf, 152, temperature); + _mav_put_uint8_t(buf, 156, fmm_state); + _mav_put_uint8_t(buf, 157, nas_state); + _mav_put_uint8_t(buf, 158, wes_state); + _mav_put_uint8_t(buf, 159, gps_fix); + _mav_put_uint8_t(buf, 160, pin_nosecone); + _mav_put_uint8_t(buf, 161, cutter_presence); + _mav_put_int8_t(buf, 162, logger_error); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM, buf, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_CRC); +#else + mavlink_payload_flight_tm_t packet; + packet.timestamp = timestamp; + packet.pressure_digi = pressure_digi; + packet.pressure_static = pressure_static; + packet.airspeed_pitot = airspeed_pitot; + packet.altitude_agl = altitude_agl; + packet.acc_x = acc_x; + packet.acc_y = acc_y; + packet.acc_z = acc_z; + packet.gyro_x = gyro_x; + packet.gyro_y = gyro_y; + packet.gyro_z = gyro_z; + packet.mag_x = mag_x; + packet.mag_y = mag_y; + packet.mag_z = mag_z; + packet.gps_lat = gps_lat; + packet.gps_lon = gps_lon; + packet.gps_alt = gps_alt; + packet.left_servo_angle = left_servo_angle; + packet.right_servo_angle = right_servo_angle; + packet.nas_n = nas_n; + packet.nas_e = nas_e; + packet.nas_d = nas_d; + packet.nas_vn = nas_vn; + packet.nas_ve = nas_ve; + packet.nas_vd = nas_vd; + packet.nas_qx = nas_qx; + packet.nas_qy = nas_qy; + packet.nas_qz = nas_qz; + packet.nas_qw = nas_qw; + packet.nas_bias_x = nas_bias_x; + packet.nas_bias_y = nas_bias_y; + packet.nas_bias_z = nas_bias_z; + packet.wes_n = wes_n; + packet.wes_e = wes_e; + packet.battery_voltage = battery_voltage; + packet.cam_battery_voltage = cam_battery_voltage; + packet.current_consumption = current_consumption; + packet.temperature = temperature; + packet.fmm_state = fmm_state; + packet.nas_state = nas_state; + packet.wes_state = wes_state; + packet.gps_fix = gps_fix; + packet.pin_nosecone = pin_nosecone; + packet.cutter_presence = cutter_presence; + packet.logger_error = logger_error; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM, (const char *)&packet, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_CRC); +#endif +} + +/** + * @brief Send a payload_flight_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_payload_flight_tm_send_struct(mavlink_channel_t chan, const mavlink_payload_flight_tm_t* payload_flight_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_payload_flight_tm_send(chan, payload_flight_tm->timestamp, payload_flight_tm->fmm_state, payload_flight_tm->nas_state, payload_flight_tm->wes_state, payload_flight_tm->pressure_digi, payload_flight_tm->pressure_static, payload_flight_tm->airspeed_pitot, payload_flight_tm->altitude_agl, payload_flight_tm->acc_x, payload_flight_tm->acc_y, payload_flight_tm->acc_z, payload_flight_tm->gyro_x, payload_flight_tm->gyro_y, payload_flight_tm->gyro_z, payload_flight_tm->mag_x, payload_flight_tm->mag_y, payload_flight_tm->mag_z, payload_flight_tm->gps_fix, payload_flight_tm->gps_lat, payload_flight_tm->gps_lon, payload_flight_tm->gps_alt, payload_flight_tm->left_servo_angle, payload_flight_tm->right_servo_angle, payload_flight_tm->nas_n, payload_flight_tm->nas_e, payload_flight_tm->nas_d, payload_flight_tm->nas_vn, payload_flight_tm->nas_ve, payload_flight_tm->nas_vd, payload_flight_tm->nas_qx, payload_flight_tm->nas_qy, payload_flight_tm->nas_qz, payload_flight_tm->nas_qw, payload_flight_tm->nas_bias_x, payload_flight_tm->nas_bias_y, payload_flight_tm->nas_bias_z, payload_flight_tm->wes_n, payload_flight_tm->wes_e, payload_flight_tm->pin_nosecone, payload_flight_tm->battery_voltage, payload_flight_tm->cam_battery_voltage, payload_flight_tm->current_consumption, payload_flight_tm->cutter_presence, payload_flight_tm->temperature, payload_flight_tm->logger_error); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM, (const char *)payload_flight_tm, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_payload_flight_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t fmm_state, uint8_t nas_state, uint8_t wes_state, float pressure_digi, float pressure_static, float airspeed_pitot, float altitude_agl, float acc_x, float acc_y, float acc_z, float gyro_x, float gyro_y, float gyro_z, float mag_x, float mag_y, float mag_z, uint8_t gps_fix, float gps_lat, float gps_lon, float gps_alt, float left_servo_angle, float right_servo_angle, float nas_n, float nas_e, float nas_d, float nas_vn, float nas_ve, float nas_vd, float nas_qx, float nas_qy, float nas_qz, float nas_qw, float nas_bias_x, float nas_bias_y, float nas_bias_z, float wes_n, float wes_e, uint8_t pin_nosecone, float battery_voltage, float cam_battery_voltage, float current_consumption, uint8_t cutter_presence, float temperature, int8_t logger_error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure_digi); + _mav_put_float(buf, 12, pressure_static); + _mav_put_float(buf, 16, airspeed_pitot); + _mav_put_float(buf, 20, altitude_agl); + _mav_put_float(buf, 24, acc_x); + _mav_put_float(buf, 28, acc_y); + _mav_put_float(buf, 32, acc_z); + _mav_put_float(buf, 36, gyro_x); + _mav_put_float(buf, 40, gyro_y); + _mav_put_float(buf, 44, gyro_z); + _mav_put_float(buf, 48, mag_x); + _mav_put_float(buf, 52, mag_y); + _mav_put_float(buf, 56, mag_z); + _mav_put_float(buf, 60, gps_lat); + _mav_put_float(buf, 64, gps_lon); + _mav_put_float(buf, 68, gps_alt); + _mav_put_float(buf, 72, left_servo_angle); + _mav_put_float(buf, 76, right_servo_angle); + _mav_put_float(buf, 80, nas_n); + _mav_put_float(buf, 84, nas_e); + _mav_put_float(buf, 88, nas_d); + _mav_put_float(buf, 92, nas_vn); + _mav_put_float(buf, 96, nas_ve); + _mav_put_float(buf, 100, nas_vd); + _mav_put_float(buf, 104, nas_qx); + _mav_put_float(buf, 108, nas_qy); + _mav_put_float(buf, 112, nas_qz); + _mav_put_float(buf, 116, nas_qw); + _mav_put_float(buf, 120, nas_bias_x); + _mav_put_float(buf, 124, nas_bias_y); + _mav_put_float(buf, 128, nas_bias_z); + _mav_put_float(buf, 132, wes_n); + _mav_put_float(buf, 136, wes_e); + _mav_put_float(buf, 140, battery_voltage); + _mav_put_float(buf, 144, cam_battery_voltage); + _mav_put_float(buf, 148, current_consumption); + _mav_put_float(buf, 152, temperature); + _mav_put_uint8_t(buf, 156, fmm_state); + _mav_put_uint8_t(buf, 157, nas_state); + _mav_put_uint8_t(buf, 158, wes_state); + _mav_put_uint8_t(buf, 159, gps_fix); + _mav_put_uint8_t(buf, 160, pin_nosecone); + _mav_put_uint8_t(buf, 161, cutter_presence); + _mav_put_int8_t(buf, 162, logger_error); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM, buf, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_CRC); +#else + mavlink_payload_flight_tm_t *packet = (mavlink_payload_flight_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->pressure_digi = pressure_digi; + packet->pressure_static = pressure_static; + packet->airspeed_pitot = airspeed_pitot; + packet->altitude_agl = altitude_agl; + packet->acc_x = acc_x; + packet->acc_y = acc_y; + packet->acc_z = acc_z; + packet->gyro_x = gyro_x; + packet->gyro_y = gyro_y; + packet->gyro_z = gyro_z; + packet->mag_x = mag_x; + packet->mag_y = mag_y; + packet->mag_z = mag_z; + packet->gps_lat = gps_lat; + packet->gps_lon = gps_lon; + packet->gps_alt = gps_alt; + packet->left_servo_angle = left_servo_angle; + packet->right_servo_angle = right_servo_angle; + packet->nas_n = nas_n; + packet->nas_e = nas_e; + packet->nas_d = nas_d; + packet->nas_vn = nas_vn; + packet->nas_ve = nas_ve; + packet->nas_vd = nas_vd; + packet->nas_qx = nas_qx; + packet->nas_qy = nas_qy; + packet->nas_qz = nas_qz; + packet->nas_qw = nas_qw; + packet->nas_bias_x = nas_bias_x; + packet->nas_bias_y = nas_bias_y; + packet->nas_bias_z = nas_bias_z; + packet->wes_n = wes_n; + packet->wes_e = wes_e; + packet->battery_voltage = battery_voltage; + packet->cam_battery_voltage = cam_battery_voltage; + packet->current_consumption = current_consumption; + packet->temperature = temperature; + packet->fmm_state = fmm_state; + packet->nas_state = nas_state; + packet->wes_state = wes_state; + packet->gps_fix = gps_fix; + packet->pin_nosecone = pin_nosecone; + packet->cutter_presence = cutter_presence; + packet->logger_error = logger_error; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM, (const char *)packet, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE PAYLOAD_FLIGHT_TM UNPACKING + + +/** + * @brief Get field timestamp from payload_flight_tm message + * + * @return [us] Timestamp in microseconds + */ +static inline uint64_t mavlink_msg_payload_flight_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field fmm_state from payload_flight_tm message + * + * @return Flight Mode Manager State + */ +static inline uint8_t mavlink_msg_payload_flight_tm_get_fmm_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 156); +} + +/** + * @brief Get field nas_state from payload_flight_tm message + * + * @return Navigation System FSM State + */ +static inline uint8_t mavlink_msg_payload_flight_tm_get_nas_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 157); +} + +/** + * @brief Get field wes_state from payload_flight_tm message + * + * @return Wind Estimation System FSM State + */ +static inline uint8_t mavlink_msg_payload_flight_tm_get_wes_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 158); +} + +/** + * @brief Get field pressure_digi from payload_flight_tm message + * + * @return [Pa] Pressure from digital sensor + */ +static inline float mavlink_msg_payload_flight_tm_get_pressure_digi(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field pressure_static from payload_flight_tm message + * + * @return [Pa] Pressure from static port + */ +static inline float mavlink_msg_payload_flight_tm_get_pressure_static(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field airspeed_pitot from payload_flight_tm message + * + * @return [m/s] Pitot airspeed + */ +static inline float mavlink_msg_payload_flight_tm_get_airspeed_pitot(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field altitude_agl from payload_flight_tm message + * + * @return [m] Altitude above ground level + */ +static inline float mavlink_msg_payload_flight_tm_get_altitude_agl(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field acc_x from payload_flight_tm message + * + * @return [m/s^2] Acceleration on X axis (body) + */ +static inline float mavlink_msg_payload_flight_tm_get_acc_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Get field acc_y from payload_flight_tm message + * + * @return [m/s^2] Acceleration on Y axis (body) + */ +static inline float mavlink_msg_payload_flight_tm_get_acc_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field acc_z from payload_flight_tm message + * + * @return [m/s^2] Acceleration on Z axis (body) + */ +static inline float mavlink_msg_payload_flight_tm_get_acc_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field gyro_x from payload_flight_tm message + * + * @return [rad/s] Angular speed on X axis (body) + */ +static inline float mavlink_msg_payload_flight_tm_get_gyro_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Get field gyro_y from payload_flight_tm message + * + * @return [rad/s] Angular speed on Y axis (body) + */ +static inline float mavlink_msg_payload_flight_tm_get_gyro_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Get field gyro_z from payload_flight_tm message + * + * @return [rad/s] Angular speed on Z axis (body) + */ +static inline float mavlink_msg_payload_flight_tm_get_gyro_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 44); +} + +/** + * @brief Get field mag_x from payload_flight_tm message + * + * @return [uT] Magnetic field on X axis (body) + */ +static inline float mavlink_msg_payload_flight_tm_get_mag_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 48); +} + +/** + * @brief Get field mag_y from payload_flight_tm message + * + * @return [uT] Magnetic field on Y axis (body) + */ +static inline float mavlink_msg_payload_flight_tm_get_mag_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 52); +} + +/** + * @brief Get field mag_z from payload_flight_tm message + * + * @return [uT] Magnetic field on Z axis (body) + */ +static inline float mavlink_msg_payload_flight_tm_get_mag_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 56); +} + +/** + * @brief Get field gps_fix from payload_flight_tm message + * + * @return GPS fix (1 = fix, 0 = no fix) + */ +static inline uint8_t mavlink_msg_payload_flight_tm_get_gps_fix(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 159); +} + +/** + * @brief Get field gps_lat from payload_flight_tm message + * + * @return [deg] Latitude + */ +static inline float mavlink_msg_payload_flight_tm_get_gps_lat(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 60); +} + +/** + * @brief Get field gps_lon from payload_flight_tm message + * + * @return [deg] Longitude + */ +static inline float mavlink_msg_payload_flight_tm_get_gps_lon(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 64); +} + +/** + * @brief Get field gps_alt from payload_flight_tm message + * + * @return [m] GPS Altitude + */ +static inline float mavlink_msg_payload_flight_tm_get_gps_alt(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 68); +} + +/** + * @brief Get field left_servo_angle from payload_flight_tm message + * + * @return [deg] Left servo motor angle + */ +static inline float mavlink_msg_payload_flight_tm_get_left_servo_angle(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 72); +} + +/** + * @brief Get field right_servo_angle from payload_flight_tm message + * + * @return [deg] Right servo motor angle + */ +static inline float mavlink_msg_payload_flight_tm_get_right_servo_angle(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 76); +} + +/** + * @brief Get field nas_n from payload_flight_tm message + * + * @return [deg] Navigation system estimated noth position + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_n(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 80); +} + +/** + * @brief Get field nas_e from payload_flight_tm message + * + * @return [deg] Navigation system estimated east position + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_e(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 84); +} + +/** + * @brief Get field nas_d from payload_flight_tm message + * + * @return [m] Navigation system estimated down position + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_d(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 88); +} + +/** + * @brief Get field nas_vn from payload_flight_tm message + * + * @return [m/s] Navigation system estimated north velocity + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_vn(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 92); +} + +/** + * @brief Get field nas_ve from payload_flight_tm message + * + * @return [m/s] Navigation system estimated east velocity + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_ve(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 96); +} + +/** + * @brief Get field nas_vd from payload_flight_tm message + * + * @return [m/s] Navigation system estimated down velocity + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_vd(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 100); +} + +/** + * @brief Get field nas_qx from payload_flight_tm message + * + * @return [deg] Navigation system estimated attitude (qx) + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_qx(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 104); +} + +/** + * @brief Get field nas_qy from payload_flight_tm message + * + * @return [deg] Navigation system estimated attitude (qy) + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_qy(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 108); +} + +/** + * @brief Get field nas_qz from payload_flight_tm message + * + * @return [deg] Navigation system estimated attitude (qz) + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_qz(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 112); +} + +/** + * @brief Get field nas_qw from payload_flight_tm message + * + * @return [deg] Navigation system estimated attitude (qw) + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_qw(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 116); +} + +/** + * @brief Get field nas_bias_x from payload_flight_tm message + * + * @return Navigation system gyroscope bias on x axis + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_bias_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 120); +} + +/** + * @brief Get field nas_bias_y from payload_flight_tm message + * + * @return Navigation system gyroscope bias on y axis + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_bias_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 124); +} + +/** + * @brief Get field nas_bias_z from payload_flight_tm message + * + * @return Navigation system gyroscope bias on z axis + */ +static inline float mavlink_msg_payload_flight_tm_get_nas_bias_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 128); +} + +/** + * @brief Get field wes_n from payload_flight_tm message + * + * @return [m/s] Wind estimated north velocity + */ +static inline float mavlink_msg_payload_flight_tm_get_wes_n(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 132); +} + +/** + * @brief Get field wes_e from payload_flight_tm message + * + * @return [m/s] Wind estimated east velocity + */ +static inline float mavlink_msg_payload_flight_tm_get_wes_e(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 136); +} + +/** + * @brief Get field pin_nosecone from payload_flight_tm message + * + * @return Nosecone pin status (1 = connected, 0 = disconnected) + */ +static inline uint8_t mavlink_msg_payload_flight_tm_get_pin_nosecone(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 160); +} + +/** + * @brief Get field battery_voltage from payload_flight_tm message + * + * @return [V] Battery voltage + */ +static inline float mavlink_msg_payload_flight_tm_get_battery_voltage(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 140); +} + +/** + * @brief Get field cam_battery_voltage from payload_flight_tm message + * + * @return [V] Camera battery voltage + */ +static inline float mavlink_msg_payload_flight_tm_get_cam_battery_voltage(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 144); +} + +/** + * @brief Get field current_consumption from payload_flight_tm message + * + * @return [A] Battery current + */ +static inline float mavlink_msg_payload_flight_tm_get_current_consumption(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 148); +} + +/** + * @brief Get field cutter_presence from payload_flight_tm message + * + * @return Cutter presence status (1 = present, 0 = missing) + */ +static inline uint8_t mavlink_msg_payload_flight_tm_get_cutter_presence(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 161); +} + +/** + * @brief Get field temperature from payload_flight_tm message + * + * @return [degC] Temperature + */ +static inline float mavlink_msg_payload_flight_tm_get_temperature(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 152); +} + +/** + * @brief Get field logger_error from payload_flight_tm message + * + * @return Logger error (0 = no error) + */ +static inline int8_t mavlink_msg_payload_flight_tm_get_logger_error(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int8_t(msg, 162); +} + +/** + * @brief Decode a payload_flight_tm message into a struct + * + * @param msg The message to decode + * @param payload_flight_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_payload_flight_tm_decode(const mavlink_message_t* msg, mavlink_payload_flight_tm_t* payload_flight_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + payload_flight_tm->timestamp = mavlink_msg_payload_flight_tm_get_timestamp(msg); + payload_flight_tm->pressure_digi = mavlink_msg_payload_flight_tm_get_pressure_digi(msg); + payload_flight_tm->pressure_static = mavlink_msg_payload_flight_tm_get_pressure_static(msg); + payload_flight_tm->airspeed_pitot = mavlink_msg_payload_flight_tm_get_airspeed_pitot(msg); + payload_flight_tm->altitude_agl = mavlink_msg_payload_flight_tm_get_altitude_agl(msg); + payload_flight_tm->acc_x = mavlink_msg_payload_flight_tm_get_acc_x(msg); + payload_flight_tm->acc_y = mavlink_msg_payload_flight_tm_get_acc_y(msg); + payload_flight_tm->acc_z = mavlink_msg_payload_flight_tm_get_acc_z(msg); + payload_flight_tm->gyro_x = mavlink_msg_payload_flight_tm_get_gyro_x(msg); + payload_flight_tm->gyro_y = mavlink_msg_payload_flight_tm_get_gyro_y(msg); + payload_flight_tm->gyro_z = mavlink_msg_payload_flight_tm_get_gyro_z(msg); + payload_flight_tm->mag_x = mavlink_msg_payload_flight_tm_get_mag_x(msg); + payload_flight_tm->mag_y = mavlink_msg_payload_flight_tm_get_mag_y(msg); + payload_flight_tm->mag_z = mavlink_msg_payload_flight_tm_get_mag_z(msg); + payload_flight_tm->gps_lat = mavlink_msg_payload_flight_tm_get_gps_lat(msg); + payload_flight_tm->gps_lon = mavlink_msg_payload_flight_tm_get_gps_lon(msg); + payload_flight_tm->gps_alt = mavlink_msg_payload_flight_tm_get_gps_alt(msg); + payload_flight_tm->left_servo_angle = mavlink_msg_payload_flight_tm_get_left_servo_angle(msg); + payload_flight_tm->right_servo_angle = mavlink_msg_payload_flight_tm_get_right_servo_angle(msg); + payload_flight_tm->nas_n = mavlink_msg_payload_flight_tm_get_nas_n(msg); + payload_flight_tm->nas_e = mavlink_msg_payload_flight_tm_get_nas_e(msg); + payload_flight_tm->nas_d = mavlink_msg_payload_flight_tm_get_nas_d(msg); + payload_flight_tm->nas_vn = mavlink_msg_payload_flight_tm_get_nas_vn(msg); + payload_flight_tm->nas_ve = mavlink_msg_payload_flight_tm_get_nas_ve(msg); + payload_flight_tm->nas_vd = mavlink_msg_payload_flight_tm_get_nas_vd(msg); + payload_flight_tm->nas_qx = mavlink_msg_payload_flight_tm_get_nas_qx(msg); + payload_flight_tm->nas_qy = mavlink_msg_payload_flight_tm_get_nas_qy(msg); + payload_flight_tm->nas_qz = mavlink_msg_payload_flight_tm_get_nas_qz(msg); + payload_flight_tm->nas_qw = mavlink_msg_payload_flight_tm_get_nas_qw(msg); + payload_flight_tm->nas_bias_x = mavlink_msg_payload_flight_tm_get_nas_bias_x(msg); + payload_flight_tm->nas_bias_y = mavlink_msg_payload_flight_tm_get_nas_bias_y(msg); + payload_flight_tm->nas_bias_z = mavlink_msg_payload_flight_tm_get_nas_bias_z(msg); + payload_flight_tm->wes_n = mavlink_msg_payload_flight_tm_get_wes_n(msg); + payload_flight_tm->wes_e = mavlink_msg_payload_flight_tm_get_wes_e(msg); + payload_flight_tm->battery_voltage = mavlink_msg_payload_flight_tm_get_battery_voltage(msg); + payload_flight_tm->cam_battery_voltage = mavlink_msg_payload_flight_tm_get_cam_battery_voltage(msg); + payload_flight_tm->current_consumption = mavlink_msg_payload_flight_tm_get_current_consumption(msg); + payload_flight_tm->temperature = mavlink_msg_payload_flight_tm_get_temperature(msg); + payload_flight_tm->fmm_state = mavlink_msg_payload_flight_tm_get_fmm_state(msg); + payload_flight_tm->nas_state = mavlink_msg_payload_flight_tm_get_nas_state(msg); + payload_flight_tm->wes_state = mavlink_msg_payload_flight_tm_get_wes_state(msg); + payload_flight_tm->gps_fix = mavlink_msg_payload_flight_tm_get_gps_fix(msg); + payload_flight_tm->pin_nosecone = mavlink_msg_payload_flight_tm_get_pin_nosecone(msg); + payload_flight_tm->cutter_presence = mavlink_msg_payload_flight_tm_get_cutter_presence(msg); + payload_flight_tm->logger_error = mavlink_msg_payload_flight_tm_get_logger_error(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN? msg->len : MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN; + memset(payload_flight_tm, 0, MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_LEN); + memcpy(payload_flight_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_payload_stats_tm.h b/mavlink_lib/lyra/mavlink_msg_payload_stats_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..3b945c4692aa2e834689fd0617809d5f5be22970 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_payload_stats_tm.h @@ -0,0 +1,563 @@ +#pragma once +// MESSAGE PAYLOAD_STATS_TM PACKING + +#define MAVLINK_MSG_ID_PAYLOAD_STATS_TM 211 + + +typedef struct __mavlink_payload_stats_tm_t { + uint64_t liftoff_max_acc_ts; /*< [us] System clock at the maximum liftoff acceleration*/ + uint64_t dpl_ts; /*< [us] System clock at drouge deployment*/ + uint64_t max_z_speed_ts; /*< [us] System clock at max vertical speed*/ + uint64_t apogee_ts; /*< [us] System clock at apogee*/ + float liftoff_max_acc; /*< [m/s2] Maximum liftoff acceleration*/ + float dpl_max_acc; /*< [m/s2] Max acceleration during drouge deployment*/ + float max_z_speed; /*< [m/s] Max measured vertical speed*/ + float max_airspeed_pitot; /*< [m/s] Max speed read by the pitot tube*/ + float max_speed_altitude; /*< [m] Altitude at max speed*/ + float apogee_lat; /*< [deg] Apogee latitude*/ + float apogee_lon; /*< [deg] Apogee longitude*/ + float apogee_alt; /*< [m] Apogee altitude*/ + float min_pressure; /*< [Pa] Apogee pressure - Digital barometer*/ + float cpu_load; /*< CPU load in percentage*/ + uint32_t free_heap; /*< Amount of available heap in memory*/ +} mavlink_payload_stats_tm_t; + +#define MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN 76 +#define MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN 76 +#define MAVLINK_MSG_ID_211_LEN 76 +#define MAVLINK_MSG_ID_211_MIN_LEN 76 + +#define MAVLINK_MSG_ID_PAYLOAD_STATS_TM_CRC 115 +#define MAVLINK_MSG_ID_211_CRC 115 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_PAYLOAD_STATS_TM { \ + 211, \ + "PAYLOAD_STATS_TM", \ + 15, \ + { { "liftoff_max_acc_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_payload_stats_tm_t, liftoff_max_acc_ts) }, \ + { "liftoff_max_acc", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_payload_stats_tm_t, liftoff_max_acc) }, \ + { "dpl_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_payload_stats_tm_t, dpl_ts) }, \ + { "dpl_max_acc", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_payload_stats_tm_t, dpl_max_acc) }, \ + { "max_z_speed_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 16, offsetof(mavlink_payload_stats_tm_t, max_z_speed_ts) }, \ + { "max_z_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_payload_stats_tm_t, max_z_speed) }, \ + { "max_airspeed_pitot", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_payload_stats_tm_t, max_airspeed_pitot) }, \ + { "max_speed_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_payload_stats_tm_t, max_speed_altitude) }, \ + { "apogee_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 24, offsetof(mavlink_payload_stats_tm_t, apogee_ts) }, \ + { "apogee_lat", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_payload_stats_tm_t, apogee_lat) }, \ + { "apogee_lon", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_payload_stats_tm_t, apogee_lon) }, \ + { "apogee_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_payload_stats_tm_t, apogee_alt) }, \ + { "min_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_payload_stats_tm_t, min_pressure) }, \ + { "cpu_load", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_payload_stats_tm_t, cpu_load) }, \ + { "free_heap", NULL, MAVLINK_TYPE_UINT32_T, 0, 72, offsetof(mavlink_payload_stats_tm_t, free_heap) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_PAYLOAD_STATS_TM { \ + "PAYLOAD_STATS_TM", \ + 15, \ + { { "liftoff_max_acc_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_payload_stats_tm_t, liftoff_max_acc_ts) }, \ + { "liftoff_max_acc", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_payload_stats_tm_t, liftoff_max_acc) }, \ + { "dpl_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_payload_stats_tm_t, dpl_ts) }, \ + { "dpl_max_acc", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_payload_stats_tm_t, dpl_max_acc) }, \ + { "max_z_speed_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 16, offsetof(mavlink_payload_stats_tm_t, max_z_speed_ts) }, \ + { "max_z_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_payload_stats_tm_t, max_z_speed) }, \ + { "max_airspeed_pitot", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_payload_stats_tm_t, max_airspeed_pitot) }, \ + { "max_speed_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_payload_stats_tm_t, max_speed_altitude) }, \ + { "apogee_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 24, offsetof(mavlink_payload_stats_tm_t, apogee_ts) }, \ + { "apogee_lat", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_payload_stats_tm_t, apogee_lat) }, \ + { "apogee_lon", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_payload_stats_tm_t, apogee_lon) }, \ + { "apogee_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_payload_stats_tm_t, apogee_alt) }, \ + { "min_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_payload_stats_tm_t, min_pressure) }, \ + { "cpu_load", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_payload_stats_tm_t, cpu_load) }, \ + { "free_heap", NULL, MAVLINK_TYPE_UINT32_T, 0, 72, offsetof(mavlink_payload_stats_tm_t, free_heap) }, \ + } \ +} +#endif + +/** + * @brief Pack a payload_stats_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param liftoff_max_acc_ts [us] System clock at the maximum liftoff acceleration + * @param liftoff_max_acc [m/s2] Maximum liftoff acceleration + * @param dpl_ts [us] System clock at drouge deployment + * @param dpl_max_acc [m/s2] Max acceleration during drouge deployment + * @param max_z_speed_ts [us] System clock at max vertical speed + * @param max_z_speed [m/s] Max measured vertical speed + * @param max_airspeed_pitot [m/s] Max speed read by the pitot tube + * @param max_speed_altitude [m] Altitude at max speed + * @param apogee_ts [us] System clock at apogee + * @param apogee_lat [deg] Apogee latitude + * @param apogee_lon [deg] Apogee longitude + * @param apogee_alt [m] Apogee altitude + * @param min_pressure [Pa] Apogee pressure - Digital barometer + * @param cpu_load CPU load in percentage + * @param free_heap Amount of available heap in memory + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_payload_stats_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t liftoff_max_acc_ts, float liftoff_max_acc, uint64_t dpl_ts, float dpl_max_acc, uint64_t max_z_speed_ts, float max_z_speed, float max_airspeed_pitot, float max_speed_altitude, uint64_t apogee_ts, float apogee_lat, float apogee_lon, float apogee_alt, float min_pressure, float cpu_load, uint32_t free_heap) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, liftoff_max_acc_ts); + _mav_put_uint64_t(buf, 8, dpl_ts); + _mav_put_uint64_t(buf, 16, max_z_speed_ts); + _mav_put_uint64_t(buf, 24, apogee_ts); + _mav_put_float(buf, 32, liftoff_max_acc); + _mav_put_float(buf, 36, dpl_max_acc); + _mav_put_float(buf, 40, max_z_speed); + _mav_put_float(buf, 44, max_airspeed_pitot); + _mav_put_float(buf, 48, max_speed_altitude); + _mav_put_float(buf, 52, apogee_lat); + _mav_put_float(buf, 56, apogee_lon); + _mav_put_float(buf, 60, apogee_alt); + _mav_put_float(buf, 64, min_pressure); + _mav_put_float(buf, 68, cpu_load); + _mav_put_uint32_t(buf, 72, free_heap); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN); +#else + mavlink_payload_stats_tm_t packet; + packet.liftoff_max_acc_ts = liftoff_max_acc_ts; + packet.dpl_ts = dpl_ts; + packet.max_z_speed_ts = max_z_speed_ts; + packet.apogee_ts = apogee_ts; + packet.liftoff_max_acc = liftoff_max_acc; + packet.dpl_max_acc = dpl_max_acc; + packet.max_z_speed = max_z_speed; + packet.max_airspeed_pitot = max_airspeed_pitot; + packet.max_speed_altitude = max_speed_altitude; + packet.apogee_lat = apogee_lat; + packet.apogee_lon = apogee_lon; + packet.apogee_alt = apogee_alt; + packet.min_pressure = min_pressure; + packet.cpu_load = cpu_load; + packet.free_heap = free_heap; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PAYLOAD_STATS_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_CRC); +} + +/** + * @brief Pack a payload_stats_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param liftoff_max_acc_ts [us] System clock at the maximum liftoff acceleration + * @param liftoff_max_acc [m/s2] Maximum liftoff acceleration + * @param dpl_ts [us] System clock at drouge deployment + * @param dpl_max_acc [m/s2] Max acceleration during drouge deployment + * @param max_z_speed_ts [us] System clock at max vertical speed + * @param max_z_speed [m/s] Max measured vertical speed + * @param max_airspeed_pitot [m/s] Max speed read by the pitot tube + * @param max_speed_altitude [m] Altitude at max speed + * @param apogee_ts [us] System clock at apogee + * @param apogee_lat [deg] Apogee latitude + * @param apogee_lon [deg] Apogee longitude + * @param apogee_alt [m] Apogee altitude + * @param min_pressure [Pa] Apogee pressure - Digital barometer + * @param cpu_load CPU load in percentage + * @param free_heap Amount of available heap in memory + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_payload_stats_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t liftoff_max_acc_ts,float liftoff_max_acc,uint64_t dpl_ts,float dpl_max_acc,uint64_t max_z_speed_ts,float max_z_speed,float max_airspeed_pitot,float max_speed_altitude,uint64_t apogee_ts,float apogee_lat,float apogee_lon,float apogee_alt,float min_pressure,float cpu_load,uint32_t free_heap) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, liftoff_max_acc_ts); + _mav_put_uint64_t(buf, 8, dpl_ts); + _mav_put_uint64_t(buf, 16, max_z_speed_ts); + _mav_put_uint64_t(buf, 24, apogee_ts); + _mav_put_float(buf, 32, liftoff_max_acc); + _mav_put_float(buf, 36, dpl_max_acc); + _mav_put_float(buf, 40, max_z_speed); + _mav_put_float(buf, 44, max_airspeed_pitot); + _mav_put_float(buf, 48, max_speed_altitude); + _mav_put_float(buf, 52, apogee_lat); + _mav_put_float(buf, 56, apogee_lon); + _mav_put_float(buf, 60, apogee_alt); + _mav_put_float(buf, 64, min_pressure); + _mav_put_float(buf, 68, cpu_load); + _mav_put_uint32_t(buf, 72, free_heap); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN); +#else + mavlink_payload_stats_tm_t packet; + packet.liftoff_max_acc_ts = liftoff_max_acc_ts; + packet.dpl_ts = dpl_ts; + packet.max_z_speed_ts = max_z_speed_ts; + packet.apogee_ts = apogee_ts; + packet.liftoff_max_acc = liftoff_max_acc; + packet.dpl_max_acc = dpl_max_acc; + packet.max_z_speed = max_z_speed; + packet.max_airspeed_pitot = max_airspeed_pitot; + packet.max_speed_altitude = max_speed_altitude; + packet.apogee_lat = apogee_lat; + packet.apogee_lon = apogee_lon; + packet.apogee_alt = apogee_alt; + packet.min_pressure = min_pressure; + packet.cpu_load = cpu_load; + packet.free_heap = free_heap; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PAYLOAD_STATS_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_CRC); +} + +/** + * @brief Encode a payload_stats_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param payload_stats_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_payload_stats_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_payload_stats_tm_t* payload_stats_tm) +{ + return mavlink_msg_payload_stats_tm_pack(system_id, component_id, msg, payload_stats_tm->liftoff_max_acc_ts, payload_stats_tm->liftoff_max_acc, payload_stats_tm->dpl_ts, payload_stats_tm->dpl_max_acc, payload_stats_tm->max_z_speed_ts, payload_stats_tm->max_z_speed, payload_stats_tm->max_airspeed_pitot, payload_stats_tm->max_speed_altitude, payload_stats_tm->apogee_ts, payload_stats_tm->apogee_lat, payload_stats_tm->apogee_lon, payload_stats_tm->apogee_alt, payload_stats_tm->min_pressure, payload_stats_tm->cpu_load, payload_stats_tm->free_heap); +} + +/** + * @brief Encode a payload_stats_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param payload_stats_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_payload_stats_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_payload_stats_tm_t* payload_stats_tm) +{ + return mavlink_msg_payload_stats_tm_pack_chan(system_id, component_id, chan, msg, payload_stats_tm->liftoff_max_acc_ts, payload_stats_tm->liftoff_max_acc, payload_stats_tm->dpl_ts, payload_stats_tm->dpl_max_acc, payload_stats_tm->max_z_speed_ts, payload_stats_tm->max_z_speed, payload_stats_tm->max_airspeed_pitot, payload_stats_tm->max_speed_altitude, payload_stats_tm->apogee_ts, payload_stats_tm->apogee_lat, payload_stats_tm->apogee_lon, payload_stats_tm->apogee_alt, payload_stats_tm->min_pressure, payload_stats_tm->cpu_load, payload_stats_tm->free_heap); +} + +/** + * @brief Send a payload_stats_tm message + * @param chan MAVLink channel to send the message + * + * @param liftoff_max_acc_ts [us] System clock at the maximum liftoff acceleration + * @param liftoff_max_acc [m/s2] Maximum liftoff acceleration + * @param dpl_ts [us] System clock at drouge deployment + * @param dpl_max_acc [m/s2] Max acceleration during drouge deployment + * @param max_z_speed_ts [us] System clock at max vertical speed + * @param max_z_speed [m/s] Max measured vertical speed + * @param max_airspeed_pitot [m/s] Max speed read by the pitot tube + * @param max_speed_altitude [m] Altitude at max speed + * @param apogee_ts [us] System clock at apogee + * @param apogee_lat [deg] Apogee latitude + * @param apogee_lon [deg] Apogee longitude + * @param apogee_alt [m] Apogee altitude + * @param min_pressure [Pa] Apogee pressure - Digital barometer + * @param cpu_load CPU load in percentage + * @param free_heap Amount of available heap in memory + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_payload_stats_tm_send(mavlink_channel_t chan, uint64_t liftoff_max_acc_ts, float liftoff_max_acc, uint64_t dpl_ts, float dpl_max_acc, uint64_t max_z_speed_ts, float max_z_speed, float max_airspeed_pitot, float max_speed_altitude, uint64_t apogee_ts, float apogee_lat, float apogee_lon, float apogee_alt, float min_pressure, float cpu_load, uint32_t free_heap) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, liftoff_max_acc_ts); + _mav_put_uint64_t(buf, 8, dpl_ts); + _mav_put_uint64_t(buf, 16, max_z_speed_ts); + _mav_put_uint64_t(buf, 24, apogee_ts); + _mav_put_float(buf, 32, liftoff_max_acc); + _mav_put_float(buf, 36, dpl_max_acc); + _mav_put_float(buf, 40, max_z_speed); + _mav_put_float(buf, 44, max_airspeed_pitot); + _mav_put_float(buf, 48, max_speed_altitude); + _mav_put_float(buf, 52, apogee_lat); + _mav_put_float(buf, 56, apogee_lon); + _mav_put_float(buf, 60, apogee_alt); + _mav_put_float(buf, 64, min_pressure); + _mav_put_float(buf, 68, cpu_load); + _mav_put_uint32_t(buf, 72, free_heap); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_STATS_TM, buf, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_CRC); +#else + mavlink_payload_stats_tm_t packet; + packet.liftoff_max_acc_ts = liftoff_max_acc_ts; + packet.dpl_ts = dpl_ts; + packet.max_z_speed_ts = max_z_speed_ts; + packet.apogee_ts = apogee_ts; + packet.liftoff_max_acc = liftoff_max_acc; + packet.dpl_max_acc = dpl_max_acc; + packet.max_z_speed = max_z_speed; + packet.max_airspeed_pitot = max_airspeed_pitot; + packet.max_speed_altitude = max_speed_altitude; + packet.apogee_lat = apogee_lat; + packet.apogee_lon = apogee_lon; + packet.apogee_alt = apogee_alt; + packet.min_pressure = min_pressure; + packet.cpu_load = cpu_load; + packet.free_heap = free_heap; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_STATS_TM, (const char *)&packet, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_CRC); +#endif +} + +/** + * @brief Send a payload_stats_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_payload_stats_tm_send_struct(mavlink_channel_t chan, const mavlink_payload_stats_tm_t* payload_stats_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_payload_stats_tm_send(chan, payload_stats_tm->liftoff_max_acc_ts, payload_stats_tm->liftoff_max_acc, payload_stats_tm->dpl_ts, payload_stats_tm->dpl_max_acc, payload_stats_tm->max_z_speed_ts, payload_stats_tm->max_z_speed, payload_stats_tm->max_airspeed_pitot, payload_stats_tm->max_speed_altitude, payload_stats_tm->apogee_ts, payload_stats_tm->apogee_lat, payload_stats_tm->apogee_lon, payload_stats_tm->apogee_alt, payload_stats_tm->min_pressure, payload_stats_tm->cpu_load, payload_stats_tm->free_heap); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_STATS_TM, (const char *)payload_stats_tm, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_payload_stats_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t liftoff_max_acc_ts, float liftoff_max_acc, uint64_t dpl_ts, float dpl_max_acc, uint64_t max_z_speed_ts, float max_z_speed, float max_airspeed_pitot, float max_speed_altitude, uint64_t apogee_ts, float apogee_lat, float apogee_lon, float apogee_alt, float min_pressure, float cpu_load, uint32_t free_heap) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, liftoff_max_acc_ts); + _mav_put_uint64_t(buf, 8, dpl_ts); + _mav_put_uint64_t(buf, 16, max_z_speed_ts); + _mav_put_uint64_t(buf, 24, apogee_ts); + _mav_put_float(buf, 32, liftoff_max_acc); + _mav_put_float(buf, 36, dpl_max_acc); + _mav_put_float(buf, 40, max_z_speed); + _mav_put_float(buf, 44, max_airspeed_pitot); + _mav_put_float(buf, 48, max_speed_altitude); + _mav_put_float(buf, 52, apogee_lat); + _mav_put_float(buf, 56, apogee_lon); + _mav_put_float(buf, 60, apogee_alt); + _mav_put_float(buf, 64, min_pressure); + _mav_put_float(buf, 68, cpu_load); + _mav_put_uint32_t(buf, 72, free_heap); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_STATS_TM, buf, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_CRC); +#else + mavlink_payload_stats_tm_t *packet = (mavlink_payload_stats_tm_t *)msgbuf; + packet->liftoff_max_acc_ts = liftoff_max_acc_ts; + packet->dpl_ts = dpl_ts; + packet->max_z_speed_ts = max_z_speed_ts; + packet->apogee_ts = apogee_ts; + packet->liftoff_max_acc = liftoff_max_acc; + packet->dpl_max_acc = dpl_max_acc; + packet->max_z_speed = max_z_speed; + packet->max_airspeed_pitot = max_airspeed_pitot; + packet->max_speed_altitude = max_speed_altitude; + packet->apogee_lat = apogee_lat; + packet->apogee_lon = apogee_lon; + packet->apogee_alt = apogee_alt; + packet->min_pressure = min_pressure; + packet->cpu_load = cpu_load; + packet->free_heap = free_heap; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PAYLOAD_STATS_TM, (const char *)packet, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE PAYLOAD_STATS_TM UNPACKING + + +/** + * @brief Get field liftoff_max_acc_ts from payload_stats_tm message + * + * @return [us] System clock at the maximum liftoff acceleration + */ +static inline uint64_t mavlink_msg_payload_stats_tm_get_liftoff_max_acc_ts(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field liftoff_max_acc from payload_stats_tm message + * + * @return [m/s2] Maximum liftoff acceleration + */ +static inline float mavlink_msg_payload_stats_tm_get_liftoff_max_acc(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field dpl_ts from payload_stats_tm message + * + * @return [us] System clock at drouge deployment + */ +static inline uint64_t mavlink_msg_payload_stats_tm_get_dpl_ts(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 8); +} + +/** + * @brief Get field dpl_max_acc from payload_stats_tm message + * + * @return [m/s2] Max acceleration during drouge deployment + */ +static inline float mavlink_msg_payload_stats_tm_get_dpl_max_acc(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Get field max_z_speed_ts from payload_stats_tm message + * + * @return [us] System clock at max vertical speed + */ +static inline uint64_t mavlink_msg_payload_stats_tm_get_max_z_speed_ts(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 16); +} + +/** + * @brief Get field max_z_speed from payload_stats_tm message + * + * @return [m/s] Max measured vertical speed + */ +static inline float mavlink_msg_payload_stats_tm_get_max_z_speed(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Get field max_airspeed_pitot from payload_stats_tm message + * + * @return [m/s] Max speed read by the pitot tube + */ +static inline float mavlink_msg_payload_stats_tm_get_max_airspeed_pitot(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 44); +} + +/** + * @brief Get field max_speed_altitude from payload_stats_tm message + * + * @return [m] Altitude at max speed + */ +static inline float mavlink_msg_payload_stats_tm_get_max_speed_altitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 48); +} + +/** + * @brief Get field apogee_ts from payload_stats_tm message + * + * @return [us] System clock at apogee + */ +static inline uint64_t mavlink_msg_payload_stats_tm_get_apogee_ts(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 24); +} + +/** + * @brief Get field apogee_lat from payload_stats_tm message + * + * @return [deg] Apogee latitude + */ +static inline float mavlink_msg_payload_stats_tm_get_apogee_lat(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 52); +} + +/** + * @brief Get field apogee_lon from payload_stats_tm message + * + * @return [deg] Apogee longitude + */ +static inline float mavlink_msg_payload_stats_tm_get_apogee_lon(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 56); +} + +/** + * @brief Get field apogee_alt from payload_stats_tm message + * + * @return [m] Apogee altitude + */ +static inline float mavlink_msg_payload_stats_tm_get_apogee_alt(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 60); +} + +/** + * @brief Get field min_pressure from payload_stats_tm message + * + * @return [Pa] Apogee pressure - Digital barometer + */ +static inline float mavlink_msg_payload_stats_tm_get_min_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 64); +} + +/** + * @brief Get field cpu_load from payload_stats_tm message + * + * @return CPU load in percentage + */ +static inline float mavlink_msg_payload_stats_tm_get_cpu_load(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 68); +} + +/** + * @brief Get field free_heap from payload_stats_tm message + * + * @return Amount of available heap in memory + */ +static inline uint32_t mavlink_msg_payload_stats_tm_get_free_heap(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 72); +} + +/** + * @brief Decode a payload_stats_tm message into a struct + * + * @param msg The message to decode + * @param payload_stats_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_payload_stats_tm_decode(const mavlink_message_t* msg, mavlink_payload_stats_tm_t* payload_stats_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + payload_stats_tm->liftoff_max_acc_ts = mavlink_msg_payload_stats_tm_get_liftoff_max_acc_ts(msg); + payload_stats_tm->dpl_ts = mavlink_msg_payload_stats_tm_get_dpl_ts(msg); + payload_stats_tm->max_z_speed_ts = mavlink_msg_payload_stats_tm_get_max_z_speed_ts(msg); + payload_stats_tm->apogee_ts = mavlink_msg_payload_stats_tm_get_apogee_ts(msg); + payload_stats_tm->liftoff_max_acc = mavlink_msg_payload_stats_tm_get_liftoff_max_acc(msg); + payload_stats_tm->dpl_max_acc = mavlink_msg_payload_stats_tm_get_dpl_max_acc(msg); + payload_stats_tm->max_z_speed = mavlink_msg_payload_stats_tm_get_max_z_speed(msg); + payload_stats_tm->max_airspeed_pitot = mavlink_msg_payload_stats_tm_get_max_airspeed_pitot(msg); + payload_stats_tm->max_speed_altitude = mavlink_msg_payload_stats_tm_get_max_speed_altitude(msg); + payload_stats_tm->apogee_lat = mavlink_msg_payload_stats_tm_get_apogee_lat(msg); + payload_stats_tm->apogee_lon = mavlink_msg_payload_stats_tm_get_apogee_lon(msg); + payload_stats_tm->apogee_alt = mavlink_msg_payload_stats_tm_get_apogee_alt(msg); + payload_stats_tm->min_pressure = mavlink_msg_payload_stats_tm_get_min_pressure(msg); + payload_stats_tm->cpu_load = mavlink_msg_payload_stats_tm_get_cpu_load(msg); + payload_stats_tm->free_heap = mavlink_msg_payload_stats_tm_get_free_heap(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN? msg->len : MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN; + memset(payload_stats_tm, 0, MAVLINK_MSG_ID_PAYLOAD_STATS_TM_LEN); + memcpy(payload_stats_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_pin_tm.h b/mavlink_lib/lyra/mavlink_msg_pin_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..80cc7d6547bd54d6257b5450532274f2c13126ac --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_pin_tm.h @@ -0,0 +1,313 @@ +#pragma once +// MESSAGE PIN_TM PACKING + +#define MAVLINK_MSG_ID_PIN_TM 113 + + +typedef struct __mavlink_pin_tm_t { + uint64_t timestamp; /*< [us] Timestamp*/ + uint64_t last_change_timestamp; /*< Last change timestamp of pin*/ + uint8_t pin_id; /*< A member of the PinsList enum*/ + uint8_t changes_counter; /*< Number of changes of pin*/ + uint8_t current_state; /*< Current state of pin*/ +} mavlink_pin_tm_t; + +#define MAVLINK_MSG_ID_PIN_TM_LEN 19 +#define MAVLINK_MSG_ID_PIN_TM_MIN_LEN 19 +#define MAVLINK_MSG_ID_113_LEN 19 +#define MAVLINK_MSG_ID_113_MIN_LEN 19 + +#define MAVLINK_MSG_ID_PIN_TM_CRC 255 +#define MAVLINK_MSG_ID_113_CRC 255 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_PIN_TM { \ + 113, \ + "PIN_TM", \ + 5, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_pin_tm_t, timestamp) }, \ + { "pin_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 16, offsetof(mavlink_pin_tm_t, pin_id) }, \ + { "last_change_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_pin_tm_t, last_change_timestamp) }, \ + { "changes_counter", NULL, MAVLINK_TYPE_UINT8_T, 0, 17, offsetof(mavlink_pin_tm_t, changes_counter) }, \ + { "current_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 18, offsetof(mavlink_pin_tm_t, current_state) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_PIN_TM { \ + "PIN_TM", \ + 5, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_pin_tm_t, timestamp) }, \ + { "pin_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 16, offsetof(mavlink_pin_tm_t, pin_id) }, \ + { "last_change_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_pin_tm_t, last_change_timestamp) }, \ + { "changes_counter", NULL, MAVLINK_TYPE_UINT8_T, 0, 17, offsetof(mavlink_pin_tm_t, changes_counter) }, \ + { "current_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 18, offsetof(mavlink_pin_tm_t, current_state) }, \ + } \ +} +#endif + +/** + * @brief Pack a pin_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] Timestamp + * @param pin_id A member of the PinsList enum + * @param last_change_timestamp Last change timestamp of pin + * @param changes_counter Number of changes of pin + * @param current_state Current state of pin + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_pin_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t pin_id, uint64_t last_change_timestamp, uint8_t changes_counter, uint8_t current_state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PIN_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint64_t(buf, 8, last_change_timestamp); + _mav_put_uint8_t(buf, 16, pin_id); + _mav_put_uint8_t(buf, 17, changes_counter); + _mav_put_uint8_t(buf, 18, current_state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PIN_TM_LEN); +#else + mavlink_pin_tm_t packet; + packet.timestamp = timestamp; + packet.last_change_timestamp = last_change_timestamp; + packet.pin_id = pin_id; + packet.changes_counter = changes_counter; + packet.current_state = current_state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PIN_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PIN_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PIN_TM_MIN_LEN, MAVLINK_MSG_ID_PIN_TM_LEN, MAVLINK_MSG_ID_PIN_TM_CRC); +} + +/** + * @brief Pack a pin_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] Timestamp + * @param pin_id A member of the PinsList enum + * @param last_change_timestamp Last change timestamp of pin + * @param changes_counter Number of changes of pin + * @param current_state Current state of pin + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_pin_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t pin_id,uint64_t last_change_timestamp,uint8_t changes_counter,uint8_t current_state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PIN_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint64_t(buf, 8, last_change_timestamp); + _mav_put_uint8_t(buf, 16, pin_id); + _mav_put_uint8_t(buf, 17, changes_counter); + _mav_put_uint8_t(buf, 18, current_state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PIN_TM_LEN); +#else + mavlink_pin_tm_t packet; + packet.timestamp = timestamp; + packet.last_change_timestamp = last_change_timestamp; + packet.pin_id = pin_id; + packet.changes_counter = changes_counter; + packet.current_state = current_state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PIN_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PIN_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PIN_TM_MIN_LEN, MAVLINK_MSG_ID_PIN_TM_LEN, MAVLINK_MSG_ID_PIN_TM_CRC); +} + +/** + * @brief Encode a pin_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param pin_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_pin_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_pin_tm_t* pin_tm) +{ + return mavlink_msg_pin_tm_pack(system_id, component_id, msg, pin_tm->timestamp, pin_tm->pin_id, pin_tm->last_change_timestamp, pin_tm->changes_counter, pin_tm->current_state); +} + +/** + * @brief Encode a pin_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param pin_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_pin_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_pin_tm_t* pin_tm) +{ + return mavlink_msg_pin_tm_pack_chan(system_id, component_id, chan, msg, pin_tm->timestamp, pin_tm->pin_id, pin_tm->last_change_timestamp, pin_tm->changes_counter, pin_tm->current_state); +} + +/** + * @brief Send a pin_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] Timestamp + * @param pin_id A member of the PinsList enum + * @param last_change_timestamp Last change timestamp of pin + * @param changes_counter Number of changes of pin + * @param current_state Current state of pin + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_pin_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t pin_id, uint64_t last_change_timestamp, uint8_t changes_counter, uint8_t current_state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PIN_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint64_t(buf, 8, last_change_timestamp); + _mav_put_uint8_t(buf, 16, pin_id); + _mav_put_uint8_t(buf, 17, changes_counter); + _mav_put_uint8_t(buf, 18, current_state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PIN_TM, buf, MAVLINK_MSG_ID_PIN_TM_MIN_LEN, MAVLINK_MSG_ID_PIN_TM_LEN, MAVLINK_MSG_ID_PIN_TM_CRC); +#else + mavlink_pin_tm_t packet; + packet.timestamp = timestamp; + packet.last_change_timestamp = last_change_timestamp; + packet.pin_id = pin_id; + packet.changes_counter = changes_counter; + packet.current_state = current_state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PIN_TM, (const char *)&packet, MAVLINK_MSG_ID_PIN_TM_MIN_LEN, MAVLINK_MSG_ID_PIN_TM_LEN, MAVLINK_MSG_ID_PIN_TM_CRC); +#endif +} + +/** + * @brief Send a pin_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_pin_tm_send_struct(mavlink_channel_t chan, const mavlink_pin_tm_t* pin_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_pin_tm_send(chan, pin_tm->timestamp, pin_tm->pin_id, pin_tm->last_change_timestamp, pin_tm->changes_counter, pin_tm->current_state); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PIN_TM, (const char *)pin_tm, MAVLINK_MSG_ID_PIN_TM_MIN_LEN, MAVLINK_MSG_ID_PIN_TM_LEN, MAVLINK_MSG_ID_PIN_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_PIN_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_pin_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t pin_id, uint64_t last_change_timestamp, uint8_t changes_counter, uint8_t current_state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint64_t(buf, 8, last_change_timestamp); + _mav_put_uint8_t(buf, 16, pin_id); + _mav_put_uint8_t(buf, 17, changes_counter); + _mav_put_uint8_t(buf, 18, current_state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PIN_TM, buf, MAVLINK_MSG_ID_PIN_TM_MIN_LEN, MAVLINK_MSG_ID_PIN_TM_LEN, MAVLINK_MSG_ID_PIN_TM_CRC); +#else + mavlink_pin_tm_t *packet = (mavlink_pin_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->last_change_timestamp = last_change_timestamp; + packet->pin_id = pin_id; + packet->changes_counter = changes_counter; + packet->current_state = current_state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PIN_TM, (const char *)packet, MAVLINK_MSG_ID_PIN_TM_MIN_LEN, MAVLINK_MSG_ID_PIN_TM_LEN, MAVLINK_MSG_ID_PIN_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE PIN_TM UNPACKING + + +/** + * @brief Get field timestamp from pin_tm message + * + * @return [us] Timestamp + */ +static inline uint64_t mavlink_msg_pin_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field pin_id from pin_tm message + * + * @return A member of the PinsList enum + */ +static inline uint8_t mavlink_msg_pin_tm_get_pin_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 16); +} + +/** + * @brief Get field last_change_timestamp from pin_tm message + * + * @return Last change timestamp of pin + */ +static inline uint64_t mavlink_msg_pin_tm_get_last_change_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 8); +} + +/** + * @brief Get field changes_counter from pin_tm message + * + * @return Number of changes of pin + */ +static inline uint8_t mavlink_msg_pin_tm_get_changes_counter(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 17); +} + +/** + * @brief Get field current_state from pin_tm message + * + * @return Current state of pin + */ +static inline uint8_t mavlink_msg_pin_tm_get_current_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 18); +} + +/** + * @brief Decode a pin_tm message into a struct + * + * @param msg The message to decode + * @param pin_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_pin_tm_decode(const mavlink_message_t* msg, mavlink_pin_tm_t* pin_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + pin_tm->timestamp = mavlink_msg_pin_tm_get_timestamp(msg); + pin_tm->last_change_timestamp = mavlink_msg_pin_tm_get_last_change_timestamp(msg); + pin_tm->pin_id = mavlink_msg_pin_tm_get_pin_id(msg); + pin_tm->changes_counter = mavlink_msg_pin_tm_get_changes_counter(msg); + pin_tm->current_state = mavlink_msg_pin_tm_get_current_state(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_PIN_TM_LEN? msg->len : MAVLINK_MSG_ID_PIN_TM_LEN; + memset(pin_tm, 0, MAVLINK_MSG_ID_PIN_TM_LEN); + memcpy(pin_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_ping_tc.h b/mavlink_lib/lyra/mavlink_msg_ping_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..99a2895f9933675f201a98a080067ebf3b33bb66 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_ping_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE PING_TC PACKING + +#define MAVLINK_MSG_ID_PING_TC 1 + + +typedef struct __mavlink_ping_tc_t { + uint64_t timestamp; /*< Timestamp to identify when it was sent*/ +} mavlink_ping_tc_t; + +#define MAVLINK_MSG_ID_PING_TC_LEN 8 +#define MAVLINK_MSG_ID_PING_TC_MIN_LEN 8 +#define MAVLINK_MSG_ID_1_LEN 8 +#define MAVLINK_MSG_ID_1_MIN_LEN 8 + +#define MAVLINK_MSG_ID_PING_TC_CRC 136 +#define MAVLINK_MSG_ID_1_CRC 136 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_PING_TC { \ + 1, \ + "PING_TC", \ + 1, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_ping_tc_t, timestamp) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_PING_TC { \ + "PING_TC", \ + 1, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_ping_tc_t, timestamp) }, \ + } \ +} +#endif + +/** + * @brief Pack a ping_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp Timestamp to identify when it was sent + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ping_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PING_TC_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PING_TC_LEN); +#else + mavlink_ping_tc_t packet; + packet.timestamp = timestamp; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PING_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PING_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PING_TC_MIN_LEN, MAVLINK_MSG_ID_PING_TC_LEN, MAVLINK_MSG_ID_PING_TC_CRC); +} + +/** + * @brief Pack a ping_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp Timestamp to identify when it was sent + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ping_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PING_TC_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PING_TC_LEN); +#else + mavlink_ping_tc_t packet; + packet.timestamp = timestamp; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PING_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PING_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PING_TC_MIN_LEN, MAVLINK_MSG_ID_PING_TC_LEN, MAVLINK_MSG_ID_PING_TC_CRC); +} + +/** + * @brief Encode a ping_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param ping_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ping_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_ping_tc_t* ping_tc) +{ + return mavlink_msg_ping_tc_pack(system_id, component_id, msg, ping_tc->timestamp); +} + +/** + * @brief Encode a ping_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param ping_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ping_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_ping_tc_t* ping_tc) +{ + return mavlink_msg_ping_tc_pack_chan(system_id, component_id, chan, msg, ping_tc->timestamp); +} + +/** + * @brief Send a ping_tc message + * @param chan MAVLink channel to send the message + * + * @param timestamp Timestamp to identify when it was sent + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_ping_tc_send(mavlink_channel_t chan, uint64_t timestamp) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PING_TC_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PING_TC, buf, MAVLINK_MSG_ID_PING_TC_MIN_LEN, MAVLINK_MSG_ID_PING_TC_LEN, MAVLINK_MSG_ID_PING_TC_CRC); +#else + mavlink_ping_tc_t packet; + packet.timestamp = timestamp; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PING_TC, (const char *)&packet, MAVLINK_MSG_ID_PING_TC_MIN_LEN, MAVLINK_MSG_ID_PING_TC_LEN, MAVLINK_MSG_ID_PING_TC_CRC); +#endif +} + +/** + * @brief Send a ping_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_ping_tc_send_struct(mavlink_channel_t chan, const mavlink_ping_tc_t* ping_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_ping_tc_send(chan, ping_tc->timestamp); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PING_TC, (const char *)ping_tc, MAVLINK_MSG_ID_PING_TC_MIN_LEN, MAVLINK_MSG_ID_PING_TC_LEN, MAVLINK_MSG_ID_PING_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_PING_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_ping_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PING_TC, buf, MAVLINK_MSG_ID_PING_TC_MIN_LEN, MAVLINK_MSG_ID_PING_TC_LEN, MAVLINK_MSG_ID_PING_TC_CRC); +#else + mavlink_ping_tc_t *packet = (mavlink_ping_tc_t *)msgbuf; + packet->timestamp = timestamp; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PING_TC, (const char *)packet, MAVLINK_MSG_ID_PING_TC_MIN_LEN, MAVLINK_MSG_ID_PING_TC_LEN, MAVLINK_MSG_ID_PING_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE PING_TC UNPACKING + + +/** + * @brief Get field timestamp from ping_tc message + * + * @return Timestamp to identify when it was sent + */ +static inline uint64_t mavlink_msg_ping_tc_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Decode a ping_tc message into a struct + * + * @param msg The message to decode + * @param ping_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_ping_tc_decode(const mavlink_message_t* msg, mavlink_ping_tc_t* ping_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + ping_tc->timestamp = mavlink_msg_ping_tc_get_timestamp(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_PING_TC_LEN? msg->len : MAVLINK_MSG_ID_PING_TC_LEN; + memset(ping_tc, 0, MAVLINK_MSG_ID_PING_TC_LEN); + memcpy(ping_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_pressure_tm.h b/mavlink_lib/lyra/mavlink_msg_pressure_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..8291d6e36b4c63ac30cc308ca496ad3c1d1ad4a6 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_pressure_tm.h @@ -0,0 +1,255 @@ +#pragma once +// MESSAGE PRESSURE_TM PACKING + +#define MAVLINK_MSG_ID_PRESSURE_TM 104 + + +typedef struct __mavlink_pressure_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float pressure; /*< [Pa] Pressure of the digital barometer*/ + char sensor_name[20]; /*< Sensor name*/ +} mavlink_pressure_tm_t; + +#define MAVLINK_MSG_ID_PRESSURE_TM_LEN 32 +#define MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN 32 +#define MAVLINK_MSG_ID_104_LEN 32 +#define MAVLINK_MSG_ID_104_MIN_LEN 32 + +#define MAVLINK_MSG_ID_PRESSURE_TM_CRC 87 +#define MAVLINK_MSG_ID_104_CRC 87 + +#define MAVLINK_MSG_PRESSURE_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_PRESSURE_TM { \ + 104, \ + "PRESSURE_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_pressure_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_pressure_tm_t, sensor_name) }, \ + { "pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_pressure_tm_t, pressure) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_PRESSURE_TM { \ + "PRESSURE_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_pressure_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_pressure_tm_t, sensor_name) }, \ + { "pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_pressure_tm_t, pressure) }, \ + } \ +} +#endif + +/** + * @brief Pack a pressure_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param pressure [Pa] Pressure of the digital barometer + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_pressure_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, const char *sensor_name, float pressure) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PRESSURE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PRESSURE_TM_LEN); +#else + mavlink_pressure_tm_t packet; + packet.timestamp = timestamp; + packet.pressure = pressure; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PRESSURE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PRESSURE_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN, MAVLINK_MSG_ID_PRESSURE_TM_LEN, MAVLINK_MSG_ID_PRESSURE_TM_CRC); +} + +/** + * @brief Pack a pressure_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param pressure [Pa] Pressure of the digital barometer + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_pressure_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,const char *sensor_name,float pressure) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PRESSURE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PRESSURE_TM_LEN); +#else + mavlink_pressure_tm_t packet; + packet.timestamp = timestamp; + packet.pressure = pressure; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PRESSURE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PRESSURE_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN, MAVLINK_MSG_ID_PRESSURE_TM_LEN, MAVLINK_MSG_ID_PRESSURE_TM_CRC); +} + +/** + * @brief Encode a pressure_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param pressure_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_pressure_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_pressure_tm_t* pressure_tm) +{ + return mavlink_msg_pressure_tm_pack(system_id, component_id, msg, pressure_tm->timestamp, pressure_tm->sensor_name, pressure_tm->pressure); +} + +/** + * @brief Encode a pressure_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param pressure_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_pressure_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_pressure_tm_t* pressure_tm) +{ + return mavlink_msg_pressure_tm_pack_chan(system_id, component_id, chan, msg, pressure_tm->timestamp, pressure_tm->sensor_name, pressure_tm->pressure); +} + +/** + * @brief Send a pressure_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param pressure [Pa] Pressure of the digital barometer + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_pressure_tm_send(mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float pressure) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PRESSURE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PRESSURE_TM, buf, MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN, MAVLINK_MSG_ID_PRESSURE_TM_LEN, MAVLINK_MSG_ID_PRESSURE_TM_CRC); +#else + mavlink_pressure_tm_t packet; + packet.timestamp = timestamp; + packet.pressure = pressure; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PRESSURE_TM, (const char *)&packet, MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN, MAVLINK_MSG_ID_PRESSURE_TM_LEN, MAVLINK_MSG_ID_PRESSURE_TM_CRC); +#endif +} + +/** + * @brief Send a pressure_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_pressure_tm_send_struct(mavlink_channel_t chan, const mavlink_pressure_tm_t* pressure_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_pressure_tm_send(chan, pressure_tm->timestamp, pressure_tm->sensor_name, pressure_tm->pressure); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PRESSURE_TM, (const char *)pressure_tm, MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN, MAVLINK_MSG_ID_PRESSURE_TM_LEN, MAVLINK_MSG_ID_PRESSURE_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_PRESSURE_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_pressure_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float pressure) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PRESSURE_TM, buf, MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN, MAVLINK_MSG_ID_PRESSURE_TM_LEN, MAVLINK_MSG_ID_PRESSURE_TM_CRC); +#else + mavlink_pressure_tm_t *packet = (mavlink_pressure_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->pressure = pressure; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PRESSURE_TM, (const char *)packet, MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN, MAVLINK_MSG_ID_PRESSURE_TM_LEN, MAVLINK_MSG_ID_PRESSURE_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE PRESSURE_TM UNPACKING + + +/** + * @brief Get field timestamp from pressure_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_pressure_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field sensor_name from pressure_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_pressure_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 12); +} + +/** + * @brief Get field pressure from pressure_tm message + * + * @return [Pa] Pressure of the digital barometer + */ +static inline float mavlink_msg_pressure_tm_get_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Decode a pressure_tm message into a struct + * + * @param msg The message to decode + * @param pressure_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_pressure_tm_decode(const mavlink_message_t* msg, mavlink_pressure_tm_t* pressure_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + pressure_tm->timestamp = mavlink_msg_pressure_tm_get_timestamp(msg); + pressure_tm->pressure = mavlink_msg_pressure_tm_get_pressure(msg); + mavlink_msg_pressure_tm_get_sensor_name(msg, pressure_tm->sensor_name); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_PRESSURE_TM_LEN? msg->len : MAVLINK_MSG_ID_PRESSURE_TM_LEN; + memset(pressure_tm, 0, MAVLINK_MSG_ID_PRESSURE_TM_LEN); + memcpy(pressure_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_raw_event_tc.h b/mavlink_lib/lyra/mavlink_msg_raw_event_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..fe6d60a1b38e429fc0f0049aa21234613d3c8e99 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_raw_event_tc.h @@ -0,0 +1,238 @@ +#pragma once +// MESSAGE RAW_EVENT_TC PACKING + +#define MAVLINK_MSG_ID_RAW_EVENT_TC 13 + + +typedef struct __mavlink_raw_event_tc_t { + uint8_t topic_id; /*< Id of the topic to which the event should be posted*/ + uint8_t event_id; /*< Id of the event to be posted*/ +} mavlink_raw_event_tc_t; + +#define MAVLINK_MSG_ID_RAW_EVENT_TC_LEN 2 +#define MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN 2 +#define MAVLINK_MSG_ID_13_LEN 2 +#define MAVLINK_MSG_ID_13_MIN_LEN 2 + +#define MAVLINK_MSG_ID_RAW_EVENT_TC_CRC 218 +#define MAVLINK_MSG_ID_13_CRC 218 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_RAW_EVENT_TC { \ + 13, \ + "RAW_EVENT_TC", \ + 2, \ + { { "topic_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_raw_event_tc_t, topic_id) }, \ + { "event_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_raw_event_tc_t, event_id) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_RAW_EVENT_TC { \ + "RAW_EVENT_TC", \ + 2, \ + { { "topic_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_raw_event_tc_t, topic_id) }, \ + { "event_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_raw_event_tc_t, event_id) }, \ + } \ +} +#endif + +/** + * @brief Pack a raw_event_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param topic_id Id of the topic to which the event should be posted + * @param event_id Id of the event to be posted + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_raw_event_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t topic_id, uint8_t event_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RAW_EVENT_TC_LEN]; + _mav_put_uint8_t(buf, 0, topic_id); + _mav_put_uint8_t(buf, 1, event_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN); +#else + mavlink_raw_event_tc_t packet; + packet.topic_id = topic_id; + packet.event_id = event_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_RAW_EVENT_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_CRC); +} + +/** + * @brief Pack a raw_event_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param topic_id Id of the topic to which the event should be posted + * @param event_id Id of the event to be posted + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_raw_event_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t topic_id,uint8_t event_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RAW_EVENT_TC_LEN]; + _mav_put_uint8_t(buf, 0, topic_id); + _mav_put_uint8_t(buf, 1, event_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN); +#else + mavlink_raw_event_tc_t packet; + packet.topic_id = topic_id; + packet.event_id = event_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_RAW_EVENT_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_CRC); +} + +/** + * @brief Encode a raw_event_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param raw_event_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_raw_event_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_raw_event_tc_t* raw_event_tc) +{ + return mavlink_msg_raw_event_tc_pack(system_id, component_id, msg, raw_event_tc->topic_id, raw_event_tc->event_id); +} + +/** + * @brief Encode a raw_event_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param raw_event_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_raw_event_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_raw_event_tc_t* raw_event_tc) +{ + return mavlink_msg_raw_event_tc_pack_chan(system_id, component_id, chan, msg, raw_event_tc->topic_id, raw_event_tc->event_id); +} + +/** + * @brief Send a raw_event_tc message + * @param chan MAVLink channel to send the message + * + * @param topic_id Id of the topic to which the event should be posted + * @param event_id Id of the event to be posted + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_raw_event_tc_send(mavlink_channel_t chan, uint8_t topic_id, uint8_t event_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RAW_EVENT_TC_LEN]; + _mav_put_uint8_t(buf, 0, topic_id); + _mav_put_uint8_t(buf, 1, event_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RAW_EVENT_TC, buf, MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_CRC); +#else + mavlink_raw_event_tc_t packet; + packet.topic_id = topic_id; + packet.event_id = event_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RAW_EVENT_TC, (const char *)&packet, MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_CRC); +#endif +} + +/** + * @brief Send a raw_event_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_raw_event_tc_send_struct(mavlink_channel_t chan, const mavlink_raw_event_tc_t* raw_event_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_raw_event_tc_send(chan, raw_event_tc->topic_id, raw_event_tc->event_id); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RAW_EVENT_TC, (const char *)raw_event_tc, MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_RAW_EVENT_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_raw_event_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t topic_id, uint8_t event_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, topic_id); + _mav_put_uint8_t(buf, 1, event_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RAW_EVENT_TC, buf, MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_CRC); +#else + mavlink_raw_event_tc_t *packet = (mavlink_raw_event_tc_t *)msgbuf; + packet->topic_id = topic_id; + packet->event_id = event_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RAW_EVENT_TC, (const char *)packet, MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN, MAVLINK_MSG_ID_RAW_EVENT_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE RAW_EVENT_TC UNPACKING + + +/** + * @brief Get field topic_id from raw_event_tc message + * + * @return Id of the topic to which the event should be posted + */ +static inline uint8_t mavlink_msg_raw_event_tc_get_topic_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Get field event_id from raw_event_tc message + * + * @return Id of the event to be posted + */ +static inline uint8_t mavlink_msg_raw_event_tc_get_event_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 1); +} + +/** + * @brief Decode a raw_event_tc message into a struct + * + * @param msg The message to decode + * @param raw_event_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_raw_event_tc_decode(const mavlink_message_t* msg, mavlink_raw_event_tc_t* raw_event_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + raw_event_tc->topic_id = mavlink_msg_raw_event_tc_get_topic_id(msg); + raw_event_tc->event_id = mavlink_msg_raw_event_tc_get_event_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_RAW_EVENT_TC_LEN? msg->len : MAVLINK_MSG_ID_RAW_EVENT_TC_LEN; + memset(raw_event_tc, 0, MAVLINK_MSG_ID_RAW_EVENT_TC_LEN); + memcpy(raw_event_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_receiver_tm.h b/mavlink_lib/lyra/mavlink_msg_receiver_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..d87647ee1d1ad1a8b59605721d6fca6469887093 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_receiver_tm.h @@ -0,0 +1,688 @@ +#pragma once +// MESSAGE RECEIVER_TM PACKING + +#define MAVLINK_MSG_ID_RECEIVER_TM 150 + + +typedef struct __mavlink_receiver_tm_t { + uint64_t timestamp; /*< [us] Timestamp*/ + float main_rx_rssi; /*< [dBm] Receive RSSI*/ + float main_rx_fei; /*< [Hz] Receive frequency error index*/ + float payload_rx_rssi; /*< [dBm] Receive RSSI*/ + float payload_rx_fei; /*< [Hz] Receive frequency error index*/ + float battery_voltage; /*< [V] Battery voltage*/ + uint16_t main_packet_tx_error_count; /*< Number of errors during send*/ + uint16_t main_tx_bitrate; /*< [b/s] Send bitrate*/ + uint16_t main_packet_rx_success_count; /*< Number of succesfull received mavlink packets*/ + uint16_t main_packet_rx_drop_count; /*< Number of dropped mavlink packets*/ + uint16_t main_rx_bitrate; /*< [b/s] Receive bitrate*/ + uint16_t payload_packet_tx_error_count; /*< Number of errors during send*/ + uint16_t payload_tx_bitrate; /*< [b/s] Send bitrate*/ + uint16_t payload_packet_rx_success_count; /*< Number of succesfull received mavlink packets*/ + uint16_t payload_packet_rx_drop_count; /*< Number of dropped mavlink packets*/ + uint16_t payload_rx_bitrate; /*< [b/s] Receive bitrate*/ + uint8_t main_radio_present; /*< Boolean indicating the presence of the main radio*/ + uint8_t payload_radio_present; /*< Boolean indicating the presence of the payload radio*/ + uint8_t ethernet_present; /*< Boolean indicating the presence of the ethernet module*/ + uint8_t ethernet_status; /*< Status flag indicating the status of the ethernet PHY*/ +} mavlink_receiver_tm_t; + +#define MAVLINK_MSG_ID_RECEIVER_TM_LEN 52 +#define MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN 52 +#define MAVLINK_MSG_ID_150_LEN 52 +#define MAVLINK_MSG_ID_150_MIN_LEN 52 + +#define MAVLINK_MSG_ID_RECEIVER_TM_CRC 117 +#define MAVLINK_MSG_ID_150_CRC 117 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_RECEIVER_TM { \ + 150, \ + "RECEIVER_TM", \ + 20, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_receiver_tm_t, timestamp) }, \ + { "main_radio_present", NULL, MAVLINK_TYPE_UINT8_T, 0, 48, offsetof(mavlink_receiver_tm_t, main_radio_present) }, \ + { "main_packet_tx_error_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 28, offsetof(mavlink_receiver_tm_t, main_packet_tx_error_count) }, \ + { "main_tx_bitrate", NULL, MAVLINK_TYPE_UINT16_T, 0, 30, offsetof(mavlink_receiver_tm_t, main_tx_bitrate) }, \ + { "main_packet_rx_success_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 32, offsetof(mavlink_receiver_tm_t, main_packet_rx_success_count) }, \ + { "main_packet_rx_drop_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 34, offsetof(mavlink_receiver_tm_t, main_packet_rx_drop_count) }, \ + { "main_rx_bitrate", NULL, MAVLINK_TYPE_UINT16_T, 0, 36, offsetof(mavlink_receiver_tm_t, main_rx_bitrate) }, \ + { "main_rx_rssi", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_receiver_tm_t, main_rx_rssi) }, \ + { "main_rx_fei", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_receiver_tm_t, main_rx_fei) }, \ + { "payload_radio_present", NULL, MAVLINK_TYPE_UINT8_T, 0, 49, offsetof(mavlink_receiver_tm_t, payload_radio_present) }, \ + { "payload_packet_tx_error_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 38, offsetof(mavlink_receiver_tm_t, payload_packet_tx_error_count) }, \ + { "payload_tx_bitrate", NULL, MAVLINK_TYPE_UINT16_T, 0, 40, offsetof(mavlink_receiver_tm_t, payload_tx_bitrate) }, \ + { "payload_packet_rx_success_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 42, offsetof(mavlink_receiver_tm_t, payload_packet_rx_success_count) }, \ + { "payload_packet_rx_drop_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 44, offsetof(mavlink_receiver_tm_t, payload_packet_rx_drop_count) }, \ + { "payload_rx_bitrate", NULL, MAVLINK_TYPE_UINT16_T, 0, 46, offsetof(mavlink_receiver_tm_t, payload_rx_bitrate) }, \ + { "payload_rx_rssi", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_receiver_tm_t, payload_rx_rssi) }, \ + { "payload_rx_fei", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_receiver_tm_t, payload_rx_fei) }, \ + { "ethernet_present", NULL, MAVLINK_TYPE_UINT8_T, 0, 50, offsetof(mavlink_receiver_tm_t, ethernet_present) }, \ + { "ethernet_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 51, offsetof(mavlink_receiver_tm_t, ethernet_status) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_receiver_tm_t, battery_voltage) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_RECEIVER_TM { \ + "RECEIVER_TM", \ + 20, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_receiver_tm_t, timestamp) }, \ + { "main_radio_present", NULL, MAVLINK_TYPE_UINT8_T, 0, 48, offsetof(mavlink_receiver_tm_t, main_radio_present) }, \ + { "main_packet_tx_error_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 28, offsetof(mavlink_receiver_tm_t, main_packet_tx_error_count) }, \ + { "main_tx_bitrate", NULL, MAVLINK_TYPE_UINT16_T, 0, 30, offsetof(mavlink_receiver_tm_t, main_tx_bitrate) }, \ + { "main_packet_rx_success_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 32, offsetof(mavlink_receiver_tm_t, main_packet_rx_success_count) }, \ + { "main_packet_rx_drop_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 34, offsetof(mavlink_receiver_tm_t, main_packet_rx_drop_count) }, \ + { "main_rx_bitrate", NULL, MAVLINK_TYPE_UINT16_T, 0, 36, offsetof(mavlink_receiver_tm_t, main_rx_bitrate) }, \ + { "main_rx_rssi", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_receiver_tm_t, main_rx_rssi) }, \ + { "main_rx_fei", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_receiver_tm_t, main_rx_fei) }, \ + { "payload_radio_present", NULL, MAVLINK_TYPE_UINT8_T, 0, 49, offsetof(mavlink_receiver_tm_t, payload_radio_present) }, \ + { "payload_packet_tx_error_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 38, offsetof(mavlink_receiver_tm_t, payload_packet_tx_error_count) }, \ + { "payload_tx_bitrate", NULL, MAVLINK_TYPE_UINT16_T, 0, 40, offsetof(mavlink_receiver_tm_t, payload_tx_bitrate) }, \ + { "payload_packet_rx_success_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 42, offsetof(mavlink_receiver_tm_t, payload_packet_rx_success_count) }, \ + { "payload_packet_rx_drop_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 44, offsetof(mavlink_receiver_tm_t, payload_packet_rx_drop_count) }, \ + { "payload_rx_bitrate", NULL, MAVLINK_TYPE_UINT16_T, 0, 46, offsetof(mavlink_receiver_tm_t, payload_rx_bitrate) }, \ + { "payload_rx_rssi", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_receiver_tm_t, payload_rx_rssi) }, \ + { "payload_rx_fei", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_receiver_tm_t, payload_rx_fei) }, \ + { "ethernet_present", NULL, MAVLINK_TYPE_UINT8_T, 0, 50, offsetof(mavlink_receiver_tm_t, ethernet_present) }, \ + { "ethernet_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 51, offsetof(mavlink_receiver_tm_t, ethernet_status) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_receiver_tm_t, battery_voltage) }, \ + } \ +} +#endif + +/** + * @brief Pack a receiver_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] Timestamp + * @param main_radio_present Boolean indicating the presence of the main radio + * @param main_packet_tx_error_count Number of errors during send + * @param main_tx_bitrate [b/s] Send bitrate + * @param main_packet_rx_success_count Number of succesfull received mavlink packets + * @param main_packet_rx_drop_count Number of dropped mavlink packets + * @param main_rx_bitrate [b/s] Receive bitrate + * @param main_rx_rssi [dBm] Receive RSSI + * @param main_rx_fei [Hz] Receive frequency error index + * @param payload_radio_present Boolean indicating the presence of the payload radio + * @param payload_packet_tx_error_count Number of errors during send + * @param payload_tx_bitrate [b/s] Send bitrate + * @param payload_packet_rx_success_count Number of succesfull received mavlink packets + * @param payload_packet_rx_drop_count Number of dropped mavlink packets + * @param payload_rx_bitrate [b/s] Receive bitrate + * @param payload_rx_rssi [dBm] Receive RSSI + * @param payload_rx_fei [Hz] Receive frequency error index + * @param ethernet_present Boolean indicating the presence of the ethernet module + * @param ethernet_status Status flag indicating the status of the ethernet PHY + * @param battery_voltage [V] Battery voltage + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_receiver_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t main_radio_present, uint16_t main_packet_tx_error_count, uint16_t main_tx_bitrate, uint16_t main_packet_rx_success_count, uint16_t main_packet_rx_drop_count, uint16_t main_rx_bitrate, float main_rx_rssi, float main_rx_fei, uint8_t payload_radio_present, uint16_t payload_packet_tx_error_count, uint16_t payload_tx_bitrate, uint16_t payload_packet_rx_success_count, uint16_t payload_packet_rx_drop_count, uint16_t payload_rx_bitrate, float payload_rx_rssi, float payload_rx_fei, uint8_t ethernet_present, uint8_t ethernet_status, float battery_voltage) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RECEIVER_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, main_rx_rssi); + _mav_put_float(buf, 12, main_rx_fei); + _mav_put_float(buf, 16, payload_rx_rssi); + _mav_put_float(buf, 20, payload_rx_fei); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_uint16_t(buf, 28, main_packet_tx_error_count); + _mav_put_uint16_t(buf, 30, main_tx_bitrate); + _mav_put_uint16_t(buf, 32, main_packet_rx_success_count); + _mav_put_uint16_t(buf, 34, main_packet_rx_drop_count); + _mav_put_uint16_t(buf, 36, main_rx_bitrate); + _mav_put_uint16_t(buf, 38, payload_packet_tx_error_count); + _mav_put_uint16_t(buf, 40, payload_tx_bitrate); + _mav_put_uint16_t(buf, 42, payload_packet_rx_success_count); + _mav_put_uint16_t(buf, 44, payload_packet_rx_drop_count); + _mav_put_uint16_t(buf, 46, payload_rx_bitrate); + _mav_put_uint8_t(buf, 48, main_radio_present); + _mav_put_uint8_t(buf, 49, payload_radio_present); + _mav_put_uint8_t(buf, 50, ethernet_present); + _mav_put_uint8_t(buf, 51, ethernet_status); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_RECEIVER_TM_LEN); +#else + mavlink_receiver_tm_t packet; + packet.timestamp = timestamp; + packet.main_rx_rssi = main_rx_rssi; + packet.main_rx_fei = main_rx_fei; + packet.payload_rx_rssi = payload_rx_rssi; + packet.payload_rx_fei = payload_rx_fei; + packet.battery_voltage = battery_voltage; + packet.main_packet_tx_error_count = main_packet_tx_error_count; + packet.main_tx_bitrate = main_tx_bitrate; + packet.main_packet_rx_success_count = main_packet_rx_success_count; + packet.main_packet_rx_drop_count = main_packet_rx_drop_count; + packet.main_rx_bitrate = main_rx_bitrate; + packet.payload_packet_tx_error_count = payload_packet_tx_error_count; + packet.payload_tx_bitrate = payload_tx_bitrate; + packet.payload_packet_rx_success_count = payload_packet_rx_success_count; + packet.payload_packet_rx_drop_count = payload_packet_rx_drop_count; + packet.payload_rx_bitrate = payload_rx_bitrate; + packet.main_radio_present = main_radio_present; + packet.payload_radio_present = payload_radio_present; + packet.ethernet_present = ethernet_present; + packet.ethernet_status = ethernet_status; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_RECEIVER_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_RECEIVER_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN, MAVLINK_MSG_ID_RECEIVER_TM_LEN, MAVLINK_MSG_ID_RECEIVER_TM_CRC); +} + +/** + * @brief Pack a receiver_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] Timestamp + * @param main_radio_present Boolean indicating the presence of the main radio + * @param main_packet_tx_error_count Number of errors during send + * @param main_tx_bitrate [b/s] Send bitrate + * @param main_packet_rx_success_count Number of succesfull received mavlink packets + * @param main_packet_rx_drop_count Number of dropped mavlink packets + * @param main_rx_bitrate [b/s] Receive bitrate + * @param main_rx_rssi [dBm] Receive RSSI + * @param main_rx_fei [Hz] Receive frequency error index + * @param payload_radio_present Boolean indicating the presence of the payload radio + * @param payload_packet_tx_error_count Number of errors during send + * @param payload_tx_bitrate [b/s] Send bitrate + * @param payload_packet_rx_success_count Number of succesfull received mavlink packets + * @param payload_packet_rx_drop_count Number of dropped mavlink packets + * @param payload_rx_bitrate [b/s] Receive bitrate + * @param payload_rx_rssi [dBm] Receive RSSI + * @param payload_rx_fei [Hz] Receive frequency error index + * @param ethernet_present Boolean indicating the presence of the ethernet module + * @param ethernet_status Status flag indicating the status of the ethernet PHY + * @param battery_voltage [V] Battery voltage + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_receiver_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t main_radio_present,uint16_t main_packet_tx_error_count,uint16_t main_tx_bitrate,uint16_t main_packet_rx_success_count,uint16_t main_packet_rx_drop_count,uint16_t main_rx_bitrate,float main_rx_rssi,float main_rx_fei,uint8_t payload_radio_present,uint16_t payload_packet_tx_error_count,uint16_t payload_tx_bitrate,uint16_t payload_packet_rx_success_count,uint16_t payload_packet_rx_drop_count,uint16_t payload_rx_bitrate,float payload_rx_rssi,float payload_rx_fei,uint8_t ethernet_present,uint8_t ethernet_status,float battery_voltage) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RECEIVER_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, main_rx_rssi); + _mav_put_float(buf, 12, main_rx_fei); + _mav_put_float(buf, 16, payload_rx_rssi); + _mav_put_float(buf, 20, payload_rx_fei); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_uint16_t(buf, 28, main_packet_tx_error_count); + _mav_put_uint16_t(buf, 30, main_tx_bitrate); + _mav_put_uint16_t(buf, 32, main_packet_rx_success_count); + _mav_put_uint16_t(buf, 34, main_packet_rx_drop_count); + _mav_put_uint16_t(buf, 36, main_rx_bitrate); + _mav_put_uint16_t(buf, 38, payload_packet_tx_error_count); + _mav_put_uint16_t(buf, 40, payload_tx_bitrate); + _mav_put_uint16_t(buf, 42, payload_packet_rx_success_count); + _mav_put_uint16_t(buf, 44, payload_packet_rx_drop_count); + _mav_put_uint16_t(buf, 46, payload_rx_bitrate); + _mav_put_uint8_t(buf, 48, main_radio_present); + _mav_put_uint8_t(buf, 49, payload_radio_present); + _mav_put_uint8_t(buf, 50, ethernet_present); + _mav_put_uint8_t(buf, 51, ethernet_status); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_RECEIVER_TM_LEN); +#else + mavlink_receiver_tm_t packet; + packet.timestamp = timestamp; + packet.main_rx_rssi = main_rx_rssi; + packet.main_rx_fei = main_rx_fei; + packet.payload_rx_rssi = payload_rx_rssi; + packet.payload_rx_fei = payload_rx_fei; + packet.battery_voltage = battery_voltage; + packet.main_packet_tx_error_count = main_packet_tx_error_count; + packet.main_tx_bitrate = main_tx_bitrate; + packet.main_packet_rx_success_count = main_packet_rx_success_count; + packet.main_packet_rx_drop_count = main_packet_rx_drop_count; + packet.main_rx_bitrate = main_rx_bitrate; + packet.payload_packet_tx_error_count = payload_packet_tx_error_count; + packet.payload_tx_bitrate = payload_tx_bitrate; + packet.payload_packet_rx_success_count = payload_packet_rx_success_count; + packet.payload_packet_rx_drop_count = payload_packet_rx_drop_count; + packet.payload_rx_bitrate = payload_rx_bitrate; + packet.main_radio_present = main_radio_present; + packet.payload_radio_present = payload_radio_present; + packet.ethernet_present = ethernet_present; + packet.ethernet_status = ethernet_status; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_RECEIVER_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_RECEIVER_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN, MAVLINK_MSG_ID_RECEIVER_TM_LEN, MAVLINK_MSG_ID_RECEIVER_TM_CRC); +} + +/** + * @brief Encode a receiver_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param receiver_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_receiver_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_receiver_tm_t* receiver_tm) +{ + return mavlink_msg_receiver_tm_pack(system_id, component_id, msg, receiver_tm->timestamp, receiver_tm->main_radio_present, receiver_tm->main_packet_tx_error_count, receiver_tm->main_tx_bitrate, receiver_tm->main_packet_rx_success_count, receiver_tm->main_packet_rx_drop_count, receiver_tm->main_rx_bitrate, receiver_tm->main_rx_rssi, receiver_tm->main_rx_fei, receiver_tm->payload_radio_present, receiver_tm->payload_packet_tx_error_count, receiver_tm->payload_tx_bitrate, receiver_tm->payload_packet_rx_success_count, receiver_tm->payload_packet_rx_drop_count, receiver_tm->payload_rx_bitrate, receiver_tm->payload_rx_rssi, receiver_tm->payload_rx_fei, receiver_tm->ethernet_present, receiver_tm->ethernet_status, receiver_tm->battery_voltage); +} + +/** + * @brief Encode a receiver_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param receiver_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_receiver_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_receiver_tm_t* receiver_tm) +{ + return mavlink_msg_receiver_tm_pack_chan(system_id, component_id, chan, msg, receiver_tm->timestamp, receiver_tm->main_radio_present, receiver_tm->main_packet_tx_error_count, receiver_tm->main_tx_bitrate, receiver_tm->main_packet_rx_success_count, receiver_tm->main_packet_rx_drop_count, receiver_tm->main_rx_bitrate, receiver_tm->main_rx_rssi, receiver_tm->main_rx_fei, receiver_tm->payload_radio_present, receiver_tm->payload_packet_tx_error_count, receiver_tm->payload_tx_bitrate, receiver_tm->payload_packet_rx_success_count, receiver_tm->payload_packet_rx_drop_count, receiver_tm->payload_rx_bitrate, receiver_tm->payload_rx_rssi, receiver_tm->payload_rx_fei, receiver_tm->ethernet_present, receiver_tm->ethernet_status, receiver_tm->battery_voltage); +} + +/** + * @brief Send a receiver_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] Timestamp + * @param main_radio_present Boolean indicating the presence of the main radio + * @param main_packet_tx_error_count Number of errors during send + * @param main_tx_bitrate [b/s] Send bitrate + * @param main_packet_rx_success_count Number of succesfull received mavlink packets + * @param main_packet_rx_drop_count Number of dropped mavlink packets + * @param main_rx_bitrate [b/s] Receive bitrate + * @param main_rx_rssi [dBm] Receive RSSI + * @param main_rx_fei [Hz] Receive frequency error index + * @param payload_radio_present Boolean indicating the presence of the payload radio + * @param payload_packet_tx_error_count Number of errors during send + * @param payload_tx_bitrate [b/s] Send bitrate + * @param payload_packet_rx_success_count Number of succesfull received mavlink packets + * @param payload_packet_rx_drop_count Number of dropped mavlink packets + * @param payload_rx_bitrate [b/s] Receive bitrate + * @param payload_rx_rssi [dBm] Receive RSSI + * @param payload_rx_fei [Hz] Receive frequency error index + * @param ethernet_present Boolean indicating the presence of the ethernet module + * @param ethernet_status Status flag indicating the status of the ethernet PHY + * @param battery_voltage [V] Battery voltage + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_receiver_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t main_radio_present, uint16_t main_packet_tx_error_count, uint16_t main_tx_bitrate, uint16_t main_packet_rx_success_count, uint16_t main_packet_rx_drop_count, uint16_t main_rx_bitrate, float main_rx_rssi, float main_rx_fei, uint8_t payload_radio_present, uint16_t payload_packet_tx_error_count, uint16_t payload_tx_bitrate, uint16_t payload_packet_rx_success_count, uint16_t payload_packet_rx_drop_count, uint16_t payload_rx_bitrate, float payload_rx_rssi, float payload_rx_fei, uint8_t ethernet_present, uint8_t ethernet_status, float battery_voltage) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RECEIVER_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, main_rx_rssi); + _mav_put_float(buf, 12, main_rx_fei); + _mav_put_float(buf, 16, payload_rx_rssi); + _mav_put_float(buf, 20, payload_rx_fei); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_uint16_t(buf, 28, main_packet_tx_error_count); + _mav_put_uint16_t(buf, 30, main_tx_bitrate); + _mav_put_uint16_t(buf, 32, main_packet_rx_success_count); + _mav_put_uint16_t(buf, 34, main_packet_rx_drop_count); + _mav_put_uint16_t(buf, 36, main_rx_bitrate); + _mav_put_uint16_t(buf, 38, payload_packet_tx_error_count); + _mav_put_uint16_t(buf, 40, payload_tx_bitrate); + _mav_put_uint16_t(buf, 42, payload_packet_rx_success_count); + _mav_put_uint16_t(buf, 44, payload_packet_rx_drop_count); + _mav_put_uint16_t(buf, 46, payload_rx_bitrate); + _mav_put_uint8_t(buf, 48, main_radio_present); + _mav_put_uint8_t(buf, 49, payload_radio_present); + _mav_put_uint8_t(buf, 50, ethernet_present); + _mav_put_uint8_t(buf, 51, ethernet_status); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RECEIVER_TM, buf, MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN, MAVLINK_MSG_ID_RECEIVER_TM_LEN, MAVLINK_MSG_ID_RECEIVER_TM_CRC); +#else + mavlink_receiver_tm_t packet; + packet.timestamp = timestamp; + packet.main_rx_rssi = main_rx_rssi; + packet.main_rx_fei = main_rx_fei; + packet.payload_rx_rssi = payload_rx_rssi; + packet.payload_rx_fei = payload_rx_fei; + packet.battery_voltage = battery_voltage; + packet.main_packet_tx_error_count = main_packet_tx_error_count; + packet.main_tx_bitrate = main_tx_bitrate; + packet.main_packet_rx_success_count = main_packet_rx_success_count; + packet.main_packet_rx_drop_count = main_packet_rx_drop_count; + packet.main_rx_bitrate = main_rx_bitrate; + packet.payload_packet_tx_error_count = payload_packet_tx_error_count; + packet.payload_tx_bitrate = payload_tx_bitrate; + packet.payload_packet_rx_success_count = payload_packet_rx_success_count; + packet.payload_packet_rx_drop_count = payload_packet_rx_drop_count; + packet.payload_rx_bitrate = payload_rx_bitrate; + packet.main_radio_present = main_radio_present; + packet.payload_radio_present = payload_radio_present; + packet.ethernet_present = ethernet_present; + packet.ethernet_status = ethernet_status; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RECEIVER_TM, (const char *)&packet, MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN, MAVLINK_MSG_ID_RECEIVER_TM_LEN, MAVLINK_MSG_ID_RECEIVER_TM_CRC); +#endif +} + +/** + * @brief Send a receiver_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_receiver_tm_send_struct(mavlink_channel_t chan, const mavlink_receiver_tm_t* receiver_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_receiver_tm_send(chan, receiver_tm->timestamp, receiver_tm->main_radio_present, receiver_tm->main_packet_tx_error_count, receiver_tm->main_tx_bitrate, receiver_tm->main_packet_rx_success_count, receiver_tm->main_packet_rx_drop_count, receiver_tm->main_rx_bitrate, receiver_tm->main_rx_rssi, receiver_tm->main_rx_fei, receiver_tm->payload_radio_present, receiver_tm->payload_packet_tx_error_count, receiver_tm->payload_tx_bitrate, receiver_tm->payload_packet_rx_success_count, receiver_tm->payload_packet_rx_drop_count, receiver_tm->payload_rx_bitrate, receiver_tm->payload_rx_rssi, receiver_tm->payload_rx_fei, receiver_tm->ethernet_present, receiver_tm->ethernet_status, receiver_tm->battery_voltage); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RECEIVER_TM, (const char *)receiver_tm, MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN, MAVLINK_MSG_ID_RECEIVER_TM_LEN, MAVLINK_MSG_ID_RECEIVER_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_RECEIVER_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_receiver_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t main_radio_present, uint16_t main_packet_tx_error_count, uint16_t main_tx_bitrate, uint16_t main_packet_rx_success_count, uint16_t main_packet_rx_drop_count, uint16_t main_rx_bitrate, float main_rx_rssi, float main_rx_fei, uint8_t payload_radio_present, uint16_t payload_packet_tx_error_count, uint16_t payload_tx_bitrate, uint16_t payload_packet_rx_success_count, uint16_t payload_packet_rx_drop_count, uint16_t payload_rx_bitrate, float payload_rx_rssi, float payload_rx_fei, uint8_t ethernet_present, uint8_t ethernet_status, float battery_voltage) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, main_rx_rssi); + _mav_put_float(buf, 12, main_rx_fei); + _mav_put_float(buf, 16, payload_rx_rssi); + _mav_put_float(buf, 20, payload_rx_fei); + _mav_put_float(buf, 24, battery_voltage); + _mav_put_uint16_t(buf, 28, main_packet_tx_error_count); + _mav_put_uint16_t(buf, 30, main_tx_bitrate); + _mav_put_uint16_t(buf, 32, main_packet_rx_success_count); + _mav_put_uint16_t(buf, 34, main_packet_rx_drop_count); + _mav_put_uint16_t(buf, 36, main_rx_bitrate); + _mav_put_uint16_t(buf, 38, payload_packet_tx_error_count); + _mav_put_uint16_t(buf, 40, payload_tx_bitrate); + _mav_put_uint16_t(buf, 42, payload_packet_rx_success_count); + _mav_put_uint16_t(buf, 44, payload_packet_rx_drop_count); + _mav_put_uint16_t(buf, 46, payload_rx_bitrate); + _mav_put_uint8_t(buf, 48, main_radio_present); + _mav_put_uint8_t(buf, 49, payload_radio_present); + _mav_put_uint8_t(buf, 50, ethernet_present); + _mav_put_uint8_t(buf, 51, ethernet_status); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RECEIVER_TM, buf, MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN, MAVLINK_MSG_ID_RECEIVER_TM_LEN, MAVLINK_MSG_ID_RECEIVER_TM_CRC); +#else + mavlink_receiver_tm_t *packet = (mavlink_receiver_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->main_rx_rssi = main_rx_rssi; + packet->main_rx_fei = main_rx_fei; + packet->payload_rx_rssi = payload_rx_rssi; + packet->payload_rx_fei = payload_rx_fei; + packet->battery_voltage = battery_voltage; + packet->main_packet_tx_error_count = main_packet_tx_error_count; + packet->main_tx_bitrate = main_tx_bitrate; + packet->main_packet_rx_success_count = main_packet_rx_success_count; + packet->main_packet_rx_drop_count = main_packet_rx_drop_count; + packet->main_rx_bitrate = main_rx_bitrate; + packet->payload_packet_tx_error_count = payload_packet_tx_error_count; + packet->payload_tx_bitrate = payload_tx_bitrate; + packet->payload_packet_rx_success_count = payload_packet_rx_success_count; + packet->payload_packet_rx_drop_count = payload_packet_rx_drop_count; + packet->payload_rx_bitrate = payload_rx_bitrate; + packet->main_radio_present = main_radio_present; + packet->payload_radio_present = payload_radio_present; + packet->ethernet_present = ethernet_present; + packet->ethernet_status = ethernet_status; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RECEIVER_TM, (const char *)packet, MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN, MAVLINK_MSG_ID_RECEIVER_TM_LEN, MAVLINK_MSG_ID_RECEIVER_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE RECEIVER_TM UNPACKING + + +/** + * @brief Get field timestamp from receiver_tm message + * + * @return [us] Timestamp + */ +static inline uint64_t mavlink_msg_receiver_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field main_radio_present from receiver_tm message + * + * @return Boolean indicating the presence of the main radio + */ +static inline uint8_t mavlink_msg_receiver_tm_get_main_radio_present(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 48); +} + +/** + * @brief Get field main_packet_tx_error_count from receiver_tm message + * + * @return Number of errors during send + */ +static inline uint16_t mavlink_msg_receiver_tm_get_main_packet_tx_error_count(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 28); +} + +/** + * @brief Get field main_tx_bitrate from receiver_tm message + * + * @return [b/s] Send bitrate + */ +static inline uint16_t mavlink_msg_receiver_tm_get_main_tx_bitrate(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 30); +} + +/** + * @brief Get field main_packet_rx_success_count from receiver_tm message + * + * @return Number of succesfull received mavlink packets + */ +static inline uint16_t mavlink_msg_receiver_tm_get_main_packet_rx_success_count(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 32); +} + +/** + * @brief Get field main_packet_rx_drop_count from receiver_tm message + * + * @return Number of dropped mavlink packets + */ +static inline uint16_t mavlink_msg_receiver_tm_get_main_packet_rx_drop_count(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 34); +} + +/** + * @brief Get field main_rx_bitrate from receiver_tm message + * + * @return [b/s] Receive bitrate + */ +static inline uint16_t mavlink_msg_receiver_tm_get_main_rx_bitrate(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 36); +} + +/** + * @brief Get field main_rx_rssi from receiver_tm message + * + * @return [dBm] Receive RSSI + */ +static inline float mavlink_msg_receiver_tm_get_main_rx_rssi(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field main_rx_fei from receiver_tm message + * + * @return [Hz] Receive frequency error index + */ +static inline float mavlink_msg_receiver_tm_get_main_rx_fei(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field payload_radio_present from receiver_tm message + * + * @return Boolean indicating the presence of the payload radio + */ +static inline uint8_t mavlink_msg_receiver_tm_get_payload_radio_present(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 49); +} + +/** + * @brief Get field payload_packet_tx_error_count from receiver_tm message + * + * @return Number of errors during send + */ +static inline uint16_t mavlink_msg_receiver_tm_get_payload_packet_tx_error_count(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 38); +} + +/** + * @brief Get field payload_tx_bitrate from receiver_tm message + * + * @return [b/s] Send bitrate + */ +static inline uint16_t mavlink_msg_receiver_tm_get_payload_tx_bitrate(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 40); +} + +/** + * @brief Get field payload_packet_rx_success_count from receiver_tm message + * + * @return Number of succesfull received mavlink packets + */ +static inline uint16_t mavlink_msg_receiver_tm_get_payload_packet_rx_success_count(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 42); +} + +/** + * @brief Get field payload_packet_rx_drop_count from receiver_tm message + * + * @return Number of dropped mavlink packets + */ +static inline uint16_t mavlink_msg_receiver_tm_get_payload_packet_rx_drop_count(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 44); +} + +/** + * @brief Get field payload_rx_bitrate from receiver_tm message + * + * @return [b/s] Receive bitrate + */ +static inline uint16_t mavlink_msg_receiver_tm_get_payload_rx_bitrate(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 46); +} + +/** + * @brief Get field payload_rx_rssi from receiver_tm message + * + * @return [dBm] Receive RSSI + */ +static inline float mavlink_msg_receiver_tm_get_payload_rx_rssi(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field payload_rx_fei from receiver_tm message + * + * @return [Hz] Receive frequency error index + */ +static inline float mavlink_msg_receiver_tm_get_payload_rx_fei(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field ethernet_present from receiver_tm message + * + * @return Boolean indicating the presence of the ethernet module + */ +static inline uint8_t mavlink_msg_receiver_tm_get_ethernet_present(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 50); +} + +/** + * @brief Get field ethernet_status from receiver_tm message + * + * @return Status flag indicating the status of the ethernet PHY + */ +static inline uint8_t mavlink_msg_receiver_tm_get_ethernet_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 51); +} + +/** + * @brief Get field battery_voltage from receiver_tm message + * + * @return [V] Battery voltage + */ +static inline float mavlink_msg_receiver_tm_get_battery_voltage(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Decode a receiver_tm message into a struct + * + * @param msg The message to decode + * @param receiver_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_receiver_tm_decode(const mavlink_message_t* msg, mavlink_receiver_tm_t* receiver_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + receiver_tm->timestamp = mavlink_msg_receiver_tm_get_timestamp(msg); + receiver_tm->main_rx_rssi = mavlink_msg_receiver_tm_get_main_rx_rssi(msg); + receiver_tm->main_rx_fei = mavlink_msg_receiver_tm_get_main_rx_fei(msg); + receiver_tm->payload_rx_rssi = mavlink_msg_receiver_tm_get_payload_rx_rssi(msg); + receiver_tm->payload_rx_fei = mavlink_msg_receiver_tm_get_payload_rx_fei(msg); + receiver_tm->battery_voltage = mavlink_msg_receiver_tm_get_battery_voltage(msg); + receiver_tm->main_packet_tx_error_count = mavlink_msg_receiver_tm_get_main_packet_tx_error_count(msg); + receiver_tm->main_tx_bitrate = mavlink_msg_receiver_tm_get_main_tx_bitrate(msg); + receiver_tm->main_packet_rx_success_count = mavlink_msg_receiver_tm_get_main_packet_rx_success_count(msg); + receiver_tm->main_packet_rx_drop_count = mavlink_msg_receiver_tm_get_main_packet_rx_drop_count(msg); + receiver_tm->main_rx_bitrate = mavlink_msg_receiver_tm_get_main_rx_bitrate(msg); + receiver_tm->payload_packet_tx_error_count = mavlink_msg_receiver_tm_get_payload_packet_tx_error_count(msg); + receiver_tm->payload_tx_bitrate = mavlink_msg_receiver_tm_get_payload_tx_bitrate(msg); + receiver_tm->payload_packet_rx_success_count = mavlink_msg_receiver_tm_get_payload_packet_rx_success_count(msg); + receiver_tm->payload_packet_rx_drop_count = mavlink_msg_receiver_tm_get_payload_packet_rx_drop_count(msg); + receiver_tm->payload_rx_bitrate = mavlink_msg_receiver_tm_get_payload_rx_bitrate(msg); + receiver_tm->main_radio_present = mavlink_msg_receiver_tm_get_main_radio_present(msg); + receiver_tm->payload_radio_present = mavlink_msg_receiver_tm_get_payload_radio_present(msg); + receiver_tm->ethernet_present = mavlink_msg_receiver_tm_get_ethernet_present(msg); + receiver_tm->ethernet_status = mavlink_msg_receiver_tm_get_ethernet_status(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_RECEIVER_TM_LEN? msg->len : MAVLINK_MSG_ID_RECEIVER_TM_LEN; + memset(receiver_tm, 0, MAVLINK_MSG_ID_RECEIVER_TM_LEN); + memcpy(receiver_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_reset_servo_tc.h b/mavlink_lib/lyra/mavlink_msg_reset_servo_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..3194a30241ddfb4d40efc96b727240c69f4842ac --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_reset_servo_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE RESET_SERVO_TC PACKING + +#define MAVLINK_MSG_ID_RESET_SERVO_TC 8 + + +typedef struct __mavlink_reset_servo_tc_t { + uint8_t servo_id; /*< A member of the ServosList enum*/ +} mavlink_reset_servo_tc_t; + +#define MAVLINK_MSG_ID_RESET_SERVO_TC_LEN 1 +#define MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN 1 +#define MAVLINK_MSG_ID_8_LEN 1 +#define MAVLINK_MSG_ID_8_MIN_LEN 1 + +#define MAVLINK_MSG_ID_RESET_SERVO_TC_CRC 226 +#define MAVLINK_MSG_ID_8_CRC 226 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_RESET_SERVO_TC { \ + 8, \ + "RESET_SERVO_TC", \ + 1, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_reset_servo_tc_t, servo_id) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_RESET_SERVO_TC { \ + "RESET_SERVO_TC", \ + 1, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_reset_servo_tc_t, servo_id) }, \ + } \ +} +#endif + +/** + * @brief Pack a reset_servo_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param servo_id A member of the ServosList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_reset_servo_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RESET_SERVO_TC_LEN]; + _mav_put_uint8_t(buf, 0, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN); +#else + mavlink_reset_servo_tc_t packet; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_RESET_SERVO_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_CRC); +} + +/** + * @brief Pack a reset_servo_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servo_id A member of the ServosList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_reset_servo_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RESET_SERVO_TC_LEN]; + _mav_put_uint8_t(buf, 0, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN); +#else + mavlink_reset_servo_tc_t packet; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_RESET_SERVO_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_CRC); +} + +/** + * @brief Encode a reset_servo_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param reset_servo_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_reset_servo_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_reset_servo_tc_t* reset_servo_tc) +{ + return mavlink_msg_reset_servo_tc_pack(system_id, component_id, msg, reset_servo_tc->servo_id); +} + +/** + * @brief Encode a reset_servo_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param reset_servo_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_reset_servo_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_reset_servo_tc_t* reset_servo_tc) +{ + return mavlink_msg_reset_servo_tc_pack_chan(system_id, component_id, chan, msg, reset_servo_tc->servo_id); +} + +/** + * @brief Send a reset_servo_tc message + * @param chan MAVLink channel to send the message + * + * @param servo_id A member of the ServosList enum + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_reset_servo_tc_send(mavlink_channel_t chan, uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RESET_SERVO_TC_LEN]; + _mav_put_uint8_t(buf, 0, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RESET_SERVO_TC, buf, MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_CRC); +#else + mavlink_reset_servo_tc_t packet; + packet.servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RESET_SERVO_TC, (const char *)&packet, MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_CRC); +#endif +} + +/** + * @brief Send a reset_servo_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_reset_servo_tc_send_struct(mavlink_channel_t chan, const mavlink_reset_servo_tc_t* reset_servo_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_reset_servo_tc_send(chan, reset_servo_tc->servo_id); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RESET_SERVO_TC, (const char *)reset_servo_tc, MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_RESET_SERVO_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_reset_servo_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RESET_SERVO_TC, buf, MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_CRC); +#else + mavlink_reset_servo_tc_t *packet = (mavlink_reset_servo_tc_t *)msgbuf; + packet->servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RESET_SERVO_TC, (const char *)packet, MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN, MAVLINK_MSG_ID_RESET_SERVO_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE RESET_SERVO_TC UNPACKING + + +/** + * @brief Get field servo_id from reset_servo_tc message + * + * @return A member of the ServosList enum + */ +static inline uint8_t mavlink_msg_reset_servo_tc_get_servo_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Decode a reset_servo_tc message into a struct + * + * @param msg The message to decode + * @param reset_servo_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_reset_servo_tc_decode(const mavlink_message_t* msg, mavlink_reset_servo_tc_t* reset_servo_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + reset_servo_tc->servo_id = mavlink_msg_reset_servo_tc_get_servo_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_RESET_SERVO_TC_LEN? msg->len : MAVLINK_MSG_ID_RESET_SERVO_TC_LEN; + memset(reset_servo_tc, 0, MAVLINK_MSG_ID_RESET_SERVO_TC_LEN); + memcpy(reset_servo_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_rocket_flight_tm.h b/mavlink_lib/lyra/mavlink_msg_rocket_flight_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..e3949ca456e8719920b4822b1e08e708b2e51b26 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_rocket_flight_tm.h @@ -0,0 +1,1488 @@ +#pragma once +// MESSAGE ROCKET_FLIGHT_TM PACKING + +#define MAVLINK_MSG_ID_ROCKET_FLIGHT_TM 208 + + +typedef struct __mavlink_rocket_flight_tm_t { + uint64_t timestamp; /*< [us] Timestamp in microseconds*/ + float pressure_ada; /*< [Pa] Atmospheric pressure estimated by ADA*/ + float pressure_digi; /*< [Pa] Pressure from digital sensor*/ + float pressure_static; /*< [Pa] Pressure from static port*/ + float pressure_dpl; /*< [Pa] Pressure from deployment vane sensor*/ + float airspeed_pitot; /*< [m/s] Pitot airspeed*/ + float altitude_agl; /*< [m] Altitude above ground level*/ + float ada_vert_speed; /*< [m/s] Vertical speed estimated by ADA*/ + float mea_mass; /*< [kg] Mass estimated by MEA*/ + float acc_x; /*< [m/s^2] Acceleration on X axis (body)*/ + float acc_y; /*< [m/s^2] Acceleration on Y axis (body)*/ + float acc_z; /*< [m/s^2] Acceleration on Z axis (body)*/ + float gyro_x; /*< [rad/s] Angular speed on X axis (body)*/ + float gyro_y; /*< [rad/s] Angular speed on Y axis (body)*/ + float gyro_z; /*< [rad/s] Angular speed on Z axis (body)*/ + float mag_x; /*< [uT] Magnetic field on X axis (body)*/ + float mag_y; /*< [uT] Magnetic field on Y axis (body)*/ + float mag_z; /*< [uT] Magnetic field on Z axis (body)*/ + float gps_lat; /*< [deg] Latitude*/ + float gps_lon; /*< [deg] Longitude*/ + float gps_alt; /*< [m] GPS Altitude*/ + float abk_angle; /*< [deg] Air Brakes angle*/ + float nas_n; /*< [deg] Navigation system estimated noth position*/ + float nas_e; /*< [deg] Navigation system estimated east position*/ + float nas_d; /*< [m] Navigation system estimated down position*/ + float nas_vn; /*< [m/s] Navigation system estimated north velocity*/ + float nas_ve; /*< [m/s] Navigation system estimated east velocity*/ + float nas_vd; /*< [m/s] Navigation system estimated down velocity*/ + float nas_qx; /*< [deg] Navigation system estimated attitude (qx)*/ + float nas_qy; /*< [deg] Navigation system estimated attitude (qy)*/ + float nas_qz; /*< [deg] Navigation system estimated attitude (qz)*/ + float nas_qw; /*< [deg] Navigation system estimated attitude (qw)*/ + float nas_bias_x; /*< Navigation system gyroscope bias on x axis*/ + float nas_bias_y; /*< Navigation system gyroscope bias on y axis*/ + float nas_bias_z; /*< Navigation system gyroscope bias on z axis*/ + float pin_quick_connector; /*< Quick connector detach pin */ + float battery_voltage; /*< [V] Battery voltage*/ + float cam_battery_voltage; /*< [V] Camera battery voltage*/ + float current_consumption; /*< [A] Battery current*/ + float temperature; /*< [degC] Temperature*/ + uint8_t ada_state; /*< ADA Controller State*/ + uint8_t fmm_state; /*< Flight Mode Manager State*/ + uint8_t dpl_state; /*< Deployment Controller State*/ + uint8_t abk_state; /*< Airbrake FSM state*/ + uint8_t nas_state; /*< Navigation System FSM State*/ + uint8_t mea_state; /*< MEA Controller State*/ + uint8_t gps_fix; /*< GPS fix (1 = fix, 0 = no fix)*/ + uint8_t pin_launch; /*< Launch pin status (1 = connected, 0 = disconnected)*/ + uint8_t pin_nosecone; /*< Nosecone pin status (1 = connected, 0 = disconnected)*/ + uint8_t pin_expulsion; /*< Servo sensor status (1 = actuated, 0 = idle)*/ + uint8_t cutter_presence; /*< Cutter presence status (1 = present, 0 = missing)*/ + int8_t logger_error; /*< Logger error (0 = no error, -1 otherwise)*/ +} mavlink_rocket_flight_tm_t; + +#define MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN 176 +#define MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN 176 +#define MAVLINK_MSG_ID_208_LEN 176 +#define MAVLINK_MSG_ID_208_MIN_LEN 176 + +#define MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_CRC 214 +#define MAVLINK_MSG_ID_208_CRC 214 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_ROCKET_FLIGHT_TM { \ + 208, \ + "ROCKET_FLIGHT_TM", \ + 52, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_rocket_flight_tm_t, timestamp) }, \ + { "ada_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 164, offsetof(mavlink_rocket_flight_tm_t, ada_state) }, \ + { "fmm_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 165, offsetof(mavlink_rocket_flight_tm_t, fmm_state) }, \ + { "dpl_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 166, offsetof(mavlink_rocket_flight_tm_t, dpl_state) }, \ + { "abk_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 167, offsetof(mavlink_rocket_flight_tm_t, abk_state) }, \ + { "nas_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 168, offsetof(mavlink_rocket_flight_tm_t, nas_state) }, \ + { "mea_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 169, offsetof(mavlink_rocket_flight_tm_t, mea_state) }, \ + { "pressure_ada", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_rocket_flight_tm_t, pressure_ada) }, \ + { "pressure_digi", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_rocket_flight_tm_t, pressure_digi) }, \ + { "pressure_static", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_rocket_flight_tm_t, pressure_static) }, \ + { "pressure_dpl", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_rocket_flight_tm_t, pressure_dpl) }, \ + { "airspeed_pitot", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_rocket_flight_tm_t, airspeed_pitot) }, \ + { "altitude_agl", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_rocket_flight_tm_t, altitude_agl) }, \ + { "ada_vert_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_rocket_flight_tm_t, ada_vert_speed) }, \ + { "mea_mass", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_rocket_flight_tm_t, mea_mass) }, \ + { "acc_x", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_rocket_flight_tm_t, acc_x) }, \ + { "acc_y", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_rocket_flight_tm_t, acc_y) }, \ + { "acc_z", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_rocket_flight_tm_t, acc_z) }, \ + { "gyro_x", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_rocket_flight_tm_t, gyro_x) }, \ + { "gyro_y", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_rocket_flight_tm_t, gyro_y) }, \ + { "gyro_z", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_rocket_flight_tm_t, gyro_z) }, \ + { "mag_x", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_rocket_flight_tm_t, mag_x) }, \ + { "mag_y", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_rocket_flight_tm_t, mag_y) }, \ + { "mag_z", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_rocket_flight_tm_t, mag_z) }, \ + { "gps_fix", NULL, MAVLINK_TYPE_UINT8_T, 0, 170, offsetof(mavlink_rocket_flight_tm_t, gps_fix) }, \ + { "gps_lat", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_rocket_flight_tm_t, gps_lat) }, \ + { "gps_lon", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_rocket_flight_tm_t, gps_lon) }, \ + { "gps_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_rocket_flight_tm_t, gps_alt) }, \ + { "abk_angle", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_rocket_flight_tm_t, abk_angle) }, \ + { "nas_n", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_rocket_flight_tm_t, nas_n) }, \ + { "nas_e", NULL, MAVLINK_TYPE_FLOAT, 0, 96, offsetof(mavlink_rocket_flight_tm_t, nas_e) }, \ + { "nas_d", NULL, MAVLINK_TYPE_FLOAT, 0, 100, offsetof(mavlink_rocket_flight_tm_t, nas_d) }, \ + { "nas_vn", NULL, MAVLINK_TYPE_FLOAT, 0, 104, offsetof(mavlink_rocket_flight_tm_t, nas_vn) }, \ + { "nas_ve", NULL, MAVLINK_TYPE_FLOAT, 0, 108, offsetof(mavlink_rocket_flight_tm_t, nas_ve) }, \ + { "nas_vd", NULL, MAVLINK_TYPE_FLOAT, 0, 112, offsetof(mavlink_rocket_flight_tm_t, nas_vd) }, \ + { "nas_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 116, offsetof(mavlink_rocket_flight_tm_t, nas_qx) }, \ + { "nas_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 120, offsetof(mavlink_rocket_flight_tm_t, nas_qy) }, \ + { "nas_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 124, offsetof(mavlink_rocket_flight_tm_t, nas_qz) }, \ + { "nas_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 128, offsetof(mavlink_rocket_flight_tm_t, nas_qw) }, \ + { "nas_bias_x", NULL, MAVLINK_TYPE_FLOAT, 0, 132, offsetof(mavlink_rocket_flight_tm_t, nas_bias_x) }, \ + { "nas_bias_y", NULL, MAVLINK_TYPE_FLOAT, 0, 136, offsetof(mavlink_rocket_flight_tm_t, nas_bias_y) }, \ + { "nas_bias_z", NULL, MAVLINK_TYPE_FLOAT, 0, 140, offsetof(mavlink_rocket_flight_tm_t, nas_bias_z) }, \ + { "pin_quick_connector", NULL, MAVLINK_TYPE_FLOAT, 0, 144, offsetof(mavlink_rocket_flight_tm_t, pin_quick_connector) }, \ + { "pin_launch", NULL, MAVLINK_TYPE_UINT8_T, 0, 171, offsetof(mavlink_rocket_flight_tm_t, pin_launch) }, \ + { "pin_nosecone", NULL, MAVLINK_TYPE_UINT8_T, 0, 172, offsetof(mavlink_rocket_flight_tm_t, pin_nosecone) }, \ + { "pin_expulsion", NULL, MAVLINK_TYPE_UINT8_T, 0, 173, offsetof(mavlink_rocket_flight_tm_t, pin_expulsion) }, \ + { "cutter_presence", NULL, MAVLINK_TYPE_UINT8_T, 0, 174, offsetof(mavlink_rocket_flight_tm_t, cutter_presence) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 148, offsetof(mavlink_rocket_flight_tm_t, battery_voltage) }, \ + { "cam_battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 152, offsetof(mavlink_rocket_flight_tm_t, cam_battery_voltage) }, \ + { "current_consumption", NULL, MAVLINK_TYPE_FLOAT, 0, 156, offsetof(mavlink_rocket_flight_tm_t, current_consumption) }, \ + { "temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 160, offsetof(mavlink_rocket_flight_tm_t, temperature) }, \ + { "logger_error", NULL, MAVLINK_TYPE_INT8_T, 0, 175, offsetof(mavlink_rocket_flight_tm_t, logger_error) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_ROCKET_FLIGHT_TM { \ + "ROCKET_FLIGHT_TM", \ + 52, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_rocket_flight_tm_t, timestamp) }, \ + { "ada_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 164, offsetof(mavlink_rocket_flight_tm_t, ada_state) }, \ + { "fmm_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 165, offsetof(mavlink_rocket_flight_tm_t, fmm_state) }, \ + { "dpl_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 166, offsetof(mavlink_rocket_flight_tm_t, dpl_state) }, \ + { "abk_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 167, offsetof(mavlink_rocket_flight_tm_t, abk_state) }, \ + { "nas_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 168, offsetof(mavlink_rocket_flight_tm_t, nas_state) }, \ + { "mea_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 169, offsetof(mavlink_rocket_flight_tm_t, mea_state) }, \ + { "pressure_ada", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_rocket_flight_tm_t, pressure_ada) }, \ + { "pressure_digi", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_rocket_flight_tm_t, pressure_digi) }, \ + { "pressure_static", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_rocket_flight_tm_t, pressure_static) }, \ + { "pressure_dpl", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_rocket_flight_tm_t, pressure_dpl) }, \ + { "airspeed_pitot", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_rocket_flight_tm_t, airspeed_pitot) }, \ + { "altitude_agl", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_rocket_flight_tm_t, altitude_agl) }, \ + { "ada_vert_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_rocket_flight_tm_t, ada_vert_speed) }, \ + { "mea_mass", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_rocket_flight_tm_t, mea_mass) }, \ + { "acc_x", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_rocket_flight_tm_t, acc_x) }, \ + { "acc_y", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_rocket_flight_tm_t, acc_y) }, \ + { "acc_z", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_rocket_flight_tm_t, acc_z) }, \ + { "gyro_x", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_rocket_flight_tm_t, gyro_x) }, \ + { "gyro_y", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_rocket_flight_tm_t, gyro_y) }, \ + { "gyro_z", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_rocket_flight_tm_t, gyro_z) }, \ + { "mag_x", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_rocket_flight_tm_t, mag_x) }, \ + { "mag_y", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_rocket_flight_tm_t, mag_y) }, \ + { "mag_z", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_rocket_flight_tm_t, mag_z) }, \ + { "gps_fix", NULL, MAVLINK_TYPE_UINT8_T, 0, 170, offsetof(mavlink_rocket_flight_tm_t, gps_fix) }, \ + { "gps_lat", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_rocket_flight_tm_t, gps_lat) }, \ + { "gps_lon", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_rocket_flight_tm_t, gps_lon) }, \ + { "gps_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_rocket_flight_tm_t, gps_alt) }, \ + { "abk_angle", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_rocket_flight_tm_t, abk_angle) }, \ + { "nas_n", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_rocket_flight_tm_t, nas_n) }, \ + { "nas_e", NULL, MAVLINK_TYPE_FLOAT, 0, 96, offsetof(mavlink_rocket_flight_tm_t, nas_e) }, \ + { "nas_d", NULL, MAVLINK_TYPE_FLOAT, 0, 100, offsetof(mavlink_rocket_flight_tm_t, nas_d) }, \ + { "nas_vn", NULL, MAVLINK_TYPE_FLOAT, 0, 104, offsetof(mavlink_rocket_flight_tm_t, nas_vn) }, \ + { "nas_ve", NULL, MAVLINK_TYPE_FLOAT, 0, 108, offsetof(mavlink_rocket_flight_tm_t, nas_ve) }, \ + { "nas_vd", NULL, MAVLINK_TYPE_FLOAT, 0, 112, offsetof(mavlink_rocket_flight_tm_t, nas_vd) }, \ + { "nas_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 116, offsetof(mavlink_rocket_flight_tm_t, nas_qx) }, \ + { "nas_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 120, offsetof(mavlink_rocket_flight_tm_t, nas_qy) }, \ + { "nas_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 124, offsetof(mavlink_rocket_flight_tm_t, nas_qz) }, \ + { "nas_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 128, offsetof(mavlink_rocket_flight_tm_t, nas_qw) }, \ + { "nas_bias_x", NULL, MAVLINK_TYPE_FLOAT, 0, 132, offsetof(mavlink_rocket_flight_tm_t, nas_bias_x) }, \ + { "nas_bias_y", NULL, MAVLINK_TYPE_FLOAT, 0, 136, offsetof(mavlink_rocket_flight_tm_t, nas_bias_y) }, \ + { "nas_bias_z", NULL, MAVLINK_TYPE_FLOAT, 0, 140, offsetof(mavlink_rocket_flight_tm_t, nas_bias_z) }, \ + { "pin_quick_connector", NULL, MAVLINK_TYPE_FLOAT, 0, 144, offsetof(mavlink_rocket_flight_tm_t, pin_quick_connector) }, \ + { "pin_launch", NULL, MAVLINK_TYPE_UINT8_T, 0, 171, offsetof(mavlink_rocket_flight_tm_t, pin_launch) }, \ + { "pin_nosecone", NULL, MAVLINK_TYPE_UINT8_T, 0, 172, offsetof(mavlink_rocket_flight_tm_t, pin_nosecone) }, \ + { "pin_expulsion", NULL, MAVLINK_TYPE_UINT8_T, 0, 173, offsetof(mavlink_rocket_flight_tm_t, pin_expulsion) }, \ + { "cutter_presence", NULL, MAVLINK_TYPE_UINT8_T, 0, 174, offsetof(mavlink_rocket_flight_tm_t, cutter_presence) }, \ + { "battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 148, offsetof(mavlink_rocket_flight_tm_t, battery_voltage) }, \ + { "cam_battery_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 152, offsetof(mavlink_rocket_flight_tm_t, cam_battery_voltage) }, \ + { "current_consumption", NULL, MAVLINK_TYPE_FLOAT, 0, 156, offsetof(mavlink_rocket_flight_tm_t, current_consumption) }, \ + { "temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 160, offsetof(mavlink_rocket_flight_tm_t, temperature) }, \ + { "logger_error", NULL, MAVLINK_TYPE_INT8_T, 0, 175, offsetof(mavlink_rocket_flight_tm_t, logger_error) }, \ + } \ +} +#endif + +/** + * @brief Pack a rocket_flight_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] Timestamp in microseconds + * @param ada_state ADA Controller State + * @param fmm_state Flight Mode Manager State + * @param dpl_state Deployment Controller State + * @param abk_state Airbrake FSM state + * @param nas_state Navigation System FSM State + * @param mea_state MEA Controller State + * @param pressure_ada [Pa] Atmospheric pressure estimated by ADA + * @param pressure_digi [Pa] Pressure from digital sensor + * @param pressure_static [Pa] Pressure from static port + * @param pressure_dpl [Pa] Pressure from deployment vane sensor + * @param airspeed_pitot [m/s] Pitot airspeed + * @param altitude_agl [m] Altitude above ground level + * @param ada_vert_speed [m/s] Vertical speed estimated by ADA + * @param mea_mass [kg] Mass estimated by MEA + * @param acc_x [m/s^2] Acceleration on X axis (body) + * @param acc_y [m/s^2] Acceleration on Y axis (body) + * @param acc_z [m/s^2] Acceleration on Z axis (body) + * @param gyro_x [rad/s] Angular speed on X axis (body) + * @param gyro_y [rad/s] Angular speed on Y axis (body) + * @param gyro_z [rad/s] Angular speed on Z axis (body) + * @param mag_x [uT] Magnetic field on X axis (body) + * @param mag_y [uT] Magnetic field on Y axis (body) + * @param mag_z [uT] Magnetic field on Z axis (body) + * @param gps_fix GPS fix (1 = fix, 0 = no fix) + * @param gps_lat [deg] Latitude + * @param gps_lon [deg] Longitude + * @param gps_alt [m] GPS Altitude + * @param abk_angle [deg] Air Brakes angle + * @param nas_n [deg] Navigation system estimated noth position + * @param nas_e [deg] Navigation system estimated east position + * @param nas_d [m] Navigation system estimated down position + * @param nas_vn [m/s] Navigation system estimated north velocity + * @param nas_ve [m/s] Navigation system estimated east velocity + * @param nas_vd [m/s] Navigation system estimated down velocity + * @param nas_qx [deg] Navigation system estimated attitude (qx) + * @param nas_qy [deg] Navigation system estimated attitude (qy) + * @param nas_qz [deg] Navigation system estimated attitude (qz) + * @param nas_qw [deg] Navigation system estimated attitude (qw) + * @param nas_bias_x Navigation system gyroscope bias on x axis + * @param nas_bias_y Navigation system gyroscope bias on y axis + * @param nas_bias_z Navigation system gyroscope bias on z axis + * @param pin_quick_connector Quick connector detach pin + * @param pin_launch Launch pin status (1 = connected, 0 = disconnected) + * @param pin_nosecone Nosecone pin status (1 = connected, 0 = disconnected) + * @param pin_expulsion Servo sensor status (1 = actuated, 0 = idle) + * @param cutter_presence Cutter presence status (1 = present, 0 = missing) + * @param battery_voltage [V] Battery voltage + * @param cam_battery_voltage [V] Camera battery voltage + * @param current_consumption [A] Battery current + * @param temperature [degC] Temperature + * @param logger_error Logger error (0 = no error, -1 otherwise) + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_rocket_flight_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t ada_state, uint8_t fmm_state, uint8_t dpl_state, uint8_t abk_state, uint8_t nas_state, uint8_t mea_state, float pressure_ada, float pressure_digi, float pressure_static, float pressure_dpl, float airspeed_pitot, float altitude_agl, float ada_vert_speed, float mea_mass, float acc_x, float acc_y, float acc_z, float gyro_x, float gyro_y, float gyro_z, float mag_x, float mag_y, float mag_z, uint8_t gps_fix, float gps_lat, float gps_lon, float gps_alt, float abk_angle, float nas_n, float nas_e, float nas_d, float nas_vn, float nas_ve, float nas_vd, float nas_qx, float nas_qy, float nas_qz, float nas_qw, float nas_bias_x, float nas_bias_y, float nas_bias_z, float pin_quick_connector, uint8_t pin_launch, uint8_t pin_nosecone, uint8_t pin_expulsion, uint8_t cutter_presence, float battery_voltage, float cam_battery_voltage, float current_consumption, float temperature, int8_t logger_error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure_ada); + _mav_put_float(buf, 12, pressure_digi); + _mav_put_float(buf, 16, pressure_static); + _mav_put_float(buf, 20, pressure_dpl); + _mav_put_float(buf, 24, airspeed_pitot); + _mav_put_float(buf, 28, altitude_agl); + _mav_put_float(buf, 32, ada_vert_speed); + _mav_put_float(buf, 36, mea_mass); + _mav_put_float(buf, 40, acc_x); + _mav_put_float(buf, 44, acc_y); + _mav_put_float(buf, 48, acc_z); + _mav_put_float(buf, 52, gyro_x); + _mav_put_float(buf, 56, gyro_y); + _mav_put_float(buf, 60, gyro_z); + _mav_put_float(buf, 64, mag_x); + _mav_put_float(buf, 68, mag_y); + _mav_put_float(buf, 72, mag_z); + _mav_put_float(buf, 76, gps_lat); + _mav_put_float(buf, 80, gps_lon); + _mav_put_float(buf, 84, gps_alt); + _mav_put_float(buf, 88, abk_angle); + _mav_put_float(buf, 92, nas_n); + _mav_put_float(buf, 96, nas_e); + _mav_put_float(buf, 100, nas_d); + _mav_put_float(buf, 104, nas_vn); + _mav_put_float(buf, 108, nas_ve); + _mav_put_float(buf, 112, nas_vd); + _mav_put_float(buf, 116, nas_qx); + _mav_put_float(buf, 120, nas_qy); + _mav_put_float(buf, 124, nas_qz); + _mav_put_float(buf, 128, nas_qw); + _mav_put_float(buf, 132, nas_bias_x); + _mav_put_float(buf, 136, nas_bias_y); + _mav_put_float(buf, 140, nas_bias_z); + _mav_put_float(buf, 144, pin_quick_connector); + _mav_put_float(buf, 148, battery_voltage); + _mav_put_float(buf, 152, cam_battery_voltage); + _mav_put_float(buf, 156, current_consumption); + _mav_put_float(buf, 160, temperature); + _mav_put_uint8_t(buf, 164, ada_state); + _mav_put_uint8_t(buf, 165, fmm_state); + _mav_put_uint8_t(buf, 166, dpl_state); + _mav_put_uint8_t(buf, 167, abk_state); + _mav_put_uint8_t(buf, 168, nas_state); + _mav_put_uint8_t(buf, 169, mea_state); + _mav_put_uint8_t(buf, 170, gps_fix); + _mav_put_uint8_t(buf, 171, pin_launch); + _mav_put_uint8_t(buf, 172, pin_nosecone); + _mav_put_uint8_t(buf, 173, pin_expulsion); + _mav_put_uint8_t(buf, 174, cutter_presence); + _mav_put_int8_t(buf, 175, logger_error); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN); +#else + mavlink_rocket_flight_tm_t packet; + packet.timestamp = timestamp; + packet.pressure_ada = pressure_ada; + packet.pressure_digi = pressure_digi; + packet.pressure_static = pressure_static; + packet.pressure_dpl = pressure_dpl; + packet.airspeed_pitot = airspeed_pitot; + packet.altitude_agl = altitude_agl; + packet.ada_vert_speed = ada_vert_speed; + packet.mea_mass = mea_mass; + packet.acc_x = acc_x; + packet.acc_y = acc_y; + packet.acc_z = acc_z; + packet.gyro_x = gyro_x; + packet.gyro_y = gyro_y; + packet.gyro_z = gyro_z; + packet.mag_x = mag_x; + packet.mag_y = mag_y; + packet.mag_z = mag_z; + packet.gps_lat = gps_lat; + packet.gps_lon = gps_lon; + packet.gps_alt = gps_alt; + packet.abk_angle = abk_angle; + packet.nas_n = nas_n; + packet.nas_e = nas_e; + packet.nas_d = nas_d; + packet.nas_vn = nas_vn; + packet.nas_ve = nas_ve; + packet.nas_vd = nas_vd; + packet.nas_qx = nas_qx; + packet.nas_qy = nas_qy; + packet.nas_qz = nas_qz; + packet.nas_qw = nas_qw; + packet.nas_bias_x = nas_bias_x; + packet.nas_bias_y = nas_bias_y; + packet.nas_bias_z = nas_bias_z; + packet.pin_quick_connector = pin_quick_connector; + packet.battery_voltage = battery_voltage; + packet.cam_battery_voltage = cam_battery_voltage; + packet.current_consumption = current_consumption; + packet.temperature = temperature; + packet.ada_state = ada_state; + packet.fmm_state = fmm_state; + packet.dpl_state = dpl_state; + packet.abk_state = abk_state; + packet.nas_state = nas_state; + packet.mea_state = mea_state; + packet.gps_fix = gps_fix; + packet.pin_launch = pin_launch; + packet.pin_nosecone = pin_nosecone; + packet.pin_expulsion = pin_expulsion; + packet.cutter_presence = cutter_presence; + packet.logger_error = logger_error; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ROCKET_FLIGHT_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_CRC); +} + +/** + * @brief Pack a rocket_flight_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] Timestamp in microseconds + * @param ada_state ADA Controller State + * @param fmm_state Flight Mode Manager State + * @param dpl_state Deployment Controller State + * @param abk_state Airbrake FSM state + * @param nas_state Navigation System FSM State + * @param mea_state MEA Controller State + * @param pressure_ada [Pa] Atmospheric pressure estimated by ADA + * @param pressure_digi [Pa] Pressure from digital sensor + * @param pressure_static [Pa] Pressure from static port + * @param pressure_dpl [Pa] Pressure from deployment vane sensor + * @param airspeed_pitot [m/s] Pitot airspeed + * @param altitude_agl [m] Altitude above ground level + * @param ada_vert_speed [m/s] Vertical speed estimated by ADA + * @param mea_mass [kg] Mass estimated by MEA + * @param acc_x [m/s^2] Acceleration on X axis (body) + * @param acc_y [m/s^2] Acceleration on Y axis (body) + * @param acc_z [m/s^2] Acceleration on Z axis (body) + * @param gyro_x [rad/s] Angular speed on X axis (body) + * @param gyro_y [rad/s] Angular speed on Y axis (body) + * @param gyro_z [rad/s] Angular speed on Z axis (body) + * @param mag_x [uT] Magnetic field on X axis (body) + * @param mag_y [uT] Magnetic field on Y axis (body) + * @param mag_z [uT] Magnetic field on Z axis (body) + * @param gps_fix GPS fix (1 = fix, 0 = no fix) + * @param gps_lat [deg] Latitude + * @param gps_lon [deg] Longitude + * @param gps_alt [m] GPS Altitude + * @param abk_angle [deg] Air Brakes angle + * @param nas_n [deg] Navigation system estimated noth position + * @param nas_e [deg] Navigation system estimated east position + * @param nas_d [m] Navigation system estimated down position + * @param nas_vn [m/s] Navigation system estimated north velocity + * @param nas_ve [m/s] Navigation system estimated east velocity + * @param nas_vd [m/s] Navigation system estimated down velocity + * @param nas_qx [deg] Navigation system estimated attitude (qx) + * @param nas_qy [deg] Navigation system estimated attitude (qy) + * @param nas_qz [deg] Navigation system estimated attitude (qz) + * @param nas_qw [deg] Navigation system estimated attitude (qw) + * @param nas_bias_x Navigation system gyroscope bias on x axis + * @param nas_bias_y Navigation system gyroscope bias on y axis + * @param nas_bias_z Navigation system gyroscope bias on z axis + * @param pin_quick_connector Quick connector detach pin + * @param pin_launch Launch pin status (1 = connected, 0 = disconnected) + * @param pin_nosecone Nosecone pin status (1 = connected, 0 = disconnected) + * @param pin_expulsion Servo sensor status (1 = actuated, 0 = idle) + * @param cutter_presence Cutter presence status (1 = present, 0 = missing) + * @param battery_voltage [V] Battery voltage + * @param cam_battery_voltage [V] Camera battery voltage + * @param current_consumption [A] Battery current + * @param temperature [degC] Temperature + * @param logger_error Logger error (0 = no error, -1 otherwise) + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_rocket_flight_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t ada_state,uint8_t fmm_state,uint8_t dpl_state,uint8_t abk_state,uint8_t nas_state,uint8_t mea_state,float pressure_ada,float pressure_digi,float pressure_static,float pressure_dpl,float airspeed_pitot,float altitude_agl,float ada_vert_speed,float mea_mass,float acc_x,float acc_y,float acc_z,float gyro_x,float gyro_y,float gyro_z,float mag_x,float mag_y,float mag_z,uint8_t gps_fix,float gps_lat,float gps_lon,float gps_alt,float abk_angle,float nas_n,float nas_e,float nas_d,float nas_vn,float nas_ve,float nas_vd,float nas_qx,float nas_qy,float nas_qz,float nas_qw,float nas_bias_x,float nas_bias_y,float nas_bias_z,float pin_quick_connector,uint8_t pin_launch,uint8_t pin_nosecone,uint8_t pin_expulsion,uint8_t cutter_presence,float battery_voltage,float cam_battery_voltage,float current_consumption,float temperature,int8_t logger_error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure_ada); + _mav_put_float(buf, 12, pressure_digi); + _mav_put_float(buf, 16, pressure_static); + _mav_put_float(buf, 20, pressure_dpl); + _mav_put_float(buf, 24, airspeed_pitot); + _mav_put_float(buf, 28, altitude_agl); + _mav_put_float(buf, 32, ada_vert_speed); + _mav_put_float(buf, 36, mea_mass); + _mav_put_float(buf, 40, acc_x); + _mav_put_float(buf, 44, acc_y); + _mav_put_float(buf, 48, acc_z); + _mav_put_float(buf, 52, gyro_x); + _mav_put_float(buf, 56, gyro_y); + _mav_put_float(buf, 60, gyro_z); + _mav_put_float(buf, 64, mag_x); + _mav_put_float(buf, 68, mag_y); + _mav_put_float(buf, 72, mag_z); + _mav_put_float(buf, 76, gps_lat); + _mav_put_float(buf, 80, gps_lon); + _mav_put_float(buf, 84, gps_alt); + _mav_put_float(buf, 88, abk_angle); + _mav_put_float(buf, 92, nas_n); + _mav_put_float(buf, 96, nas_e); + _mav_put_float(buf, 100, nas_d); + _mav_put_float(buf, 104, nas_vn); + _mav_put_float(buf, 108, nas_ve); + _mav_put_float(buf, 112, nas_vd); + _mav_put_float(buf, 116, nas_qx); + _mav_put_float(buf, 120, nas_qy); + _mav_put_float(buf, 124, nas_qz); + _mav_put_float(buf, 128, nas_qw); + _mav_put_float(buf, 132, nas_bias_x); + _mav_put_float(buf, 136, nas_bias_y); + _mav_put_float(buf, 140, nas_bias_z); + _mav_put_float(buf, 144, pin_quick_connector); + _mav_put_float(buf, 148, battery_voltage); + _mav_put_float(buf, 152, cam_battery_voltage); + _mav_put_float(buf, 156, current_consumption); + _mav_put_float(buf, 160, temperature); + _mav_put_uint8_t(buf, 164, ada_state); + _mav_put_uint8_t(buf, 165, fmm_state); + _mav_put_uint8_t(buf, 166, dpl_state); + _mav_put_uint8_t(buf, 167, abk_state); + _mav_put_uint8_t(buf, 168, nas_state); + _mav_put_uint8_t(buf, 169, mea_state); + _mav_put_uint8_t(buf, 170, gps_fix); + _mav_put_uint8_t(buf, 171, pin_launch); + _mav_put_uint8_t(buf, 172, pin_nosecone); + _mav_put_uint8_t(buf, 173, pin_expulsion); + _mav_put_uint8_t(buf, 174, cutter_presence); + _mav_put_int8_t(buf, 175, logger_error); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN); +#else + mavlink_rocket_flight_tm_t packet; + packet.timestamp = timestamp; + packet.pressure_ada = pressure_ada; + packet.pressure_digi = pressure_digi; + packet.pressure_static = pressure_static; + packet.pressure_dpl = pressure_dpl; + packet.airspeed_pitot = airspeed_pitot; + packet.altitude_agl = altitude_agl; + packet.ada_vert_speed = ada_vert_speed; + packet.mea_mass = mea_mass; + packet.acc_x = acc_x; + packet.acc_y = acc_y; + packet.acc_z = acc_z; + packet.gyro_x = gyro_x; + packet.gyro_y = gyro_y; + packet.gyro_z = gyro_z; + packet.mag_x = mag_x; + packet.mag_y = mag_y; + packet.mag_z = mag_z; + packet.gps_lat = gps_lat; + packet.gps_lon = gps_lon; + packet.gps_alt = gps_alt; + packet.abk_angle = abk_angle; + packet.nas_n = nas_n; + packet.nas_e = nas_e; + packet.nas_d = nas_d; + packet.nas_vn = nas_vn; + packet.nas_ve = nas_ve; + packet.nas_vd = nas_vd; + packet.nas_qx = nas_qx; + packet.nas_qy = nas_qy; + packet.nas_qz = nas_qz; + packet.nas_qw = nas_qw; + packet.nas_bias_x = nas_bias_x; + packet.nas_bias_y = nas_bias_y; + packet.nas_bias_z = nas_bias_z; + packet.pin_quick_connector = pin_quick_connector; + packet.battery_voltage = battery_voltage; + packet.cam_battery_voltage = cam_battery_voltage; + packet.current_consumption = current_consumption; + packet.temperature = temperature; + packet.ada_state = ada_state; + packet.fmm_state = fmm_state; + packet.dpl_state = dpl_state; + packet.abk_state = abk_state; + packet.nas_state = nas_state; + packet.mea_state = mea_state; + packet.gps_fix = gps_fix; + packet.pin_launch = pin_launch; + packet.pin_nosecone = pin_nosecone; + packet.pin_expulsion = pin_expulsion; + packet.cutter_presence = cutter_presence; + packet.logger_error = logger_error; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ROCKET_FLIGHT_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_CRC); +} + +/** + * @brief Encode a rocket_flight_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param rocket_flight_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_rocket_flight_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_rocket_flight_tm_t* rocket_flight_tm) +{ + return mavlink_msg_rocket_flight_tm_pack(system_id, component_id, msg, rocket_flight_tm->timestamp, rocket_flight_tm->ada_state, rocket_flight_tm->fmm_state, rocket_flight_tm->dpl_state, rocket_flight_tm->abk_state, rocket_flight_tm->nas_state, rocket_flight_tm->mea_state, rocket_flight_tm->pressure_ada, rocket_flight_tm->pressure_digi, rocket_flight_tm->pressure_static, rocket_flight_tm->pressure_dpl, rocket_flight_tm->airspeed_pitot, rocket_flight_tm->altitude_agl, rocket_flight_tm->ada_vert_speed, rocket_flight_tm->mea_mass, rocket_flight_tm->acc_x, rocket_flight_tm->acc_y, rocket_flight_tm->acc_z, rocket_flight_tm->gyro_x, rocket_flight_tm->gyro_y, rocket_flight_tm->gyro_z, rocket_flight_tm->mag_x, rocket_flight_tm->mag_y, rocket_flight_tm->mag_z, rocket_flight_tm->gps_fix, rocket_flight_tm->gps_lat, rocket_flight_tm->gps_lon, rocket_flight_tm->gps_alt, rocket_flight_tm->abk_angle, rocket_flight_tm->nas_n, rocket_flight_tm->nas_e, rocket_flight_tm->nas_d, rocket_flight_tm->nas_vn, rocket_flight_tm->nas_ve, rocket_flight_tm->nas_vd, rocket_flight_tm->nas_qx, rocket_flight_tm->nas_qy, rocket_flight_tm->nas_qz, rocket_flight_tm->nas_qw, rocket_flight_tm->nas_bias_x, rocket_flight_tm->nas_bias_y, rocket_flight_tm->nas_bias_z, rocket_flight_tm->pin_quick_connector, rocket_flight_tm->pin_launch, rocket_flight_tm->pin_nosecone, rocket_flight_tm->pin_expulsion, rocket_flight_tm->cutter_presence, rocket_flight_tm->battery_voltage, rocket_flight_tm->cam_battery_voltage, rocket_flight_tm->current_consumption, rocket_flight_tm->temperature, rocket_flight_tm->logger_error); +} + +/** + * @brief Encode a rocket_flight_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param rocket_flight_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_rocket_flight_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_rocket_flight_tm_t* rocket_flight_tm) +{ + return mavlink_msg_rocket_flight_tm_pack_chan(system_id, component_id, chan, msg, rocket_flight_tm->timestamp, rocket_flight_tm->ada_state, rocket_flight_tm->fmm_state, rocket_flight_tm->dpl_state, rocket_flight_tm->abk_state, rocket_flight_tm->nas_state, rocket_flight_tm->mea_state, rocket_flight_tm->pressure_ada, rocket_flight_tm->pressure_digi, rocket_flight_tm->pressure_static, rocket_flight_tm->pressure_dpl, rocket_flight_tm->airspeed_pitot, rocket_flight_tm->altitude_agl, rocket_flight_tm->ada_vert_speed, rocket_flight_tm->mea_mass, rocket_flight_tm->acc_x, rocket_flight_tm->acc_y, rocket_flight_tm->acc_z, rocket_flight_tm->gyro_x, rocket_flight_tm->gyro_y, rocket_flight_tm->gyro_z, rocket_flight_tm->mag_x, rocket_flight_tm->mag_y, rocket_flight_tm->mag_z, rocket_flight_tm->gps_fix, rocket_flight_tm->gps_lat, rocket_flight_tm->gps_lon, rocket_flight_tm->gps_alt, rocket_flight_tm->abk_angle, rocket_flight_tm->nas_n, rocket_flight_tm->nas_e, rocket_flight_tm->nas_d, rocket_flight_tm->nas_vn, rocket_flight_tm->nas_ve, rocket_flight_tm->nas_vd, rocket_flight_tm->nas_qx, rocket_flight_tm->nas_qy, rocket_flight_tm->nas_qz, rocket_flight_tm->nas_qw, rocket_flight_tm->nas_bias_x, rocket_flight_tm->nas_bias_y, rocket_flight_tm->nas_bias_z, rocket_flight_tm->pin_quick_connector, rocket_flight_tm->pin_launch, rocket_flight_tm->pin_nosecone, rocket_flight_tm->pin_expulsion, rocket_flight_tm->cutter_presence, rocket_flight_tm->battery_voltage, rocket_flight_tm->cam_battery_voltage, rocket_flight_tm->current_consumption, rocket_flight_tm->temperature, rocket_flight_tm->logger_error); +} + +/** + * @brief Send a rocket_flight_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] Timestamp in microseconds + * @param ada_state ADA Controller State + * @param fmm_state Flight Mode Manager State + * @param dpl_state Deployment Controller State + * @param abk_state Airbrake FSM state + * @param nas_state Navigation System FSM State + * @param mea_state MEA Controller State + * @param pressure_ada [Pa] Atmospheric pressure estimated by ADA + * @param pressure_digi [Pa] Pressure from digital sensor + * @param pressure_static [Pa] Pressure from static port + * @param pressure_dpl [Pa] Pressure from deployment vane sensor + * @param airspeed_pitot [m/s] Pitot airspeed + * @param altitude_agl [m] Altitude above ground level + * @param ada_vert_speed [m/s] Vertical speed estimated by ADA + * @param mea_mass [kg] Mass estimated by MEA + * @param acc_x [m/s^2] Acceleration on X axis (body) + * @param acc_y [m/s^2] Acceleration on Y axis (body) + * @param acc_z [m/s^2] Acceleration on Z axis (body) + * @param gyro_x [rad/s] Angular speed on X axis (body) + * @param gyro_y [rad/s] Angular speed on Y axis (body) + * @param gyro_z [rad/s] Angular speed on Z axis (body) + * @param mag_x [uT] Magnetic field on X axis (body) + * @param mag_y [uT] Magnetic field on Y axis (body) + * @param mag_z [uT] Magnetic field on Z axis (body) + * @param gps_fix GPS fix (1 = fix, 0 = no fix) + * @param gps_lat [deg] Latitude + * @param gps_lon [deg] Longitude + * @param gps_alt [m] GPS Altitude + * @param abk_angle [deg] Air Brakes angle + * @param nas_n [deg] Navigation system estimated noth position + * @param nas_e [deg] Navigation system estimated east position + * @param nas_d [m] Navigation system estimated down position + * @param nas_vn [m/s] Navigation system estimated north velocity + * @param nas_ve [m/s] Navigation system estimated east velocity + * @param nas_vd [m/s] Navigation system estimated down velocity + * @param nas_qx [deg] Navigation system estimated attitude (qx) + * @param nas_qy [deg] Navigation system estimated attitude (qy) + * @param nas_qz [deg] Navigation system estimated attitude (qz) + * @param nas_qw [deg] Navigation system estimated attitude (qw) + * @param nas_bias_x Navigation system gyroscope bias on x axis + * @param nas_bias_y Navigation system gyroscope bias on y axis + * @param nas_bias_z Navigation system gyroscope bias on z axis + * @param pin_quick_connector Quick connector detach pin + * @param pin_launch Launch pin status (1 = connected, 0 = disconnected) + * @param pin_nosecone Nosecone pin status (1 = connected, 0 = disconnected) + * @param pin_expulsion Servo sensor status (1 = actuated, 0 = idle) + * @param cutter_presence Cutter presence status (1 = present, 0 = missing) + * @param battery_voltage [V] Battery voltage + * @param cam_battery_voltage [V] Camera battery voltage + * @param current_consumption [A] Battery current + * @param temperature [degC] Temperature + * @param logger_error Logger error (0 = no error, -1 otherwise) + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_rocket_flight_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t ada_state, uint8_t fmm_state, uint8_t dpl_state, uint8_t abk_state, uint8_t nas_state, uint8_t mea_state, float pressure_ada, float pressure_digi, float pressure_static, float pressure_dpl, float airspeed_pitot, float altitude_agl, float ada_vert_speed, float mea_mass, float acc_x, float acc_y, float acc_z, float gyro_x, float gyro_y, float gyro_z, float mag_x, float mag_y, float mag_z, uint8_t gps_fix, float gps_lat, float gps_lon, float gps_alt, float abk_angle, float nas_n, float nas_e, float nas_d, float nas_vn, float nas_ve, float nas_vd, float nas_qx, float nas_qy, float nas_qz, float nas_qw, float nas_bias_x, float nas_bias_y, float nas_bias_z, float pin_quick_connector, uint8_t pin_launch, uint8_t pin_nosecone, uint8_t pin_expulsion, uint8_t cutter_presence, float battery_voltage, float cam_battery_voltage, float current_consumption, float temperature, int8_t logger_error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure_ada); + _mav_put_float(buf, 12, pressure_digi); + _mav_put_float(buf, 16, pressure_static); + _mav_put_float(buf, 20, pressure_dpl); + _mav_put_float(buf, 24, airspeed_pitot); + _mav_put_float(buf, 28, altitude_agl); + _mav_put_float(buf, 32, ada_vert_speed); + _mav_put_float(buf, 36, mea_mass); + _mav_put_float(buf, 40, acc_x); + _mav_put_float(buf, 44, acc_y); + _mav_put_float(buf, 48, acc_z); + _mav_put_float(buf, 52, gyro_x); + _mav_put_float(buf, 56, gyro_y); + _mav_put_float(buf, 60, gyro_z); + _mav_put_float(buf, 64, mag_x); + _mav_put_float(buf, 68, mag_y); + _mav_put_float(buf, 72, mag_z); + _mav_put_float(buf, 76, gps_lat); + _mav_put_float(buf, 80, gps_lon); + _mav_put_float(buf, 84, gps_alt); + _mav_put_float(buf, 88, abk_angle); + _mav_put_float(buf, 92, nas_n); + _mav_put_float(buf, 96, nas_e); + _mav_put_float(buf, 100, nas_d); + _mav_put_float(buf, 104, nas_vn); + _mav_put_float(buf, 108, nas_ve); + _mav_put_float(buf, 112, nas_vd); + _mav_put_float(buf, 116, nas_qx); + _mav_put_float(buf, 120, nas_qy); + _mav_put_float(buf, 124, nas_qz); + _mav_put_float(buf, 128, nas_qw); + _mav_put_float(buf, 132, nas_bias_x); + _mav_put_float(buf, 136, nas_bias_y); + _mav_put_float(buf, 140, nas_bias_z); + _mav_put_float(buf, 144, pin_quick_connector); + _mav_put_float(buf, 148, battery_voltage); + _mav_put_float(buf, 152, cam_battery_voltage); + _mav_put_float(buf, 156, current_consumption); + _mav_put_float(buf, 160, temperature); + _mav_put_uint8_t(buf, 164, ada_state); + _mav_put_uint8_t(buf, 165, fmm_state); + _mav_put_uint8_t(buf, 166, dpl_state); + _mav_put_uint8_t(buf, 167, abk_state); + _mav_put_uint8_t(buf, 168, nas_state); + _mav_put_uint8_t(buf, 169, mea_state); + _mav_put_uint8_t(buf, 170, gps_fix); + _mav_put_uint8_t(buf, 171, pin_launch); + _mav_put_uint8_t(buf, 172, pin_nosecone); + _mav_put_uint8_t(buf, 173, pin_expulsion); + _mav_put_uint8_t(buf, 174, cutter_presence); + _mav_put_int8_t(buf, 175, logger_error); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM, buf, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_CRC); +#else + mavlink_rocket_flight_tm_t packet; + packet.timestamp = timestamp; + packet.pressure_ada = pressure_ada; + packet.pressure_digi = pressure_digi; + packet.pressure_static = pressure_static; + packet.pressure_dpl = pressure_dpl; + packet.airspeed_pitot = airspeed_pitot; + packet.altitude_agl = altitude_agl; + packet.ada_vert_speed = ada_vert_speed; + packet.mea_mass = mea_mass; + packet.acc_x = acc_x; + packet.acc_y = acc_y; + packet.acc_z = acc_z; + packet.gyro_x = gyro_x; + packet.gyro_y = gyro_y; + packet.gyro_z = gyro_z; + packet.mag_x = mag_x; + packet.mag_y = mag_y; + packet.mag_z = mag_z; + packet.gps_lat = gps_lat; + packet.gps_lon = gps_lon; + packet.gps_alt = gps_alt; + packet.abk_angle = abk_angle; + packet.nas_n = nas_n; + packet.nas_e = nas_e; + packet.nas_d = nas_d; + packet.nas_vn = nas_vn; + packet.nas_ve = nas_ve; + packet.nas_vd = nas_vd; + packet.nas_qx = nas_qx; + packet.nas_qy = nas_qy; + packet.nas_qz = nas_qz; + packet.nas_qw = nas_qw; + packet.nas_bias_x = nas_bias_x; + packet.nas_bias_y = nas_bias_y; + packet.nas_bias_z = nas_bias_z; + packet.pin_quick_connector = pin_quick_connector; + packet.battery_voltage = battery_voltage; + packet.cam_battery_voltage = cam_battery_voltage; + packet.current_consumption = current_consumption; + packet.temperature = temperature; + packet.ada_state = ada_state; + packet.fmm_state = fmm_state; + packet.dpl_state = dpl_state; + packet.abk_state = abk_state; + packet.nas_state = nas_state; + packet.mea_state = mea_state; + packet.gps_fix = gps_fix; + packet.pin_launch = pin_launch; + packet.pin_nosecone = pin_nosecone; + packet.pin_expulsion = pin_expulsion; + packet.cutter_presence = cutter_presence; + packet.logger_error = logger_error; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM, (const char *)&packet, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_CRC); +#endif +} + +/** + * @brief Send a rocket_flight_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_rocket_flight_tm_send_struct(mavlink_channel_t chan, const mavlink_rocket_flight_tm_t* rocket_flight_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_rocket_flight_tm_send(chan, rocket_flight_tm->timestamp, rocket_flight_tm->ada_state, rocket_flight_tm->fmm_state, rocket_flight_tm->dpl_state, rocket_flight_tm->abk_state, rocket_flight_tm->nas_state, rocket_flight_tm->mea_state, rocket_flight_tm->pressure_ada, rocket_flight_tm->pressure_digi, rocket_flight_tm->pressure_static, rocket_flight_tm->pressure_dpl, rocket_flight_tm->airspeed_pitot, rocket_flight_tm->altitude_agl, rocket_flight_tm->ada_vert_speed, rocket_flight_tm->mea_mass, rocket_flight_tm->acc_x, rocket_flight_tm->acc_y, rocket_flight_tm->acc_z, rocket_flight_tm->gyro_x, rocket_flight_tm->gyro_y, rocket_flight_tm->gyro_z, rocket_flight_tm->mag_x, rocket_flight_tm->mag_y, rocket_flight_tm->mag_z, rocket_flight_tm->gps_fix, rocket_flight_tm->gps_lat, rocket_flight_tm->gps_lon, rocket_flight_tm->gps_alt, rocket_flight_tm->abk_angle, rocket_flight_tm->nas_n, rocket_flight_tm->nas_e, rocket_flight_tm->nas_d, rocket_flight_tm->nas_vn, rocket_flight_tm->nas_ve, rocket_flight_tm->nas_vd, rocket_flight_tm->nas_qx, rocket_flight_tm->nas_qy, rocket_flight_tm->nas_qz, rocket_flight_tm->nas_qw, rocket_flight_tm->nas_bias_x, rocket_flight_tm->nas_bias_y, rocket_flight_tm->nas_bias_z, rocket_flight_tm->pin_quick_connector, rocket_flight_tm->pin_launch, rocket_flight_tm->pin_nosecone, rocket_flight_tm->pin_expulsion, rocket_flight_tm->cutter_presence, rocket_flight_tm->battery_voltage, rocket_flight_tm->cam_battery_voltage, rocket_flight_tm->current_consumption, rocket_flight_tm->temperature, rocket_flight_tm->logger_error); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM, (const char *)rocket_flight_tm, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_rocket_flight_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t ada_state, uint8_t fmm_state, uint8_t dpl_state, uint8_t abk_state, uint8_t nas_state, uint8_t mea_state, float pressure_ada, float pressure_digi, float pressure_static, float pressure_dpl, float airspeed_pitot, float altitude_agl, float ada_vert_speed, float mea_mass, float acc_x, float acc_y, float acc_z, float gyro_x, float gyro_y, float gyro_z, float mag_x, float mag_y, float mag_z, uint8_t gps_fix, float gps_lat, float gps_lon, float gps_alt, float abk_angle, float nas_n, float nas_e, float nas_d, float nas_vn, float nas_ve, float nas_vd, float nas_qx, float nas_qy, float nas_qz, float nas_qw, float nas_bias_x, float nas_bias_y, float nas_bias_z, float pin_quick_connector, uint8_t pin_launch, uint8_t pin_nosecone, uint8_t pin_expulsion, uint8_t cutter_presence, float battery_voltage, float cam_battery_voltage, float current_consumption, float temperature, int8_t logger_error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, pressure_ada); + _mav_put_float(buf, 12, pressure_digi); + _mav_put_float(buf, 16, pressure_static); + _mav_put_float(buf, 20, pressure_dpl); + _mav_put_float(buf, 24, airspeed_pitot); + _mav_put_float(buf, 28, altitude_agl); + _mav_put_float(buf, 32, ada_vert_speed); + _mav_put_float(buf, 36, mea_mass); + _mav_put_float(buf, 40, acc_x); + _mav_put_float(buf, 44, acc_y); + _mav_put_float(buf, 48, acc_z); + _mav_put_float(buf, 52, gyro_x); + _mav_put_float(buf, 56, gyro_y); + _mav_put_float(buf, 60, gyro_z); + _mav_put_float(buf, 64, mag_x); + _mav_put_float(buf, 68, mag_y); + _mav_put_float(buf, 72, mag_z); + _mav_put_float(buf, 76, gps_lat); + _mav_put_float(buf, 80, gps_lon); + _mav_put_float(buf, 84, gps_alt); + _mav_put_float(buf, 88, abk_angle); + _mav_put_float(buf, 92, nas_n); + _mav_put_float(buf, 96, nas_e); + _mav_put_float(buf, 100, nas_d); + _mav_put_float(buf, 104, nas_vn); + _mav_put_float(buf, 108, nas_ve); + _mav_put_float(buf, 112, nas_vd); + _mav_put_float(buf, 116, nas_qx); + _mav_put_float(buf, 120, nas_qy); + _mav_put_float(buf, 124, nas_qz); + _mav_put_float(buf, 128, nas_qw); + _mav_put_float(buf, 132, nas_bias_x); + _mav_put_float(buf, 136, nas_bias_y); + _mav_put_float(buf, 140, nas_bias_z); + _mav_put_float(buf, 144, pin_quick_connector); + _mav_put_float(buf, 148, battery_voltage); + _mav_put_float(buf, 152, cam_battery_voltage); + _mav_put_float(buf, 156, current_consumption); + _mav_put_float(buf, 160, temperature); + _mav_put_uint8_t(buf, 164, ada_state); + _mav_put_uint8_t(buf, 165, fmm_state); + _mav_put_uint8_t(buf, 166, dpl_state); + _mav_put_uint8_t(buf, 167, abk_state); + _mav_put_uint8_t(buf, 168, nas_state); + _mav_put_uint8_t(buf, 169, mea_state); + _mav_put_uint8_t(buf, 170, gps_fix); + _mav_put_uint8_t(buf, 171, pin_launch); + _mav_put_uint8_t(buf, 172, pin_nosecone); + _mav_put_uint8_t(buf, 173, pin_expulsion); + _mav_put_uint8_t(buf, 174, cutter_presence); + _mav_put_int8_t(buf, 175, logger_error); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM, buf, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_CRC); +#else + mavlink_rocket_flight_tm_t *packet = (mavlink_rocket_flight_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->pressure_ada = pressure_ada; + packet->pressure_digi = pressure_digi; + packet->pressure_static = pressure_static; + packet->pressure_dpl = pressure_dpl; + packet->airspeed_pitot = airspeed_pitot; + packet->altitude_agl = altitude_agl; + packet->ada_vert_speed = ada_vert_speed; + packet->mea_mass = mea_mass; + packet->acc_x = acc_x; + packet->acc_y = acc_y; + packet->acc_z = acc_z; + packet->gyro_x = gyro_x; + packet->gyro_y = gyro_y; + packet->gyro_z = gyro_z; + packet->mag_x = mag_x; + packet->mag_y = mag_y; + packet->mag_z = mag_z; + packet->gps_lat = gps_lat; + packet->gps_lon = gps_lon; + packet->gps_alt = gps_alt; + packet->abk_angle = abk_angle; + packet->nas_n = nas_n; + packet->nas_e = nas_e; + packet->nas_d = nas_d; + packet->nas_vn = nas_vn; + packet->nas_ve = nas_ve; + packet->nas_vd = nas_vd; + packet->nas_qx = nas_qx; + packet->nas_qy = nas_qy; + packet->nas_qz = nas_qz; + packet->nas_qw = nas_qw; + packet->nas_bias_x = nas_bias_x; + packet->nas_bias_y = nas_bias_y; + packet->nas_bias_z = nas_bias_z; + packet->pin_quick_connector = pin_quick_connector; + packet->battery_voltage = battery_voltage; + packet->cam_battery_voltage = cam_battery_voltage; + packet->current_consumption = current_consumption; + packet->temperature = temperature; + packet->ada_state = ada_state; + packet->fmm_state = fmm_state; + packet->dpl_state = dpl_state; + packet->abk_state = abk_state; + packet->nas_state = nas_state; + packet->mea_state = mea_state; + packet->gps_fix = gps_fix; + packet->pin_launch = pin_launch; + packet->pin_nosecone = pin_nosecone; + packet->pin_expulsion = pin_expulsion; + packet->cutter_presence = cutter_presence; + packet->logger_error = logger_error; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM, (const char *)packet, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE ROCKET_FLIGHT_TM UNPACKING + + +/** + * @brief Get field timestamp from rocket_flight_tm message + * + * @return [us] Timestamp in microseconds + */ +static inline uint64_t mavlink_msg_rocket_flight_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field ada_state from rocket_flight_tm message + * + * @return ADA Controller State + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_ada_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 164); +} + +/** + * @brief Get field fmm_state from rocket_flight_tm message + * + * @return Flight Mode Manager State + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_fmm_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 165); +} + +/** + * @brief Get field dpl_state from rocket_flight_tm message + * + * @return Deployment Controller State + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_dpl_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 166); +} + +/** + * @brief Get field abk_state from rocket_flight_tm message + * + * @return Airbrake FSM state + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_abk_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 167); +} + +/** + * @brief Get field nas_state from rocket_flight_tm message + * + * @return Navigation System FSM State + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_nas_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 168); +} + +/** + * @brief Get field mea_state from rocket_flight_tm message + * + * @return MEA Controller State + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_mea_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 169); +} + +/** + * @brief Get field pressure_ada from rocket_flight_tm message + * + * @return [Pa] Atmospheric pressure estimated by ADA + */ +static inline float mavlink_msg_rocket_flight_tm_get_pressure_ada(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field pressure_digi from rocket_flight_tm message + * + * @return [Pa] Pressure from digital sensor + */ +static inline float mavlink_msg_rocket_flight_tm_get_pressure_digi(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field pressure_static from rocket_flight_tm message + * + * @return [Pa] Pressure from static port + */ +static inline float mavlink_msg_rocket_flight_tm_get_pressure_static(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field pressure_dpl from rocket_flight_tm message + * + * @return [Pa] Pressure from deployment vane sensor + */ +static inline float mavlink_msg_rocket_flight_tm_get_pressure_dpl(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field airspeed_pitot from rocket_flight_tm message + * + * @return [m/s] Pitot airspeed + */ +static inline float mavlink_msg_rocket_flight_tm_get_airspeed_pitot(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Get field altitude_agl from rocket_flight_tm message + * + * @return [m] Altitude above ground level + */ +static inline float mavlink_msg_rocket_flight_tm_get_altitude_agl(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field ada_vert_speed from rocket_flight_tm message + * + * @return [m/s] Vertical speed estimated by ADA + */ +static inline float mavlink_msg_rocket_flight_tm_get_ada_vert_speed(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field mea_mass from rocket_flight_tm message + * + * @return [kg] Mass estimated by MEA + */ +static inline float mavlink_msg_rocket_flight_tm_get_mea_mass(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Get field acc_x from rocket_flight_tm message + * + * @return [m/s^2] Acceleration on X axis (body) + */ +static inline float mavlink_msg_rocket_flight_tm_get_acc_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Get field acc_y from rocket_flight_tm message + * + * @return [m/s^2] Acceleration on Y axis (body) + */ +static inline float mavlink_msg_rocket_flight_tm_get_acc_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 44); +} + +/** + * @brief Get field acc_z from rocket_flight_tm message + * + * @return [m/s^2] Acceleration on Z axis (body) + */ +static inline float mavlink_msg_rocket_flight_tm_get_acc_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 48); +} + +/** + * @brief Get field gyro_x from rocket_flight_tm message + * + * @return [rad/s] Angular speed on X axis (body) + */ +static inline float mavlink_msg_rocket_flight_tm_get_gyro_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 52); +} + +/** + * @brief Get field gyro_y from rocket_flight_tm message + * + * @return [rad/s] Angular speed on Y axis (body) + */ +static inline float mavlink_msg_rocket_flight_tm_get_gyro_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 56); +} + +/** + * @brief Get field gyro_z from rocket_flight_tm message + * + * @return [rad/s] Angular speed on Z axis (body) + */ +static inline float mavlink_msg_rocket_flight_tm_get_gyro_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 60); +} + +/** + * @brief Get field mag_x from rocket_flight_tm message + * + * @return [uT] Magnetic field on X axis (body) + */ +static inline float mavlink_msg_rocket_flight_tm_get_mag_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 64); +} + +/** + * @brief Get field mag_y from rocket_flight_tm message + * + * @return [uT] Magnetic field on Y axis (body) + */ +static inline float mavlink_msg_rocket_flight_tm_get_mag_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 68); +} + +/** + * @brief Get field mag_z from rocket_flight_tm message + * + * @return [uT] Magnetic field on Z axis (body) + */ +static inline float mavlink_msg_rocket_flight_tm_get_mag_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 72); +} + +/** + * @brief Get field gps_fix from rocket_flight_tm message + * + * @return GPS fix (1 = fix, 0 = no fix) + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_gps_fix(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 170); +} + +/** + * @brief Get field gps_lat from rocket_flight_tm message + * + * @return [deg] Latitude + */ +static inline float mavlink_msg_rocket_flight_tm_get_gps_lat(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 76); +} + +/** + * @brief Get field gps_lon from rocket_flight_tm message + * + * @return [deg] Longitude + */ +static inline float mavlink_msg_rocket_flight_tm_get_gps_lon(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 80); +} + +/** + * @brief Get field gps_alt from rocket_flight_tm message + * + * @return [m] GPS Altitude + */ +static inline float mavlink_msg_rocket_flight_tm_get_gps_alt(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 84); +} + +/** + * @brief Get field abk_angle from rocket_flight_tm message + * + * @return [deg] Air Brakes angle + */ +static inline float mavlink_msg_rocket_flight_tm_get_abk_angle(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 88); +} + +/** + * @brief Get field nas_n from rocket_flight_tm message + * + * @return [deg] Navigation system estimated noth position + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_n(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 92); +} + +/** + * @brief Get field nas_e from rocket_flight_tm message + * + * @return [deg] Navigation system estimated east position + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_e(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 96); +} + +/** + * @brief Get field nas_d from rocket_flight_tm message + * + * @return [m] Navigation system estimated down position + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_d(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 100); +} + +/** + * @brief Get field nas_vn from rocket_flight_tm message + * + * @return [m/s] Navigation system estimated north velocity + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_vn(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 104); +} + +/** + * @brief Get field nas_ve from rocket_flight_tm message + * + * @return [m/s] Navigation system estimated east velocity + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_ve(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 108); +} + +/** + * @brief Get field nas_vd from rocket_flight_tm message + * + * @return [m/s] Navigation system estimated down velocity + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_vd(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 112); +} + +/** + * @brief Get field nas_qx from rocket_flight_tm message + * + * @return [deg] Navigation system estimated attitude (qx) + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_qx(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 116); +} + +/** + * @brief Get field nas_qy from rocket_flight_tm message + * + * @return [deg] Navigation system estimated attitude (qy) + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_qy(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 120); +} + +/** + * @brief Get field nas_qz from rocket_flight_tm message + * + * @return [deg] Navigation system estimated attitude (qz) + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_qz(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 124); +} + +/** + * @brief Get field nas_qw from rocket_flight_tm message + * + * @return [deg] Navigation system estimated attitude (qw) + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_qw(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 128); +} + +/** + * @brief Get field nas_bias_x from rocket_flight_tm message + * + * @return Navigation system gyroscope bias on x axis + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_bias_x(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 132); +} + +/** + * @brief Get field nas_bias_y from rocket_flight_tm message + * + * @return Navigation system gyroscope bias on y axis + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_bias_y(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 136); +} + +/** + * @brief Get field nas_bias_z from rocket_flight_tm message + * + * @return Navigation system gyroscope bias on z axis + */ +static inline float mavlink_msg_rocket_flight_tm_get_nas_bias_z(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 140); +} + +/** + * @brief Get field pin_quick_connector from rocket_flight_tm message + * + * @return Quick connector detach pin + */ +static inline float mavlink_msg_rocket_flight_tm_get_pin_quick_connector(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 144); +} + +/** + * @brief Get field pin_launch from rocket_flight_tm message + * + * @return Launch pin status (1 = connected, 0 = disconnected) + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_pin_launch(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 171); +} + +/** + * @brief Get field pin_nosecone from rocket_flight_tm message + * + * @return Nosecone pin status (1 = connected, 0 = disconnected) + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_pin_nosecone(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 172); +} + +/** + * @brief Get field pin_expulsion from rocket_flight_tm message + * + * @return Servo sensor status (1 = actuated, 0 = idle) + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_pin_expulsion(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 173); +} + +/** + * @brief Get field cutter_presence from rocket_flight_tm message + * + * @return Cutter presence status (1 = present, 0 = missing) + */ +static inline uint8_t mavlink_msg_rocket_flight_tm_get_cutter_presence(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 174); +} + +/** + * @brief Get field battery_voltage from rocket_flight_tm message + * + * @return [V] Battery voltage + */ +static inline float mavlink_msg_rocket_flight_tm_get_battery_voltage(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 148); +} + +/** + * @brief Get field cam_battery_voltage from rocket_flight_tm message + * + * @return [V] Camera battery voltage + */ +static inline float mavlink_msg_rocket_flight_tm_get_cam_battery_voltage(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 152); +} + +/** + * @brief Get field current_consumption from rocket_flight_tm message + * + * @return [A] Battery current + */ +static inline float mavlink_msg_rocket_flight_tm_get_current_consumption(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 156); +} + +/** + * @brief Get field temperature from rocket_flight_tm message + * + * @return [degC] Temperature + */ +static inline float mavlink_msg_rocket_flight_tm_get_temperature(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 160); +} + +/** + * @brief Get field logger_error from rocket_flight_tm message + * + * @return Logger error (0 = no error, -1 otherwise) + */ +static inline int8_t mavlink_msg_rocket_flight_tm_get_logger_error(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int8_t(msg, 175); +} + +/** + * @brief Decode a rocket_flight_tm message into a struct + * + * @param msg The message to decode + * @param rocket_flight_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_rocket_flight_tm_decode(const mavlink_message_t* msg, mavlink_rocket_flight_tm_t* rocket_flight_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + rocket_flight_tm->timestamp = mavlink_msg_rocket_flight_tm_get_timestamp(msg); + rocket_flight_tm->pressure_ada = mavlink_msg_rocket_flight_tm_get_pressure_ada(msg); + rocket_flight_tm->pressure_digi = mavlink_msg_rocket_flight_tm_get_pressure_digi(msg); + rocket_flight_tm->pressure_static = mavlink_msg_rocket_flight_tm_get_pressure_static(msg); + rocket_flight_tm->pressure_dpl = mavlink_msg_rocket_flight_tm_get_pressure_dpl(msg); + rocket_flight_tm->airspeed_pitot = mavlink_msg_rocket_flight_tm_get_airspeed_pitot(msg); + rocket_flight_tm->altitude_agl = mavlink_msg_rocket_flight_tm_get_altitude_agl(msg); + rocket_flight_tm->ada_vert_speed = mavlink_msg_rocket_flight_tm_get_ada_vert_speed(msg); + rocket_flight_tm->mea_mass = mavlink_msg_rocket_flight_tm_get_mea_mass(msg); + rocket_flight_tm->acc_x = mavlink_msg_rocket_flight_tm_get_acc_x(msg); + rocket_flight_tm->acc_y = mavlink_msg_rocket_flight_tm_get_acc_y(msg); + rocket_flight_tm->acc_z = mavlink_msg_rocket_flight_tm_get_acc_z(msg); + rocket_flight_tm->gyro_x = mavlink_msg_rocket_flight_tm_get_gyro_x(msg); + rocket_flight_tm->gyro_y = mavlink_msg_rocket_flight_tm_get_gyro_y(msg); + rocket_flight_tm->gyro_z = mavlink_msg_rocket_flight_tm_get_gyro_z(msg); + rocket_flight_tm->mag_x = mavlink_msg_rocket_flight_tm_get_mag_x(msg); + rocket_flight_tm->mag_y = mavlink_msg_rocket_flight_tm_get_mag_y(msg); + rocket_flight_tm->mag_z = mavlink_msg_rocket_flight_tm_get_mag_z(msg); + rocket_flight_tm->gps_lat = mavlink_msg_rocket_flight_tm_get_gps_lat(msg); + rocket_flight_tm->gps_lon = mavlink_msg_rocket_flight_tm_get_gps_lon(msg); + rocket_flight_tm->gps_alt = mavlink_msg_rocket_flight_tm_get_gps_alt(msg); + rocket_flight_tm->abk_angle = mavlink_msg_rocket_flight_tm_get_abk_angle(msg); + rocket_flight_tm->nas_n = mavlink_msg_rocket_flight_tm_get_nas_n(msg); + rocket_flight_tm->nas_e = mavlink_msg_rocket_flight_tm_get_nas_e(msg); + rocket_flight_tm->nas_d = mavlink_msg_rocket_flight_tm_get_nas_d(msg); + rocket_flight_tm->nas_vn = mavlink_msg_rocket_flight_tm_get_nas_vn(msg); + rocket_flight_tm->nas_ve = mavlink_msg_rocket_flight_tm_get_nas_ve(msg); + rocket_flight_tm->nas_vd = mavlink_msg_rocket_flight_tm_get_nas_vd(msg); + rocket_flight_tm->nas_qx = mavlink_msg_rocket_flight_tm_get_nas_qx(msg); + rocket_flight_tm->nas_qy = mavlink_msg_rocket_flight_tm_get_nas_qy(msg); + rocket_flight_tm->nas_qz = mavlink_msg_rocket_flight_tm_get_nas_qz(msg); + rocket_flight_tm->nas_qw = mavlink_msg_rocket_flight_tm_get_nas_qw(msg); + rocket_flight_tm->nas_bias_x = mavlink_msg_rocket_flight_tm_get_nas_bias_x(msg); + rocket_flight_tm->nas_bias_y = mavlink_msg_rocket_flight_tm_get_nas_bias_y(msg); + rocket_flight_tm->nas_bias_z = mavlink_msg_rocket_flight_tm_get_nas_bias_z(msg); + rocket_flight_tm->pin_quick_connector = mavlink_msg_rocket_flight_tm_get_pin_quick_connector(msg); + rocket_flight_tm->battery_voltage = mavlink_msg_rocket_flight_tm_get_battery_voltage(msg); + rocket_flight_tm->cam_battery_voltage = mavlink_msg_rocket_flight_tm_get_cam_battery_voltage(msg); + rocket_flight_tm->current_consumption = mavlink_msg_rocket_flight_tm_get_current_consumption(msg); + rocket_flight_tm->temperature = mavlink_msg_rocket_flight_tm_get_temperature(msg); + rocket_flight_tm->ada_state = mavlink_msg_rocket_flight_tm_get_ada_state(msg); + rocket_flight_tm->fmm_state = mavlink_msg_rocket_flight_tm_get_fmm_state(msg); + rocket_flight_tm->dpl_state = mavlink_msg_rocket_flight_tm_get_dpl_state(msg); + rocket_flight_tm->abk_state = mavlink_msg_rocket_flight_tm_get_abk_state(msg); + rocket_flight_tm->nas_state = mavlink_msg_rocket_flight_tm_get_nas_state(msg); + rocket_flight_tm->mea_state = mavlink_msg_rocket_flight_tm_get_mea_state(msg); + rocket_flight_tm->gps_fix = mavlink_msg_rocket_flight_tm_get_gps_fix(msg); + rocket_flight_tm->pin_launch = mavlink_msg_rocket_flight_tm_get_pin_launch(msg); + rocket_flight_tm->pin_nosecone = mavlink_msg_rocket_flight_tm_get_pin_nosecone(msg); + rocket_flight_tm->pin_expulsion = mavlink_msg_rocket_flight_tm_get_pin_expulsion(msg); + rocket_flight_tm->cutter_presence = mavlink_msg_rocket_flight_tm_get_cutter_presence(msg); + rocket_flight_tm->logger_error = mavlink_msg_rocket_flight_tm_get_logger_error(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN? msg->len : MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN; + memset(rocket_flight_tm, 0, MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_LEN); + memcpy(rocket_flight_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_rocket_stats_tm.h b/mavlink_lib/lyra/mavlink_msg_rocket_stats_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..c878c468511c88c92b03ee5caa9a8f0ce437a766 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_rocket_stats_tm.h @@ -0,0 +1,638 @@ +#pragma once +// MESSAGE ROCKET_STATS_TM PACKING + +#define MAVLINK_MSG_ID_ROCKET_STATS_TM 210 + + +typedef struct __mavlink_rocket_stats_tm_t { + uint64_t liftoff_ts; /*< [us] System clock at liftoff*/ + uint64_t liftoff_max_acc_ts; /*< [us] System clock at the maximum liftoff acceleration*/ + uint64_t dpl_ts; /*< [us] System clock at drouge deployment*/ + uint64_t max_z_speed_ts; /*< [us] System clock at ADA max vertical speed*/ + uint64_t apogee_ts; /*< [us] System clock at apogee*/ + float liftoff_max_acc; /*< [m/s2] Maximum liftoff acceleration*/ + float dpl_max_acc; /*< [m/s2] Max acceleration during drouge deployment*/ + float max_z_speed; /*< [m/s] Max measured vertical speed - ADA*/ + float max_airspeed_pitot; /*< [m/s] Max speed read by the pitot tube*/ + float max_speed_altitude; /*< [m] Altitude at max speed*/ + float apogee_lat; /*< [deg] Apogee latitude*/ + float apogee_lon; /*< [deg] Apogee longitude*/ + float apogee_alt; /*< [m] Apogee altitude*/ + float min_pressure; /*< [Pa] Apogee pressure - Digital barometer*/ + float ada_min_pressure; /*< [Pa] Apogee pressure - ADA filtered*/ + float dpl_vane_max_pressure; /*< [Pa] Max pressure in the deployment bay during drogue deployment*/ + float cpu_load; /*< CPU load in percentage*/ + uint32_t free_heap; /*< Amount of available heap in memory*/ +} mavlink_rocket_stats_tm_t; + +#define MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN 92 +#define MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN 92 +#define MAVLINK_MSG_ID_210_LEN 92 +#define MAVLINK_MSG_ID_210_MIN_LEN 92 + +#define MAVLINK_MSG_ID_ROCKET_STATS_TM_CRC 245 +#define MAVLINK_MSG_ID_210_CRC 245 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_ROCKET_STATS_TM { \ + 210, \ + "ROCKET_STATS_TM", \ + 18, \ + { { "liftoff_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_rocket_stats_tm_t, liftoff_ts) }, \ + { "liftoff_max_acc_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_rocket_stats_tm_t, liftoff_max_acc_ts) }, \ + { "liftoff_max_acc", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_rocket_stats_tm_t, liftoff_max_acc) }, \ + { "dpl_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 16, offsetof(mavlink_rocket_stats_tm_t, dpl_ts) }, \ + { "dpl_max_acc", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_rocket_stats_tm_t, dpl_max_acc) }, \ + { "max_z_speed_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 24, offsetof(mavlink_rocket_stats_tm_t, max_z_speed_ts) }, \ + { "max_z_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_rocket_stats_tm_t, max_z_speed) }, \ + { "max_airspeed_pitot", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_rocket_stats_tm_t, max_airspeed_pitot) }, \ + { "max_speed_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_rocket_stats_tm_t, max_speed_altitude) }, \ + { "apogee_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 32, offsetof(mavlink_rocket_stats_tm_t, apogee_ts) }, \ + { "apogee_lat", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_rocket_stats_tm_t, apogee_lat) }, \ + { "apogee_lon", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_rocket_stats_tm_t, apogee_lon) }, \ + { "apogee_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_rocket_stats_tm_t, apogee_alt) }, \ + { "min_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_rocket_stats_tm_t, min_pressure) }, \ + { "ada_min_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_rocket_stats_tm_t, ada_min_pressure) }, \ + { "dpl_vane_max_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_rocket_stats_tm_t, dpl_vane_max_pressure) }, \ + { "cpu_load", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_rocket_stats_tm_t, cpu_load) }, \ + { "free_heap", NULL, MAVLINK_TYPE_UINT32_T, 0, 88, offsetof(mavlink_rocket_stats_tm_t, free_heap) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_ROCKET_STATS_TM { \ + "ROCKET_STATS_TM", \ + 18, \ + { { "liftoff_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_rocket_stats_tm_t, liftoff_ts) }, \ + { "liftoff_max_acc_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_rocket_stats_tm_t, liftoff_max_acc_ts) }, \ + { "liftoff_max_acc", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_rocket_stats_tm_t, liftoff_max_acc) }, \ + { "dpl_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 16, offsetof(mavlink_rocket_stats_tm_t, dpl_ts) }, \ + { "dpl_max_acc", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_rocket_stats_tm_t, dpl_max_acc) }, \ + { "max_z_speed_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 24, offsetof(mavlink_rocket_stats_tm_t, max_z_speed_ts) }, \ + { "max_z_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_rocket_stats_tm_t, max_z_speed) }, \ + { "max_airspeed_pitot", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_rocket_stats_tm_t, max_airspeed_pitot) }, \ + { "max_speed_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_rocket_stats_tm_t, max_speed_altitude) }, \ + { "apogee_ts", NULL, MAVLINK_TYPE_UINT64_T, 0, 32, offsetof(mavlink_rocket_stats_tm_t, apogee_ts) }, \ + { "apogee_lat", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_rocket_stats_tm_t, apogee_lat) }, \ + { "apogee_lon", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_rocket_stats_tm_t, apogee_lon) }, \ + { "apogee_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_rocket_stats_tm_t, apogee_alt) }, \ + { "min_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_rocket_stats_tm_t, min_pressure) }, \ + { "ada_min_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_rocket_stats_tm_t, ada_min_pressure) }, \ + { "dpl_vane_max_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_rocket_stats_tm_t, dpl_vane_max_pressure) }, \ + { "cpu_load", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_rocket_stats_tm_t, cpu_load) }, \ + { "free_heap", NULL, MAVLINK_TYPE_UINT32_T, 0, 88, offsetof(mavlink_rocket_stats_tm_t, free_heap) }, \ + } \ +} +#endif + +/** + * @brief Pack a rocket_stats_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param liftoff_ts [us] System clock at liftoff + * @param liftoff_max_acc_ts [us] System clock at the maximum liftoff acceleration + * @param liftoff_max_acc [m/s2] Maximum liftoff acceleration + * @param dpl_ts [us] System clock at drouge deployment + * @param dpl_max_acc [m/s2] Max acceleration during drouge deployment + * @param max_z_speed_ts [us] System clock at ADA max vertical speed + * @param max_z_speed [m/s] Max measured vertical speed - ADA + * @param max_airspeed_pitot [m/s] Max speed read by the pitot tube + * @param max_speed_altitude [m] Altitude at max speed + * @param apogee_ts [us] System clock at apogee + * @param apogee_lat [deg] Apogee latitude + * @param apogee_lon [deg] Apogee longitude + * @param apogee_alt [m] Apogee altitude + * @param min_pressure [Pa] Apogee pressure - Digital barometer + * @param ada_min_pressure [Pa] Apogee pressure - ADA filtered + * @param dpl_vane_max_pressure [Pa] Max pressure in the deployment bay during drogue deployment + * @param cpu_load CPU load in percentage + * @param free_heap Amount of available heap in memory + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_rocket_stats_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t liftoff_ts, uint64_t liftoff_max_acc_ts, float liftoff_max_acc, uint64_t dpl_ts, float dpl_max_acc, uint64_t max_z_speed_ts, float max_z_speed, float max_airspeed_pitot, float max_speed_altitude, uint64_t apogee_ts, float apogee_lat, float apogee_lon, float apogee_alt, float min_pressure, float ada_min_pressure, float dpl_vane_max_pressure, float cpu_load, uint32_t free_heap) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, liftoff_ts); + _mav_put_uint64_t(buf, 8, liftoff_max_acc_ts); + _mav_put_uint64_t(buf, 16, dpl_ts); + _mav_put_uint64_t(buf, 24, max_z_speed_ts); + _mav_put_uint64_t(buf, 32, apogee_ts); + _mav_put_float(buf, 40, liftoff_max_acc); + _mav_put_float(buf, 44, dpl_max_acc); + _mav_put_float(buf, 48, max_z_speed); + _mav_put_float(buf, 52, max_airspeed_pitot); + _mav_put_float(buf, 56, max_speed_altitude); + _mav_put_float(buf, 60, apogee_lat); + _mav_put_float(buf, 64, apogee_lon); + _mav_put_float(buf, 68, apogee_alt); + _mav_put_float(buf, 72, min_pressure); + _mav_put_float(buf, 76, ada_min_pressure); + _mav_put_float(buf, 80, dpl_vane_max_pressure); + _mav_put_float(buf, 84, cpu_load); + _mav_put_uint32_t(buf, 88, free_heap); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN); +#else + mavlink_rocket_stats_tm_t packet; + packet.liftoff_ts = liftoff_ts; + packet.liftoff_max_acc_ts = liftoff_max_acc_ts; + packet.dpl_ts = dpl_ts; + packet.max_z_speed_ts = max_z_speed_ts; + packet.apogee_ts = apogee_ts; + packet.liftoff_max_acc = liftoff_max_acc; + packet.dpl_max_acc = dpl_max_acc; + packet.max_z_speed = max_z_speed; + packet.max_airspeed_pitot = max_airspeed_pitot; + packet.max_speed_altitude = max_speed_altitude; + packet.apogee_lat = apogee_lat; + packet.apogee_lon = apogee_lon; + packet.apogee_alt = apogee_alt; + packet.min_pressure = min_pressure; + packet.ada_min_pressure = ada_min_pressure; + packet.dpl_vane_max_pressure = dpl_vane_max_pressure; + packet.cpu_load = cpu_load; + packet.free_heap = free_heap; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ROCKET_STATS_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_CRC); +} + +/** + * @brief Pack a rocket_stats_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param liftoff_ts [us] System clock at liftoff + * @param liftoff_max_acc_ts [us] System clock at the maximum liftoff acceleration + * @param liftoff_max_acc [m/s2] Maximum liftoff acceleration + * @param dpl_ts [us] System clock at drouge deployment + * @param dpl_max_acc [m/s2] Max acceleration during drouge deployment + * @param max_z_speed_ts [us] System clock at ADA max vertical speed + * @param max_z_speed [m/s] Max measured vertical speed - ADA + * @param max_airspeed_pitot [m/s] Max speed read by the pitot tube + * @param max_speed_altitude [m] Altitude at max speed + * @param apogee_ts [us] System clock at apogee + * @param apogee_lat [deg] Apogee latitude + * @param apogee_lon [deg] Apogee longitude + * @param apogee_alt [m] Apogee altitude + * @param min_pressure [Pa] Apogee pressure - Digital barometer + * @param ada_min_pressure [Pa] Apogee pressure - ADA filtered + * @param dpl_vane_max_pressure [Pa] Max pressure in the deployment bay during drogue deployment + * @param cpu_load CPU load in percentage + * @param free_heap Amount of available heap in memory + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_rocket_stats_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t liftoff_ts,uint64_t liftoff_max_acc_ts,float liftoff_max_acc,uint64_t dpl_ts,float dpl_max_acc,uint64_t max_z_speed_ts,float max_z_speed,float max_airspeed_pitot,float max_speed_altitude,uint64_t apogee_ts,float apogee_lat,float apogee_lon,float apogee_alt,float min_pressure,float ada_min_pressure,float dpl_vane_max_pressure,float cpu_load,uint32_t free_heap) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, liftoff_ts); + _mav_put_uint64_t(buf, 8, liftoff_max_acc_ts); + _mav_put_uint64_t(buf, 16, dpl_ts); + _mav_put_uint64_t(buf, 24, max_z_speed_ts); + _mav_put_uint64_t(buf, 32, apogee_ts); + _mav_put_float(buf, 40, liftoff_max_acc); + _mav_put_float(buf, 44, dpl_max_acc); + _mav_put_float(buf, 48, max_z_speed); + _mav_put_float(buf, 52, max_airspeed_pitot); + _mav_put_float(buf, 56, max_speed_altitude); + _mav_put_float(buf, 60, apogee_lat); + _mav_put_float(buf, 64, apogee_lon); + _mav_put_float(buf, 68, apogee_alt); + _mav_put_float(buf, 72, min_pressure); + _mav_put_float(buf, 76, ada_min_pressure); + _mav_put_float(buf, 80, dpl_vane_max_pressure); + _mav_put_float(buf, 84, cpu_load); + _mav_put_uint32_t(buf, 88, free_heap); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN); +#else + mavlink_rocket_stats_tm_t packet; + packet.liftoff_ts = liftoff_ts; + packet.liftoff_max_acc_ts = liftoff_max_acc_ts; + packet.dpl_ts = dpl_ts; + packet.max_z_speed_ts = max_z_speed_ts; + packet.apogee_ts = apogee_ts; + packet.liftoff_max_acc = liftoff_max_acc; + packet.dpl_max_acc = dpl_max_acc; + packet.max_z_speed = max_z_speed; + packet.max_airspeed_pitot = max_airspeed_pitot; + packet.max_speed_altitude = max_speed_altitude; + packet.apogee_lat = apogee_lat; + packet.apogee_lon = apogee_lon; + packet.apogee_alt = apogee_alt; + packet.min_pressure = min_pressure; + packet.ada_min_pressure = ada_min_pressure; + packet.dpl_vane_max_pressure = dpl_vane_max_pressure; + packet.cpu_load = cpu_load; + packet.free_heap = free_heap; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ROCKET_STATS_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_CRC); +} + +/** + * @brief Encode a rocket_stats_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param rocket_stats_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_rocket_stats_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_rocket_stats_tm_t* rocket_stats_tm) +{ + return mavlink_msg_rocket_stats_tm_pack(system_id, component_id, msg, rocket_stats_tm->liftoff_ts, rocket_stats_tm->liftoff_max_acc_ts, rocket_stats_tm->liftoff_max_acc, rocket_stats_tm->dpl_ts, rocket_stats_tm->dpl_max_acc, rocket_stats_tm->max_z_speed_ts, rocket_stats_tm->max_z_speed, rocket_stats_tm->max_airspeed_pitot, rocket_stats_tm->max_speed_altitude, rocket_stats_tm->apogee_ts, rocket_stats_tm->apogee_lat, rocket_stats_tm->apogee_lon, rocket_stats_tm->apogee_alt, rocket_stats_tm->min_pressure, rocket_stats_tm->ada_min_pressure, rocket_stats_tm->dpl_vane_max_pressure, rocket_stats_tm->cpu_load, rocket_stats_tm->free_heap); +} + +/** + * @brief Encode a rocket_stats_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param rocket_stats_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_rocket_stats_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_rocket_stats_tm_t* rocket_stats_tm) +{ + return mavlink_msg_rocket_stats_tm_pack_chan(system_id, component_id, chan, msg, rocket_stats_tm->liftoff_ts, rocket_stats_tm->liftoff_max_acc_ts, rocket_stats_tm->liftoff_max_acc, rocket_stats_tm->dpl_ts, rocket_stats_tm->dpl_max_acc, rocket_stats_tm->max_z_speed_ts, rocket_stats_tm->max_z_speed, rocket_stats_tm->max_airspeed_pitot, rocket_stats_tm->max_speed_altitude, rocket_stats_tm->apogee_ts, rocket_stats_tm->apogee_lat, rocket_stats_tm->apogee_lon, rocket_stats_tm->apogee_alt, rocket_stats_tm->min_pressure, rocket_stats_tm->ada_min_pressure, rocket_stats_tm->dpl_vane_max_pressure, rocket_stats_tm->cpu_load, rocket_stats_tm->free_heap); +} + +/** + * @brief Send a rocket_stats_tm message + * @param chan MAVLink channel to send the message + * + * @param liftoff_ts [us] System clock at liftoff + * @param liftoff_max_acc_ts [us] System clock at the maximum liftoff acceleration + * @param liftoff_max_acc [m/s2] Maximum liftoff acceleration + * @param dpl_ts [us] System clock at drouge deployment + * @param dpl_max_acc [m/s2] Max acceleration during drouge deployment + * @param max_z_speed_ts [us] System clock at ADA max vertical speed + * @param max_z_speed [m/s] Max measured vertical speed - ADA + * @param max_airspeed_pitot [m/s] Max speed read by the pitot tube + * @param max_speed_altitude [m] Altitude at max speed + * @param apogee_ts [us] System clock at apogee + * @param apogee_lat [deg] Apogee latitude + * @param apogee_lon [deg] Apogee longitude + * @param apogee_alt [m] Apogee altitude + * @param min_pressure [Pa] Apogee pressure - Digital barometer + * @param ada_min_pressure [Pa] Apogee pressure - ADA filtered + * @param dpl_vane_max_pressure [Pa] Max pressure in the deployment bay during drogue deployment + * @param cpu_load CPU load in percentage + * @param free_heap Amount of available heap in memory + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_rocket_stats_tm_send(mavlink_channel_t chan, uint64_t liftoff_ts, uint64_t liftoff_max_acc_ts, float liftoff_max_acc, uint64_t dpl_ts, float dpl_max_acc, uint64_t max_z_speed_ts, float max_z_speed, float max_airspeed_pitot, float max_speed_altitude, uint64_t apogee_ts, float apogee_lat, float apogee_lon, float apogee_alt, float min_pressure, float ada_min_pressure, float dpl_vane_max_pressure, float cpu_load, uint32_t free_heap) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, liftoff_ts); + _mav_put_uint64_t(buf, 8, liftoff_max_acc_ts); + _mav_put_uint64_t(buf, 16, dpl_ts); + _mav_put_uint64_t(buf, 24, max_z_speed_ts); + _mav_put_uint64_t(buf, 32, apogee_ts); + _mav_put_float(buf, 40, liftoff_max_acc); + _mav_put_float(buf, 44, dpl_max_acc); + _mav_put_float(buf, 48, max_z_speed); + _mav_put_float(buf, 52, max_airspeed_pitot); + _mav_put_float(buf, 56, max_speed_altitude); + _mav_put_float(buf, 60, apogee_lat); + _mav_put_float(buf, 64, apogee_lon); + _mav_put_float(buf, 68, apogee_alt); + _mav_put_float(buf, 72, min_pressure); + _mav_put_float(buf, 76, ada_min_pressure); + _mav_put_float(buf, 80, dpl_vane_max_pressure); + _mav_put_float(buf, 84, cpu_load); + _mav_put_uint32_t(buf, 88, free_heap); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_STATS_TM, buf, MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_CRC); +#else + mavlink_rocket_stats_tm_t packet; + packet.liftoff_ts = liftoff_ts; + packet.liftoff_max_acc_ts = liftoff_max_acc_ts; + packet.dpl_ts = dpl_ts; + packet.max_z_speed_ts = max_z_speed_ts; + packet.apogee_ts = apogee_ts; + packet.liftoff_max_acc = liftoff_max_acc; + packet.dpl_max_acc = dpl_max_acc; + packet.max_z_speed = max_z_speed; + packet.max_airspeed_pitot = max_airspeed_pitot; + packet.max_speed_altitude = max_speed_altitude; + packet.apogee_lat = apogee_lat; + packet.apogee_lon = apogee_lon; + packet.apogee_alt = apogee_alt; + packet.min_pressure = min_pressure; + packet.ada_min_pressure = ada_min_pressure; + packet.dpl_vane_max_pressure = dpl_vane_max_pressure; + packet.cpu_load = cpu_load; + packet.free_heap = free_heap; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_STATS_TM, (const char *)&packet, MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_CRC); +#endif +} + +/** + * @brief Send a rocket_stats_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_rocket_stats_tm_send_struct(mavlink_channel_t chan, const mavlink_rocket_stats_tm_t* rocket_stats_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_rocket_stats_tm_send(chan, rocket_stats_tm->liftoff_ts, rocket_stats_tm->liftoff_max_acc_ts, rocket_stats_tm->liftoff_max_acc, rocket_stats_tm->dpl_ts, rocket_stats_tm->dpl_max_acc, rocket_stats_tm->max_z_speed_ts, rocket_stats_tm->max_z_speed, rocket_stats_tm->max_airspeed_pitot, rocket_stats_tm->max_speed_altitude, rocket_stats_tm->apogee_ts, rocket_stats_tm->apogee_lat, rocket_stats_tm->apogee_lon, rocket_stats_tm->apogee_alt, rocket_stats_tm->min_pressure, rocket_stats_tm->ada_min_pressure, rocket_stats_tm->dpl_vane_max_pressure, rocket_stats_tm->cpu_load, rocket_stats_tm->free_heap); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_STATS_TM, (const char *)rocket_stats_tm, MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_rocket_stats_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t liftoff_ts, uint64_t liftoff_max_acc_ts, float liftoff_max_acc, uint64_t dpl_ts, float dpl_max_acc, uint64_t max_z_speed_ts, float max_z_speed, float max_airspeed_pitot, float max_speed_altitude, uint64_t apogee_ts, float apogee_lat, float apogee_lon, float apogee_alt, float min_pressure, float ada_min_pressure, float dpl_vane_max_pressure, float cpu_load, uint32_t free_heap) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, liftoff_ts); + _mav_put_uint64_t(buf, 8, liftoff_max_acc_ts); + _mav_put_uint64_t(buf, 16, dpl_ts); + _mav_put_uint64_t(buf, 24, max_z_speed_ts); + _mav_put_uint64_t(buf, 32, apogee_ts); + _mav_put_float(buf, 40, liftoff_max_acc); + _mav_put_float(buf, 44, dpl_max_acc); + _mav_put_float(buf, 48, max_z_speed); + _mav_put_float(buf, 52, max_airspeed_pitot); + _mav_put_float(buf, 56, max_speed_altitude); + _mav_put_float(buf, 60, apogee_lat); + _mav_put_float(buf, 64, apogee_lon); + _mav_put_float(buf, 68, apogee_alt); + _mav_put_float(buf, 72, min_pressure); + _mav_put_float(buf, 76, ada_min_pressure); + _mav_put_float(buf, 80, dpl_vane_max_pressure); + _mav_put_float(buf, 84, cpu_load); + _mav_put_uint32_t(buf, 88, free_heap); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_STATS_TM, buf, MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_CRC); +#else + mavlink_rocket_stats_tm_t *packet = (mavlink_rocket_stats_tm_t *)msgbuf; + packet->liftoff_ts = liftoff_ts; + packet->liftoff_max_acc_ts = liftoff_max_acc_ts; + packet->dpl_ts = dpl_ts; + packet->max_z_speed_ts = max_z_speed_ts; + packet->apogee_ts = apogee_ts; + packet->liftoff_max_acc = liftoff_max_acc; + packet->dpl_max_acc = dpl_max_acc; + packet->max_z_speed = max_z_speed; + packet->max_airspeed_pitot = max_airspeed_pitot; + packet->max_speed_altitude = max_speed_altitude; + packet->apogee_lat = apogee_lat; + packet->apogee_lon = apogee_lon; + packet->apogee_alt = apogee_alt; + packet->min_pressure = min_pressure; + packet->ada_min_pressure = ada_min_pressure; + packet->dpl_vane_max_pressure = dpl_vane_max_pressure; + packet->cpu_load = cpu_load; + packet->free_heap = free_heap; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ROCKET_STATS_TM, (const char *)packet, MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN, MAVLINK_MSG_ID_ROCKET_STATS_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE ROCKET_STATS_TM UNPACKING + + +/** + * @brief Get field liftoff_ts from rocket_stats_tm message + * + * @return [us] System clock at liftoff + */ +static inline uint64_t mavlink_msg_rocket_stats_tm_get_liftoff_ts(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field liftoff_max_acc_ts from rocket_stats_tm message + * + * @return [us] System clock at the maximum liftoff acceleration + */ +static inline uint64_t mavlink_msg_rocket_stats_tm_get_liftoff_max_acc_ts(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 8); +} + +/** + * @brief Get field liftoff_max_acc from rocket_stats_tm message + * + * @return [m/s2] Maximum liftoff acceleration + */ +static inline float mavlink_msg_rocket_stats_tm_get_liftoff_max_acc(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Get field dpl_ts from rocket_stats_tm message + * + * @return [us] System clock at drouge deployment + */ +static inline uint64_t mavlink_msg_rocket_stats_tm_get_dpl_ts(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 16); +} + +/** + * @brief Get field dpl_max_acc from rocket_stats_tm message + * + * @return [m/s2] Max acceleration during drouge deployment + */ +static inline float mavlink_msg_rocket_stats_tm_get_dpl_max_acc(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 44); +} + +/** + * @brief Get field max_z_speed_ts from rocket_stats_tm message + * + * @return [us] System clock at ADA max vertical speed + */ +static inline uint64_t mavlink_msg_rocket_stats_tm_get_max_z_speed_ts(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 24); +} + +/** + * @brief Get field max_z_speed from rocket_stats_tm message + * + * @return [m/s] Max measured vertical speed - ADA + */ +static inline float mavlink_msg_rocket_stats_tm_get_max_z_speed(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 48); +} + +/** + * @brief Get field max_airspeed_pitot from rocket_stats_tm message + * + * @return [m/s] Max speed read by the pitot tube + */ +static inline float mavlink_msg_rocket_stats_tm_get_max_airspeed_pitot(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 52); +} + +/** + * @brief Get field max_speed_altitude from rocket_stats_tm message + * + * @return [m] Altitude at max speed + */ +static inline float mavlink_msg_rocket_stats_tm_get_max_speed_altitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 56); +} + +/** + * @brief Get field apogee_ts from rocket_stats_tm message + * + * @return [us] System clock at apogee + */ +static inline uint64_t mavlink_msg_rocket_stats_tm_get_apogee_ts(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 32); +} + +/** + * @brief Get field apogee_lat from rocket_stats_tm message + * + * @return [deg] Apogee latitude + */ +static inline float mavlink_msg_rocket_stats_tm_get_apogee_lat(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 60); +} + +/** + * @brief Get field apogee_lon from rocket_stats_tm message + * + * @return [deg] Apogee longitude + */ +static inline float mavlink_msg_rocket_stats_tm_get_apogee_lon(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 64); +} + +/** + * @brief Get field apogee_alt from rocket_stats_tm message + * + * @return [m] Apogee altitude + */ +static inline float mavlink_msg_rocket_stats_tm_get_apogee_alt(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 68); +} + +/** + * @brief Get field min_pressure from rocket_stats_tm message + * + * @return [Pa] Apogee pressure - Digital barometer + */ +static inline float mavlink_msg_rocket_stats_tm_get_min_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 72); +} + +/** + * @brief Get field ada_min_pressure from rocket_stats_tm message + * + * @return [Pa] Apogee pressure - ADA filtered + */ +static inline float mavlink_msg_rocket_stats_tm_get_ada_min_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 76); +} + +/** + * @brief Get field dpl_vane_max_pressure from rocket_stats_tm message + * + * @return [Pa] Max pressure in the deployment bay during drogue deployment + */ +static inline float mavlink_msg_rocket_stats_tm_get_dpl_vane_max_pressure(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 80); +} + +/** + * @brief Get field cpu_load from rocket_stats_tm message + * + * @return CPU load in percentage + */ +static inline float mavlink_msg_rocket_stats_tm_get_cpu_load(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 84); +} + +/** + * @brief Get field free_heap from rocket_stats_tm message + * + * @return Amount of available heap in memory + */ +static inline uint32_t mavlink_msg_rocket_stats_tm_get_free_heap(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 88); +} + +/** + * @brief Decode a rocket_stats_tm message into a struct + * + * @param msg The message to decode + * @param rocket_stats_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_rocket_stats_tm_decode(const mavlink_message_t* msg, mavlink_rocket_stats_tm_t* rocket_stats_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + rocket_stats_tm->liftoff_ts = mavlink_msg_rocket_stats_tm_get_liftoff_ts(msg); + rocket_stats_tm->liftoff_max_acc_ts = mavlink_msg_rocket_stats_tm_get_liftoff_max_acc_ts(msg); + rocket_stats_tm->dpl_ts = mavlink_msg_rocket_stats_tm_get_dpl_ts(msg); + rocket_stats_tm->max_z_speed_ts = mavlink_msg_rocket_stats_tm_get_max_z_speed_ts(msg); + rocket_stats_tm->apogee_ts = mavlink_msg_rocket_stats_tm_get_apogee_ts(msg); + rocket_stats_tm->liftoff_max_acc = mavlink_msg_rocket_stats_tm_get_liftoff_max_acc(msg); + rocket_stats_tm->dpl_max_acc = mavlink_msg_rocket_stats_tm_get_dpl_max_acc(msg); + rocket_stats_tm->max_z_speed = mavlink_msg_rocket_stats_tm_get_max_z_speed(msg); + rocket_stats_tm->max_airspeed_pitot = mavlink_msg_rocket_stats_tm_get_max_airspeed_pitot(msg); + rocket_stats_tm->max_speed_altitude = mavlink_msg_rocket_stats_tm_get_max_speed_altitude(msg); + rocket_stats_tm->apogee_lat = mavlink_msg_rocket_stats_tm_get_apogee_lat(msg); + rocket_stats_tm->apogee_lon = mavlink_msg_rocket_stats_tm_get_apogee_lon(msg); + rocket_stats_tm->apogee_alt = mavlink_msg_rocket_stats_tm_get_apogee_alt(msg); + rocket_stats_tm->min_pressure = mavlink_msg_rocket_stats_tm_get_min_pressure(msg); + rocket_stats_tm->ada_min_pressure = mavlink_msg_rocket_stats_tm_get_ada_min_pressure(msg); + rocket_stats_tm->dpl_vane_max_pressure = mavlink_msg_rocket_stats_tm_get_dpl_vane_max_pressure(msg); + rocket_stats_tm->cpu_load = mavlink_msg_rocket_stats_tm_get_cpu_load(msg); + rocket_stats_tm->free_heap = mavlink_msg_rocket_stats_tm_get_free_heap(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN? msg->len : MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN; + memset(rocket_stats_tm, 0, MAVLINK_MSG_ID_ROCKET_STATS_TM_LEN); + memcpy(rocket_stats_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_sensor_state_tm.h b/mavlink_lib/lyra/mavlink_msg_sensor_state_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..deec614076883a9d0a979da1a7b2c515b2d87361 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_sensor_state_tm.h @@ -0,0 +1,230 @@ +#pragma once +// MESSAGE SENSOR_STATE_TM PACKING + +#define MAVLINK_MSG_ID_SENSOR_STATE_TM 111 + + +typedef struct __mavlink_sensor_state_tm_t { + char sensor_name[20]; /*< Sensor name*/ + uint8_t state; /*< Boolean that represents the init state*/ +} mavlink_sensor_state_tm_t; + +#define MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN 21 +#define MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN 21 +#define MAVLINK_MSG_ID_111_LEN 21 +#define MAVLINK_MSG_ID_111_MIN_LEN 21 + +#define MAVLINK_MSG_ID_SENSOR_STATE_TM_CRC 155 +#define MAVLINK_MSG_ID_111_CRC 155 + +#define MAVLINK_MSG_SENSOR_STATE_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SENSOR_STATE_TM { \ + 111, \ + "SENSOR_STATE_TM", \ + 2, \ + { { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 0, offsetof(mavlink_sensor_state_tm_t, sensor_name) }, \ + { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 20, offsetof(mavlink_sensor_state_tm_t, state) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SENSOR_STATE_TM { \ + "SENSOR_STATE_TM", \ + 2, \ + { { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 0, offsetof(mavlink_sensor_state_tm_t, sensor_name) }, \ + { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 20, offsetof(mavlink_sensor_state_tm_t, state) }, \ + } \ +} +#endif + +/** + * @brief Pack a sensor_state_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param sensor_name Sensor name + * @param state Boolean that represents the init state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_sensor_state_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + const char *sensor_name, uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN]; + _mav_put_uint8_t(buf, 20, state); + _mav_put_char_array(buf, 0, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN); +#else + mavlink_sensor_state_tm_t packet; + packet.state = state; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SENSOR_STATE_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_CRC); +} + +/** + * @brief Pack a sensor_state_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param sensor_name Sensor name + * @param state Boolean that represents the init state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_sensor_state_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + const char *sensor_name,uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN]; + _mav_put_uint8_t(buf, 20, state); + _mav_put_char_array(buf, 0, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN); +#else + mavlink_sensor_state_tm_t packet; + packet.state = state; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SENSOR_STATE_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_CRC); +} + +/** + * @brief Encode a sensor_state_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param sensor_state_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_sensor_state_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sensor_state_tm_t* sensor_state_tm) +{ + return mavlink_msg_sensor_state_tm_pack(system_id, component_id, msg, sensor_state_tm->sensor_name, sensor_state_tm->state); +} + +/** + * @brief Encode a sensor_state_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param sensor_state_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_sensor_state_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_sensor_state_tm_t* sensor_state_tm) +{ + return mavlink_msg_sensor_state_tm_pack_chan(system_id, component_id, chan, msg, sensor_state_tm->sensor_name, sensor_state_tm->state); +} + +/** + * @brief Send a sensor_state_tm message + * @param chan MAVLink channel to send the message + * + * @param sensor_name Sensor name + * @param state Boolean that represents the init state + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_sensor_state_tm_send(mavlink_channel_t chan, const char *sensor_name, uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN]; + _mav_put_uint8_t(buf, 20, state); + _mav_put_char_array(buf, 0, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_STATE_TM, buf, MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_CRC); +#else + mavlink_sensor_state_tm_t packet; + packet.state = state; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_STATE_TM, (const char *)&packet, MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_CRC); +#endif +} + +/** + * @brief Send a sensor_state_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_sensor_state_tm_send_struct(mavlink_channel_t chan, const mavlink_sensor_state_tm_t* sensor_state_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_sensor_state_tm_send(chan, sensor_state_tm->sensor_name, sensor_state_tm->state); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_STATE_TM, (const char *)sensor_state_tm, MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_sensor_state_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, const char *sensor_name, uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 20, state); + _mav_put_char_array(buf, 0, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_STATE_TM, buf, MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_CRC); +#else + mavlink_sensor_state_tm_t *packet = (mavlink_sensor_state_tm_t *)msgbuf; + packet->state = state; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_STATE_TM, (const char *)packet, MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN, MAVLINK_MSG_ID_SENSOR_STATE_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SENSOR_STATE_TM UNPACKING + + +/** + * @brief Get field sensor_name from sensor_state_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_sensor_state_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 0); +} + +/** + * @brief Get field state from sensor_state_tm message + * + * @return Boolean that represents the init state + */ +static inline uint8_t mavlink_msg_sensor_state_tm_get_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 20); +} + +/** + * @brief Decode a sensor_state_tm message into a struct + * + * @param msg The message to decode + * @param sensor_state_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_sensor_state_tm_decode(const mavlink_message_t* msg, mavlink_sensor_state_tm_t* sensor_state_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_sensor_state_tm_get_sensor_name(msg, sensor_state_tm->sensor_name); + sensor_state_tm->state = mavlink_msg_sensor_state_tm_get_state(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN? msg->len : MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN; + memset(sensor_state_tm, 0, MAVLINK_MSG_ID_SENSOR_STATE_TM_LEN); + memcpy(sensor_state_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_sensor_tm_request_tc.h b/mavlink_lib/lyra/mavlink_msg_sensor_tm_request_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..bdf4a43617f74e9ba284ef8613ba5f01e808b707 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_sensor_tm_request_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE SENSOR_TM_REQUEST_TC PACKING + +#define MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC 4 + + +typedef struct __mavlink_sensor_tm_request_tc_t { + uint8_t sensor_name; /*< A member of the SensorTMList enum*/ +} mavlink_sensor_tm_request_tc_t; + +#define MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN 1 +#define MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN 1 +#define MAVLINK_MSG_ID_4_LEN 1 +#define MAVLINK_MSG_ID_4_MIN_LEN 1 + +#define MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_CRC 248 +#define MAVLINK_MSG_ID_4_CRC 248 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SENSOR_TM_REQUEST_TC { \ + 4, \ + "SENSOR_TM_REQUEST_TC", \ + 1, \ + { { "sensor_name", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_sensor_tm_request_tc_t, sensor_name) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SENSOR_TM_REQUEST_TC { \ + "SENSOR_TM_REQUEST_TC", \ + 1, \ + { { "sensor_name", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_sensor_tm_request_tc_t, sensor_name) }, \ + } \ +} +#endif + +/** + * @brief Pack a sensor_tm_request_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param sensor_name A member of the SensorTMList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_sensor_tm_request_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t sensor_name) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN]; + _mav_put_uint8_t(buf, 0, sensor_name); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN); +#else + mavlink_sensor_tm_request_tc_t packet; + packet.sensor_name = sensor_name; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_CRC); +} + +/** + * @brief Pack a sensor_tm_request_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param sensor_name A member of the SensorTMList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_sensor_tm_request_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t sensor_name) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN]; + _mav_put_uint8_t(buf, 0, sensor_name); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN); +#else + mavlink_sensor_tm_request_tc_t packet; + packet.sensor_name = sensor_name; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_CRC); +} + +/** + * @brief Encode a sensor_tm_request_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param sensor_tm_request_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_sensor_tm_request_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sensor_tm_request_tc_t* sensor_tm_request_tc) +{ + return mavlink_msg_sensor_tm_request_tc_pack(system_id, component_id, msg, sensor_tm_request_tc->sensor_name); +} + +/** + * @brief Encode a sensor_tm_request_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param sensor_tm_request_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_sensor_tm_request_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_sensor_tm_request_tc_t* sensor_tm_request_tc) +{ + return mavlink_msg_sensor_tm_request_tc_pack_chan(system_id, component_id, chan, msg, sensor_tm_request_tc->sensor_name); +} + +/** + * @brief Send a sensor_tm_request_tc message + * @param chan MAVLink channel to send the message + * + * @param sensor_name A member of the SensorTMList enum + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_sensor_tm_request_tc_send(mavlink_channel_t chan, uint8_t sensor_name) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN]; + _mav_put_uint8_t(buf, 0, sensor_name); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC, buf, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_CRC); +#else + mavlink_sensor_tm_request_tc_t packet; + packet.sensor_name = sensor_name; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC, (const char *)&packet, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_CRC); +#endif +} + +/** + * @brief Send a sensor_tm_request_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_sensor_tm_request_tc_send_struct(mavlink_channel_t chan, const mavlink_sensor_tm_request_tc_t* sensor_tm_request_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_sensor_tm_request_tc_send(chan, sensor_tm_request_tc->sensor_name); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC, (const char *)sensor_tm_request_tc, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_sensor_tm_request_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t sensor_name) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, sensor_name); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC, buf, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_CRC); +#else + mavlink_sensor_tm_request_tc_t *packet = (mavlink_sensor_tm_request_tc_t *)msgbuf; + packet->sensor_name = sensor_name; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC, (const char *)packet, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SENSOR_TM_REQUEST_TC UNPACKING + + +/** + * @brief Get field sensor_name from sensor_tm_request_tc message + * + * @return A member of the SensorTMList enum + */ +static inline uint8_t mavlink_msg_sensor_tm_request_tc_get_sensor_name(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Decode a sensor_tm_request_tc message into a struct + * + * @param msg The message to decode + * @param sensor_tm_request_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_sensor_tm_request_tc_decode(const mavlink_message_t* msg, mavlink_sensor_tm_request_tc_t* sensor_tm_request_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + sensor_tm_request_tc->sensor_name = mavlink_msg_sensor_tm_request_tc_get_sensor_name(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN? msg->len : MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN; + memset(sensor_tm_request_tc, 0, MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_LEN); + memcpy(sensor_tm_request_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_servo_tm.h b/mavlink_lib/lyra/mavlink_msg_servo_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..0ffe705d7c4094e1d82b537e2c7977a64b12c86a --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_servo_tm.h @@ -0,0 +1,238 @@ +#pragma once +// MESSAGE SERVO_TM PACKING + +#define MAVLINK_MSG_ID_SERVO_TM 112 + + +typedef struct __mavlink_servo_tm_t { + float servo_position; /*< Position of the servo [0-1]*/ + uint8_t servo_id; /*< A member of the ServosList enum*/ +} mavlink_servo_tm_t; + +#define MAVLINK_MSG_ID_SERVO_TM_LEN 5 +#define MAVLINK_MSG_ID_SERVO_TM_MIN_LEN 5 +#define MAVLINK_MSG_ID_112_LEN 5 +#define MAVLINK_MSG_ID_112_MIN_LEN 5 + +#define MAVLINK_MSG_ID_SERVO_TM_CRC 87 +#define MAVLINK_MSG_ID_112_CRC 87 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SERVO_TM { \ + 112, \ + "SERVO_TM", \ + 2, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_servo_tm_t, servo_id) }, \ + { "servo_position", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_servo_tm_t, servo_position) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SERVO_TM { \ + "SERVO_TM", \ + 2, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_servo_tm_t, servo_id) }, \ + { "servo_position", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_servo_tm_t, servo_position) }, \ + } \ +} +#endif + +/** + * @brief Pack a servo_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param servo_id A member of the ServosList enum + * @param servo_position Position of the servo [0-1] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_servo_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t servo_id, float servo_position) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SERVO_TM_LEN]; + _mav_put_float(buf, 0, servo_position); + _mav_put_uint8_t(buf, 4, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SERVO_TM_LEN); +#else + mavlink_servo_tm_t packet; + packet.servo_position = servo_position; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SERVO_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SERVO_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SERVO_TM_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_LEN, MAVLINK_MSG_ID_SERVO_TM_CRC); +} + +/** + * @brief Pack a servo_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servo_id A member of the ServosList enum + * @param servo_position Position of the servo [0-1] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_servo_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t servo_id,float servo_position) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SERVO_TM_LEN]; + _mav_put_float(buf, 0, servo_position); + _mav_put_uint8_t(buf, 4, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SERVO_TM_LEN); +#else + mavlink_servo_tm_t packet; + packet.servo_position = servo_position; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SERVO_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SERVO_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SERVO_TM_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_LEN, MAVLINK_MSG_ID_SERVO_TM_CRC); +} + +/** + * @brief Encode a servo_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param servo_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_servo_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_servo_tm_t* servo_tm) +{ + return mavlink_msg_servo_tm_pack(system_id, component_id, msg, servo_tm->servo_id, servo_tm->servo_position); +} + +/** + * @brief Encode a servo_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servo_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_servo_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_servo_tm_t* servo_tm) +{ + return mavlink_msg_servo_tm_pack_chan(system_id, component_id, chan, msg, servo_tm->servo_id, servo_tm->servo_position); +} + +/** + * @brief Send a servo_tm message + * @param chan MAVLink channel to send the message + * + * @param servo_id A member of the ServosList enum + * @param servo_position Position of the servo [0-1] + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_servo_tm_send(mavlink_channel_t chan, uint8_t servo_id, float servo_position) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SERVO_TM_LEN]; + _mav_put_float(buf, 0, servo_position); + _mav_put_uint8_t(buf, 4, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM, buf, MAVLINK_MSG_ID_SERVO_TM_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_LEN, MAVLINK_MSG_ID_SERVO_TM_CRC); +#else + mavlink_servo_tm_t packet; + packet.servo_position = servo_position; + packet.servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM, (const char *)&packet, MAVLINK_MSG_ID_SERVO_TM_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_LEN, MAVLINK_MSG_ID_SERVO_TM_CRC); +#endif +} + +/** + * @brief Send a servo_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_servo_tm_send_struct(mavlink_channel_t chan, const mavlink_servo_tm_t* servo_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_servo_tm_send(chan, servo_tm->servo_id, servo_tm->servo_position); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM, (const char *)servo_tm, MAVLINK_MSG_ID_SERVO_TM_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_LEN, MAVLINK_MSG_ID_SERVO_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SERVO_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_servo_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t servo_id, float servo_position) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_float(buf, 0, servo_position); + _mav_put_uint8_t(buf, 4, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM, buf, MAVLINK_MSG_ID_SERVO_TM_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_LEN, MAVLINK_MSG_ID_SERVO_TM_CRC); +#else + mavlink_servo_tm_t *packet = (mavlink_servo_tm_t *)msgbuf; + packet->servo_position = servo_position; + packet->servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM, (const char *)packet, MAVLINK_MSG_ID_SERVO_TM_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_LEN, MAVLINK_MSG_ID_SERVO_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SERVO_TM UNPACKING + + +/** + * @brief Get field servo_id from servo_tm message + * + * @return A member of the ServosList enum + */ +static inline uint8_t mavlink_msg_servo_tm_get_servo_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 4); +} + +/** + * @brief Get field servo_position from servo_tm message + * + * @return Position of the servo [0-1] + */ +static inline float mavlink_msg_servo_tm_get_servo_position(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 0); +} + +/** + * @brief Decode a servo_tm message into a struct + * + * @param msg The message to decode + * @param servo_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_servo_tm_decode(const mavlink_message_t* msg, mavlink_servo_tm_t* servo_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + servo_tm->servo_position = mavlink_msg_servo_tm_get_servo_position(msg); + servo_tm->servo_id = mavlink_msg_servo_tm_get_servo_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SERVO_TM_LEN? msg->len : MAVLINK_MSG_ID_SERVO_TM_LEN; + memset(servo_tm, 0, MAVLINK_MSG_ID_SERVO_TM_LEN); + memcpy(servo_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_servo_tm_request_tc.h b/mavlink_lib/lyra/mavlink_msg_servo_tm_request_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..6ac27824c3a9ac7df9d8bf0a0983c552f689cb71 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_servo_tm_request_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE SERVO_TM_REQUEST_TC PACKING + +#define MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC 5 + + +typedef struct __mavlink_servo_tm_request_tc_t { + uint8_t servo_id; /*< A member of the ServosList enum*/ +} mavlink_servo_tm_request_tc_t; + +#define MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN 1 +#define MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN 1 +#define MAVLINK_MSG_ID_5_LEN 1 +#define MAVLINK_MSG_ID_5_MIN_LEN 1 + +#define MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_CRC 184 +#define MAVLINK_MSG_ID_5_CRC 184 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SERVO_TM_REQUEST_TC { \ + 5, \ + "SERVO_TM_REQUEST_TC", \ + 1, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_servo_tm_request_tc_t, servo_id) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SERVO_TM_REQUEST_TC { \ + "SERVO_TM_REQUEST_TC", \ + 1, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_servo_tm_request_tc_t, servo_id) }, \ + } \ +} +#endif + +/** + * @brief Pack a servo_tm_request_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param servo_id A member of the ServosList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_servo_tm_request_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN]; + _mav_put_uint8_t(buf, 0, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN); +#else + mavlink_servo_tm_request_tc_t packet; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_CRC); +} + +/** + * @brief Pack a servo_tm_request_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servo_id A member of the ServosList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_servo_tm_request_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN]; + _mav_put_uint8_t(buf, 0, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN); +#else + mavlink_servo_tm_request_tc_t packet; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_CRC); +} + +/** + * @brief Encode a servo_tm_request_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param servo_tm_request_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_servo_tm_request_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_servo_tm_request_tc_t* servo_tm_request_tc) +{ + return mavlink_msg_servo_tm_request_tc_pack(system_id, component_id, msg, servo_tm_request_tc->servo_id); +} + +/** + * @brief Encode a servo_tm_request_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servo_tm_request_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_servo_tm_request_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_servo_tm_request_tc_t* servo_tm_request_tc) +{ + return mavlink_msg_servo_tm_request_tc_pack_chan(system_id, component_id, chan, msg, servo_tm_request_tc->servo_id); +} + +/** + * @brief Send a servo_tm_request_tc message + * @param chan MAVLink channel to send the message + * + * @param servo_id A member of the ServosList enum + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_servo_tm_request_tc_send(mavlink_channel_t chan, uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN]; + _mav_put_uint8_t(buf, 0, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC, buf, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_CRC); +#else + mavlink_servo_tm_request_tc_t packet; + packet.servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC, (const char *)&packet, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_CRC); +#endif +} + +/** + * @brief Send a servo_tm_request_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_servo_tm_request_tc_send_struct(mavlink_channel_t chan, const mavlink_servo_tm_request_tc_t* servo_tm_request_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_servo_tm_request_tc_send(chan, servo_tm_request_tc->servo_id); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC, (const char *)servo_tm_request_tc, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_servo_tm_request_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC, buf, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_CRC); +#else + mavlink_servo_tm_request_tc_t *packet = (mavlink_servo_tm_request_tc_t *)msgbuf; + packet->servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC, (const char *)packet, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SERVO_TM_REQUEST_TC UNPACKING + + +/** + * @brief Get field servo_id from servo_tm_request_tc message + * + * @return A member of the ServosList enum + */ +static inline uint8_t mavlink_msg_servo_tm_request_tc_get_servo_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Decode a servo_tm_request_tc message into a struct + * + * @param msg The message to decode + * @param servo_tm_request_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_servo_tm_request_tc_decode(const mavlink_message_t* msg, mavlink_servo_tm_request_tc_t* servo_tm_request_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + servo_tm_request_tc->servo_id = mavlink_msg_servo_tm_request_tc_get_servo_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN? msg->len : MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN; + memset(servo_tm_request_tc, 0, MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_LEN); + memcpy(servo_tm_request_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_algorithm_tc.h b/mavlink_lib/lyra/mavlink_msg_set_algorithm_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..68de47900b54c4ba2dd2d8243250d5a1474d57e2 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_algorithm_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE SET_ALGORITHM_TC PACKING + +#define MAVLINK_MSG_ID_SET_ALGORITHM_TC 16 + + +typedef struct __mavlink_set_algorithm_tc_t { + uint8_t algorithm_number; /*< Algorithm number*/ +} mavlink_set_algorithm_tc_t; + +#define MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN 1 +#define MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN 1 +#define MAVLINK_MSG_ID_16_LEN 1 +#define MAVLINK_MSG_ID_16_MIN_LEN 1 + +#define MAVLINK_MSG_ID_SET_ALGORITHM_TC_CRC 181 +#define MAVLINK_MSG_ID_16_CRC 181 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_ALGORITHM_TC { \ + 16, \ + "SET_ALGORITHM_TC", \ + 1, \ + { { "algorithm_number", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_set_algorithm_tc_t, algorithm_number) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_ALGORITHM_TC { \ + "SET_ALGORITHM_TC", \ + 1, \ + { { "algorithm_number", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_set_algorithm_tc_t, algorithm_number) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_algorithm_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param algorithm_number Algorithm number + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_algorithm_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t algorithm_number) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN]; + _mav_put_uint8_t(buf, 0, algorithm_number); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN); +#else + mavlink_set_algorithm_tc_t packet; + packet.algorithm_number = algorithm_number; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_ALGORITHM_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_CRC); +} + +/** + * @brief Pack a set_algorithm_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param algorithm_number Algorithm number + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_algorithm_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t algorithm_number) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN]; + _mav_put_uint8_t(buf, 0, algorithm_number); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN); +#else + mavlink_set_algorithm_tc_t packet; + packet.algorithm_number = algorithm_number; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_ALGORITHM_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_CRC); +} + +/** + * @brief Encode a set_algorithm_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_algorithm_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_algorithm_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_algorithm_tc_t* set_algorithm_tc) +{ + return mavlink_msg_set_algorithm_tc_pack(system_id, component_id, msg, set_algorithm_tc->algorithm_number); +} + +/** + * @brief Encode a set_algorithm_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_algorithm_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_algorithm_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_algorithm_tc_t* set_algorithm_tc) +{ + return mavlink_msg_set_algorithm_tc_pack_chan(system_id, component_id, chan, msg, set_algorithm_tc->algorithm_number); +} + +/** + * @brief Send a set_algorithm_tc message + * @param chan MAVLink channel to send the message + * + * @param algorithm_number Algorithm number + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_algorithm_tc_send(mavlink_channel_t chan, uint8_t algorithm_number) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN]; + _mav_put_uint8_t(buf, 0, algorithm_number); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ALGORITHM_TC, buf, MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_CRC); +#else + mavlink_set_algorithm_tc_t packet; + packet.algorithm_number = algorithm_number; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ALGORITHM_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_CRC); +#endif +} + +/** + * @brief Send a set_algorithm_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_algorithm_tc_send_struct(mavlink_channel_t chan, const mavlink_set_algorithm_tc_t* set_algorithm_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_algorithm_tc_send(chan, set_algorithm_tc->algorithm_number); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ALGORITHM_TC, (const char *)set_algorithm_tc, MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_algorithm_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t algorithm_number) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, algorithm_number); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ALGORITHM_TC, buf, MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_CRC); +#else + mavlink_set_algorithm_tc_t *packet = (mavlink_set_algorithm_tc_t *)msgbuf; + packet->algorithm_number = algorithm_number; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ALGORITHM_TC, (const char *)packet, MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN, MAVLINK_MSG_ID_SET_ALGORITHM_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_ALGORITHM_TC UNPACKING + + +/** + * @brief Get field algorithm_number from set_algorithm_tc message + * + * @return Algorithm number + */ +static inline uint8_t mavlink_msg_set_algorithm_tc_get_algorithm_number(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Decode a set_algorithm_tc message into a struct + * + * @param msg The message to decode + * @param set_algorithm_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_algorithm_tc_decode(const mavlink_message_t* msg, mavlink_set_algorithm_tc_t* set_algorithm_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_algorithm_tc->algorithm_number = mavlink_msg_set_algorithm_tc_get_algorithm_number(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN; + memset(set_algorithm_tc, 0, MAVLINK_MSG_ID_SET_ALGORITHM_TC_LEN); + memcpy(set_algorithm_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_atomic_valve_timing_tc.h b/mavlink_lib/lyra/mavlink_msg_set_atomic_valve_timing_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..767be290e5f5524ce02c1663f7eaedcd12a5a34f --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_atomic_valve_timing_tc.h @@ -0,0 +1,238 @@ +#pragma once +// MESSAGE SET_ATOMIC_VALVE_TIMING_TC PACKING + +#define MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC 17 + + +typedef struct __mavlink_set_atomic_valve_timing_tc_t { + uint32_t maximum_timing; /*< [ms] Maximum timing in [ms]*/ + uint8_t servo_id; /*< A member of the ServosList enum*/ +} mavlink_set_atomic_valve_timing_tc_t; + +#define MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN 5 +#define MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN 5 +#define MAVLINK_MSG_ID_17_LEN 5 +#define MAVLINK_MSG_ID_17_MIN_LEN 5 + +#define MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_CRC 110 +#define MAVLINK_MSG_ID_17_CRC 110 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_ATOMIC_VALVE_TIMING_TC { \ + 17, \ + "SET_ATOMIC_VALVE_TIMING_TC", \ + 2, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_set_atomic_valve_timing_tc_t, servo_id) }, \ + { "maximum_timing", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_set_atomic_valve_timing_tc_t, maximum_timing) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_ATOMIC_VALVE_TIMING_TC { \ + "SET_ATOMIC_VALVE_TIMING_TC", \ + 2, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_set_atomic_valve_timing_tc_t, servo_id) }, \ + { "maximum_timing", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_set_atomic_valve_timing_tc_t, maximum_timing) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_atomic_valve_timing_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param servo_id A member of the ServosList enum + * @param maximum_timing [ms] Maximum timing in [ms] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_atomic_valve_timing_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t servo_id, uint32_t maximum_timing) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN]; + _mav_put_uint32_t(buf, 0, maximum_timing); + _mav_put_uint8_t(buf, 4, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN); +#else + mavlink_set_atomic_valve_timing_tc_t packet; + packet.maximum_timing = maximum_timing; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_CRC); +} + +/** + * @brief Pack a set_atomic_valve_timing_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servo_id A member of the ServosList enum + * @param maximum_timing [ms] Maximum timing in [ms] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_atomic_valve_timing_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t servo_id,uint32_t maximum_timing) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN]; + _mav_put_uint32_t(buf, 0, maximum_timing); + _mav_put_uint8_t(buf, 4, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN); +#else + mavlink_set_atomic_valve_timing_tc_t packet; + packet.maximum_timing = maximum_timing; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_CRC); +} + +/** + * @brief Encode a set_atomic_valve_timing_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_atomic_valve_timing_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_atomic_valve_timing_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_atomic_valve_timing_tc_t* set_atomic_valve_timing_tc) +{ + return mavlink_msg_set_atomic_valve_timing_tc_pack(system_id, component_id, msg, set_atomic_valve_timing_tc->servo_id, set_atomic_valve_timing_tc->maximum_timing); +} + +/** + * @brief Encode a set_atomic_valve_timing_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_atomic_valve_timing_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_atomic_valve_timing_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_atomic_valve_timing_tc_t* set_atomic_valve_timing_tc) +{ + return mavlink_msg_set_atomic_valve_timing_tc_pack_chan(system_id, component_id, chan, msg, set_atomic_valve_timing_tc->servo_id, set_atomic_valve_timing_tc->maximum_timing); +} + +/** + * @brief Send a set_atomic_valve_timing_tc message + * @param chan MAVLink channel to send the message + * + * @param servo_id A member of the ServosList enum + * @param maximum_timing [ms] Maximum timing in [ms] + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_atomic_valve_timing_tc_send(mavlink_channel_t chan, uint8_t servo_id, uint32_t maximum_timing) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN]; + _mav_put_uint32_t(buf, 0, maximum_timing); + _mav_put_uint8_t(buf, 4, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC, buf, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_CRC); +#else + mavlink_set_atomic_valve_timing_tc_t packet; + packet.maximum_timing = maximum_timing; + packet.servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_CRC); +#endif +} + +/** + * @brief Send a set_atomic_valve_timing_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_atomic_valve_timing_tc_send_struct(mavlink_channel_t chan, const mavlink_set_atomic_valve_timing_tc_t* set_atomic_valve_timing_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_atomic_valve_timing_tc_send(chan, set_atomic_valve_timing_tc->servo_id, set_atomic_valve_timing_tc->maximum_timing); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC, (const char *)set_atomic_valve_timing_tc, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_atomic_valve_timing_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t servo_id, uint32_t maximum_timing) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, maximum_timing); + _mav_put_uint8_t(buf, 4, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC, buf, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_CRC); +#else + mavlink_set_atomic_valve_timing_tc_t *packet = (mavlink_set_atomic_valve_timing_tc_t *)msgbuf; + packet->maximum_timing = maximum_timing; + packet->servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC, (const char *)packet, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_ATOMIC_VALVE_TIMING_TC UNPACKING + + +/** + * @brief Get field servo_id from set_atomic_valve_timing_tc message + * + * @return A member of the ServosList enum + */ +static inline uint8_t mavlink_msg_set_atomic_valve_timing_tc_get_servo_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 4); +} + +/** + * @brief Get field maximum_timing from set_atomic_valve_timing_tc message + * + * @return [ms] Maximum timing in [ms] + */ +static inline uint32_t mavlink_msg_set_atomic_valve_timing_tc_get_maximum_timing(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Decode a set_atomic_valve_timing_tc message into a struct + * + * @param msg The message to decode + * @param set_atomic_valve_timing_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_atomic_valve_timing_tc_decode(const mavlink_message_t* msg, mavlink_set_atomic_valve_timing_tc_t* set_atomic_valve_timing_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_atomic_valve_timing_tc->maximum_timing = mavlink_msg_set_atomic_valve_timing_tc_get_maximum_timing(msg); + set_atomic_valve_timing_tc->servo_id = mavlink_msg_set_atomic_valve_timing_tc_get_servo_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN; + memset(set_atomic_valve_timing_tc, 0, MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_LEN); + memcpy(set_atomic_valve_timing_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_coordinates_tc.h b/mavlink_lib/lyra/mavlink_msg_set_coordinates_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..827f0ec42e8f8ca2cc283732f06ebc1f9a966af0 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_coordinates_tc.h @@ -0,0 +1,238 @@ +#pragma once +// MESSAGE SET_COORDINATES_TC PACKING + +#define MAVLINK_MSG_ID_SET_COORDINATES_TC 12 + + +typedef struct __mavlink_set_coordinates_tc_t { + float latitude; /*< [deg] Latitude*/ + float longitude; /*< [deg] Longitude*/ +} mavlink_set_coordinates_tc_t; + +#define MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN 8 +#define MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN 8 +#define MAVLINK_MSG_ID_12_LEN 8 +#define MAVLINK_MSG_ID_12_MIN_LEN 8 + +#define MAVLINK_MSG_ID_SET_COORDINATES_TC_CRC 67 +#define MAVLINK_MSG_ID_12_CRC 67 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_COORDINATES_TC { \ + 12, \ + "SET_COORDINATES_TC", \ + 2, \ + { { "latitude", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_coordinates_tc_t, latitude) }, \ + { "longitude", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_set_coordinates_tc_t, longitude) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_COORDINATES_TC { \ + "SET_COORDINATES_TC", \ + 2, \ + { { "latitude", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_coordinates_tc_t, latitude) }, \ + { "longitude", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_set_coordinates_tc_t, longitude) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_coordinates_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param latitude [deg] Latitude + * @param longitude [deg] Longitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_coordinates_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + float latitude, float longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN]; + _mav_put_float(buf, 0, latitude); + _mav_put_float(buf, 4, longitude); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN); +#else + mavlink_set_coordinates_tc_t packet; + packet.latitude = latitude; + packet.longitude = longitude; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_COORDINATES_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_CRC); +} + +/** + * @brief Pack a set_coordinates_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param latitude [deg] Latitude + * @param longitude [deg] Longitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_coordinates_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + float latitude,float longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN]; + _mav_put_float(buf, 0, latitude); + _mav_put_float(buf, 4, longitude); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN); +#else + mavlink_set_coordinates_tc_t packet; + packet.latitude = latitude; + packet.longitude = longitude; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_COORDINATES_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_CRC); +} + +/** + * @brief Encode a set_coordinates_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_coordinates_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_coordinates_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_coordinates_tc_t* set_coordinates_tc) +{ + return mavlink_msg_set_coordinates_tc_pack(system_id, component_id, msg, set_coordinates_tc->latitude, set_coordinates_tc->longitude); +} + +/** + * @brief Encode a set_coordinates_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_coordinates_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_coordinates_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_coordinates_tc_t* set_coordinates_tc) +{ + return mavlink_msg_set_coordinates_tc_pack_chan(system_id, component_id, chan, msg, set_coordinates_tc->latitude, set_coordinates_tc->longitude); +} + +/** + * @brief Send a set_coordinates_tc message + * @param chan MAVLink channel to send the message + * + * @param latitude [deg] Latitude + * @param longitude [deg] Longitude + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_coordinates_tc_send(mavlink_channel_t chan, float latitude, float longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN]; + _mav_put_float(buf, 0, latitude); + _mav_put_float(buf, 4, longitude); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_COORDINATES_TC, buf, MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_CRC); +#else + mavlink_set_coordinates_tc_t packet; + packet.latitude = latitude; + packet.longitude = longitude; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_COORDINATES_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_CRC); +#endif +} + +/** + * @brief Send a set_coordinates_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_coordinates_tc_send_struct(mavlink_channel_t chan, const mavlink_set_coordinates_tc_t* set_coordinates_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_coordinates_tc_send(chan, set_coordinates_tc->latitude, set_coordinates_tc->longitude); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_COORDINATES_TC, (const char *)set_coordinates_tc, MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_coordinates_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, float latitude, float longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_float(buf, 0, latitude); + _mav_put_float(buf, 4, longitude); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_COORDINATES_TC, buf, MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_CRC); +#else + mavlink_set_coordinates_tc_t *packet = (mavlink_set_coordinates_tc_t *)msgbuf; + packet->latitude = latitude; + packet->longitude = longitude; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_COORDINATES_TC, (const char *)packet, MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_COORDINATES_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_COORDINATES_TC UNPACKING + + +/** + * @brief Get field latitude from set_coordinates_tc message + * + * @return [deg] Latitude + */ +static inline float mavlink_msg_set_coordinates_tc_get_latitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 0); +} + +/** + * @brief Get field longitude from set_coordinates_tc message + * + * @return [deg] Longitude + */ +static inline float mavlink_msg_set_coordinates_tc_get_longitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 4); +} + +/** + * @brief Decode a set_coordinates_tc message into a struct + * + * @param msg The message to decode + * @param set_coordinates_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_coordinates_tc_decode(const mavlink_message_t* msg, mavlink_set_coordinates_tc_t* set_coordinates_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_coordinates_tc->latitude = mavlink_msg_set_coordinates_tc_get_latitude(msg); + set_coordinates_tc->longitude = mavlink_msg_set_coordinates_tc_get_longitude(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN; + memset(set_coordinates_tc, 0, MAVLINK_MSG_ID_SET_COORDINATES_TC_LEN); + memcpy(set_coordinates_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_deployment_altitude_tc.h b/mavlink_lib/lyra/mavlink_msg_set_deployment_altitude_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..38c61267d4498fb5f1924eaf8a83b701d0d37677 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_deployment_altitude_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE SET_DEPLOYMENT_ALTITUDE_TC PACKING + +#define MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC 14 + + +typedef struct __mavlink_set_deployment_altitude_tc_t { + float dpl_altitude; /*< [m] Deployment altitude*/ +} mavlink_set_deployment_altitude_tc_t; + +#define MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN 4 +#define MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN 4 +#define MAVLINK_MSG_ID_14_LEN 4 +#define MAVLINK_MSG_ID_14_MIN_LEN 4 + +#define MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_CRC 44 +#define MAVLINK_MSG_ID_14_CRC 44 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_DEPLOYMENT_ALTITUDE_TC { \ + 14, \ + "SET_DEPLOYMENT_ALTITUDE_TC", \ + 1, \ + { { "dpl_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_deployment_altitude_tc_t, dpl_altitude) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_DEPLOYMENT_ALTITUDE_TC { \ + "SET_DEPLOYMENT_ALTITUDE_TC", \ + 1, \ + { { "dpl_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_deployment_altitude_tc_t, dpl_altitude) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_deployment_altitude_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param dpl_altitude [m] Deployment altitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_deployment_altitude_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + float dpl_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN]; + _mav_put_float(buf, 0, dpl_altitude); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN); +#else + mavlink_set_deployment_altitude_tc_t packet; + packet.dpl_altitude = dpl_altitude; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_CRC); +} + +/** + * @brief Pack a set_deployment_altitude_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param dpl_altitude [m] Deployment altitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_deployment_altitude_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + float dpl_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN]; + _mav_put_float(buf, 0, dpl_altitude); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN); +#else + mavlink_set_deployment_altitude_tc_t packet; + packet.dpl_altitude = dpl_altitude; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_CRC); +} + +/** + * @brief Encode a set_deployment_altitude_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_deployment_altitude_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_deployment_altitude_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_deployment_altitude_tc_t* set_deployment_altitude_tc) +{ + return mavlink_msg_set_deployment_altitude_tc_pack(system_id, component_id, msg, set_deployment_altitude_tc->dpl_altitude); +} + +/** + * @brief Encode a set_deployment_altitude_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_deployment_altitude_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_deployment_altitude_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_deployment_altitude_tc_t* set_deployment_altitude_tc) +{ + return mavlink_msg_set_deployment_altitude_tc_pack_chan(system_id, component_id, chan, msg, set_deployment_altitude_tc->dpl_altitude); +} + +/** + * @brief Send a set_deployment_altitude_tc message + * @param chan MAVLink channel to send the message + * + * @param dpl_altitude [m] Deployment altitude + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_deployment_altitude_tc_send(mavlink_channel_t chan, float dpl_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN]; + _mav_put_float(buf, 0, dpl_altitude); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC, buf, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_CRC); +#else + mavlink_set_deployment_altitude_tc_t packet; + packet.dpl_altitude = dpl_altitude; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_CRC); +#endif +} + +/** + * @brief Send a set_deployment_altitude_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_deployment_altitude_tc_send_struct(mavlink_channel_t chan, const mavlink_set_deployment_altitude_tc_t* set_deployment_altitude_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_deployment_altitude_tc_send(chan, set_deployment_altitude_tc->dpl_altitude); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC, (const char *)set_deployment_altitude_tc, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_deployment_altitude_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, float dpl_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_float(buf, 0, dpl_altitude); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC, buf, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_CRC); +#else + mavlink_set_deployment_altitude_tc_t *packet = (mavlink_set_deployment_altitude_tc_t *)msgbuf; + packet->dpl_altitude = dpl_altitude; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC, (const char *)packet, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_DEPLOYMENT_ALTITUDE_TC UNPACKING + + +/** + * @brief Get field dpl_altitude from set_deployment_altitude_tc message + * + * @return [m] Deployment altitude + */ +static inline float mavlink_msg_set_deployment_altitude_tc_get_dpl_altitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 0); +} + +/** + * @brief Decode a set_deployment_altitude_tc message into a struct + * + * @param msg The message to decode + * @param set_deployment_altitude_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_deployment_altitude_tc_decode(const mavlink_message_t* msg, mavlink_set_deployment_altitude_tc_t* set_deployment_altitude_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_deployment_altitude_tc->dpl_altitude = mavlink_msg_set_deployment_altitude_tc_get_dpl_altitude(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN; + memset(set_deployment_altitude_tc, 0, MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_LEN); + memcpy(set_deployment_altitude_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_ignition_time_tc.h b/mavlink_lib/lyra/mavlink_msg_set_ignition_time_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..8ca91d61d9f9331adcf84943b20765cc5b65bc74 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_ignition_time_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE SET_IGNITION_TIME_TC PACKING + +#define MAVLINK_MSG_ID_SET_IGNITION_TIME_TC 20 + + +typedef struct __mavlink_set_ignition_time_tc_t { + uint32_t timing; /*< [ms] Timing in [ms]*/ +} mavlink_set_ignition_time_tc_t; + +#define MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN 4 +#define MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN 4 +#define MAVLINK_MSG_ID_20_LEN 4 +#define MAVLINK_MSG_ID_20_MIN_LEN 4 + +#define MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_CRC 79 +#define MAVLINK_MSG_ID_20_CRC 79 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_IGNITION_TIME_TC { \ + 20, \ + "SET_IGNITION_TIME_TC", \ + 1, \ + { { "timing", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_set_ignition_time_tc_t, timing) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_IGNITION_TIME_TC { \ + "SET_IGNITION_TIME_TC", \ + 1, \ + { { "timing", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_set_ignition_time_tc_t, timing) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_ignition_time_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timing [ms] Timing in [ms] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_ignition_time_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t timing) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN]; + _mav_put_uint32_t(buf, 0, timing); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN); +#else + mavlink_set_ignition_time_tc_t packet; + packet.timing = timing; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_IGNITION_TIME_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_CRC); +} + +/** + * @brief Pack a set_ignition_time_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timing [ms] Timing in [ms] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_ignition_time_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t timing) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN]; + _mav_put_uint32_t(buf, 0, timing); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN); +#else + mavlink_set_ignition_time_tc_t packet; + packet.timing = timing; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_IGNITION_TIME_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_CRC); +} + +/** + * @brief Encode a set_ignition_time_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_ignition_time_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_ignition_time_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_ignition_time_tc_t* set_ignition_time_tc) +{ + return mavlink_msg_set_ignition_time_tc_pack(system_id, component_id, msg, set_ignition_time_tc->timing); +} + +/** + * @brief Encode a set_ignition_time_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_ignition_time_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_ignition_time_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_ignition_time_tc_t* set_ignition_time_tc) +{ + return mavlink_msg_set_ignition_time_tc_pack_chan(system_id, component_id, chan, msg, set_ignition_time_tc->timing); +} + +/** + * @brief Send a set_ignition_time_tc message + * @param chan MAVLink channel to send the message + * + * @param timing [ms] Timing in [ms] + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_ignition_time_tc_send(mavlink_channel_t chan, uint32_t timing) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN]; + _mav_put_uint32_t(buf, 0, timing); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC, buf, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_CRC); +#else + mavlink_set_ignition_time_tc_t packet; + packet.timing = timing; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_CRC); +#endif +} + +/** + * @brief Send a set_ignition_time_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_ignition_time_tc_send_struct(mavlink_channel_t chan, const mavlink_set_ignition_time_tc_t* set_ignition_time_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_ignition_time_tc_send(chan, set_ignition_time_tc->timing); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC, (const char *)set_ignition_time_tc, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_ignition_time_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t timing) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, timing); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC, buf, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_CRC); +#else + mavlink_set_ignition_time_tc_t *packet = (mavlink_set_ignition_time_tc_t *)msgbuf; + packet->timing = timing; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC, (const char *)packet, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_IGNITION_TIME_TC UNPACKING + + +/** + * @brief Get field timing from set_ignition_time_tc message + * + * @return [ms] Timing in [ms] + */ +static inline uint32_t mavlink_msg_set_ignition_time_tc_get_timing(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Decode a set_ignition_time_tc message into a struct + * + * @param msg The message to decode + * @param set_ignition_time_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_ignition_time_tc_decode(const mavlink_message_t* msg, mavlink_set_ignition_time_tc_t* set_ignition_time_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_ignition_time_tc->timing = mavlink_msg_set_ignition_time_tc_get_timing(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN; + memset(set_ignition_time_tc, 0, MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_LEN); + memcpy(set_ignition_time_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_orientation_tc.h b/mavlink_lib/lyra/mavlink_msg_set_orientation_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..5169814cd4c7a7afbe6e204bf82fb2d049078fc7 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_orientation_tc.h @@ -0,0 +1,263 @@ +#pragma once +// MESSAGE SET_ORIENTATION_TC PACKING + +#define MAVLINK_MSG_ID_SET_ORIENTATION_TC 11 + + +typedef struct __mavlink_set_orientation_tc_t { + float yaw; /*< [deg] Yaw angle*/ + float pitch; /*< [deg] Pitch angle*/ + float roll; /*< [deg] Roll angle*/ +} mavlink_set_orientation_tc_t; + +#define MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN 12 +#define MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN 12 +#define MAVLINK_MSG_ID_11_LEN 12 +#define MAVLINK_MSG_ID_11_MIN_LEN 12 + +#define MAVLINK_MSG_ID_SET_ORIENTATION_TC_CRC 71 +#define MAVLINK_MSG_ID_11_CRC 71 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_ORIENTATION_TC { \ + 11, \ + "SET_ORIENTATION_TC", \ + 3, \ + { { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_orientation_tc_t, yaw) }, \ + { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_set_orientation_tc_t, pitch) }, \ + { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_set_orientation_tc_t, roll) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_ORIENTATION_TC { \ + "SET_ORIENTATION_TC", \ + 3, \ + { { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_orientation_tc_t, yaw) }, \ + { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_set_orientation_tc_t, pitch) }, \ + { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_set_orientation_tc_t, roll) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_orientation_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param yaw [deg] Yaw angle + * @param pitch [deg] Pitch angle + * @param roll [deg] Roll angle + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_orientation_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + float yaw, float pitch, float roll) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN]; + _mav_put_float(buf, 0, yaw); + _mav_put_float(buf, 4, pitch); + _mav_put_float(buf, 8, roll); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN); +#else + mavlink_set_orientation_tc_t packet; + packet.yaw = yaw; + packet.pitch = pitch; + packet.roll = roll; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_ORIENTATION_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_CRC); +} + +/** + * @brief Pack a set_orientation_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param yaw [deg] Yaw angle + * @param pitch [deg] Pitch angle + * @param roll [deg] Roll angle + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_orientation_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + float yaw,float pitch,float roll) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN]; + _mav_put_float(buf, 0, yaw); + _mav_put_float(buf, 4, pitch); + _mav_put_float(buf, 8, roll); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN); +#else + mavlink_set_orientation_tc_t packet; + packet.yaw = yaw; + packet.pitch = pitch; + packet.roll = roll; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_ORIENTATION_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_CRC); +} + +/** + * @brief Encode a set_orientation_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_orientation_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_orientation_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_orientation_tc_t* set_orientation_tc) +{ + return mavlink_msg_set_orientation_tc_pack(system_id, component_id, msg, set_orientation_tc->yaw, set_orientation_tc->pitch, set_orientation_tc->roll); +} + +/** + * @brief Encode a set_orientation_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_orientation_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_orientation_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_orientation_tc_t* set_orientation_tc) +{ + return mavlink_msg_set_orientation_tc_pack_chan(system_id, component_id, chan, msg, set_orientation_tc->yaw, set_orientation_tc->pitch, set_orientation_tc->roll); +} + +/** + * @brief Send a set_orientation_tc message + * @param chan MAVLink channel to send the message + * + * @param yaw [deg] Yaw angle + * @param pitch [deg] Pitch angle + * @param roll [deg] Roll angle + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_orientation_tc_send(mavlink_channel_t chan, float yaw, float pitch, float roll) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN]; + _mav_put_float(buf, 0, yaw); + _mav_put_float(buf, 4, pitch); + _mav_put_float(buf, 8, roll); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ORIENTATION_TC, buf, MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_CRC); +#else + mavlink_set_orientation_tc_t packet; + packet.yaw = yaw; + packet.pitch = pitch; + packet.roll = roll; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ORIENTATION_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_CRC); +#endif +} + +/** + * @brief Send a set_orientation_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_orientation_tc_send_struct(mavlink_channel_t chan, const mavlink_set_orientation_tc_t* set_orientation_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_orientation_tc_send(chan, set_orientation_tc->yaw, set_orientation_tc->pitch, set_orientation_tc->roll); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ORIENTATION_TC, (const char *)set_orientation_tc, MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_orientation_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, float yaw, float pitch, float roll) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_float(buf, 0, yaw); + _mav_put_float(buf, 4, pitch); + _mav_put_float(buf, 8, roll); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ORIENTATION_TC, buf, MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_CRC); +#else + mavlink_set_orientation_tc_t *packet = (mavlink_set_orientation_tc_t *)msgbuf; + packet->yaw = yaw; + packet->pitch = pitch; + packet->roll = roll; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ORIENTATION_TC, (const char *)packet, MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN, MAVLINK_MSG_ID_SET_ORIENTATION_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_ORIENTATION_TC UNPACKING + + +/** + * @brief Get field yaw from set_orientation_tc message + * + * @return [deg] Yaw angle + */ +static inline float mavlink_msg_set_orientation_tc_get_yaw(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 0); +} + +/** + * @brief Get field pitch from set_orientation_tc message + * + * @return [deg] Pitch angle + */ +static inline float mavlink_msg_set_orientation_tc_get_pitch(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 4); +} + +/** + * @brief Get field roll from set_orientation_tc message + * + * @return [deg] Roll angle + */ +static inline float mavlink_msg_set_orientation_tc_get_roll(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Decode a set_orientation_tc message into a struct + * + * @param msg The message to decode + * @param set_orientation_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_orientation_tc_decode(const mavlink_message_t* msg, mavlink_set_orientation_tc_t* set_orientation_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_orientation_tc->yaw = mavlink_msg_set_orientation_tc_get_yaw(msg); + set_orientation_tc->pitch = mavlink_msg_set_orientation_tc_get_pitch(msg); + set_orientation_tc->roll = mavlink_msg_set_orientation_tc_get_roll(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN; + memset(set_orientation_tc, 0, MAVLINK_MSG_ID_SET_ORIENTATION_TC_LEN); + memcpy(set_orientation_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_reference_altitude_tc.h b/mavlink_lib/lyra/mavlink_msg_set_reference_altitude_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..a291b0b8da0d1d60e7e30767ade22abc5f35402a --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_reference_altitude_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE SET_REFERENCE_ALTITUDE_TC PACKING + +#define MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC 9 + + +typedef struct __mavlink_set_reference_altitude_tc_t { + float ref_altitude; /*< [m] Reference altitude*/ +} mavlink_set_reference_altitude_tc_t; + +#define MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN 4 +#define MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN 4 +#define MAVLINK_MSG_ID_9_LEN 4 +#define MAVLINK_MSG_ID_9_MIN_LEN 4 + +#define MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_CRC 113 +#define MAVLINK_MSG_ID_9_CRC 113 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_REFERENCE_ALTITUDE_TC { \ + 9, \ + "SET_REFERENCE_ALTITUDE_TC", \ + 1, \ + { { "ref_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_reference_altitude_tc_t, ref_altitude) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_REFERENCE_ALTITUDE_TC { \ + "SET_REFERENCE_ALTITUDE_TC", \ + 1, \ + { { "ref_altitude", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_reference_altitude_tc_t, ref_altitude) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_reference_altitude_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param ref_altitude [m] Reference altitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_reference_altitude_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + float ref_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN]; + _mav_put_float(buf, 0, ref_altitude); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN); +#else + mavlink_set_reference_altitude_tc_t packet; + packet.ref_altitude = ref_altitude; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_CRC); +} + +/** + * @brief Pack a set_reference_altitude_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param ref_altitude [m] Reference altitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_reference_altitude_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + float ref_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN]; + _mav_put_float(buf, 0, ref_altitude); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN); +#else + mavlink_set_reference_altitude_tc_t packet; + packet.ref_altitude = ref_altitude; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_CRC); +} + +/** + * @brief Encode a set_reference_altitude_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_reference_altitude_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_reference_altitude_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_reference_altitude_tc_t* set_reference_altitude_tc) +{ + return mavlink_msg_set_reference_altitude_tc_pack(system_id, component_id, msg, set_reference_altitude_tc->ref_altitude); +} + +/** + * @brief Encode a set_reference_altitude_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_reference_altitude_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_reference_altitude_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_reference_altitude_tc_t* set_reference_altitude_tc) +{ + return mavlink_msg_set_reference_altitude_tc_pack_chan(system_id, component_id, chan, msg, set_reference_altitude_tc->ref_altitude); +} + +/** + * @brief Send a set_reference_altitude_tc message + * @param chan MAVLink channel to send the message + * + * @param ref_altitude [m] Reference altitude + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_reference_altitude_tc_send(mavlink_channel_t chan, float ref_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN]; + _mav_put_float(buf, 0, ref_altitude); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC, buf, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_CRC); +#else + mavlink_set_reference_altitude_tc_t packet; + packet.ref_altitude = ref_altitude; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_CRC); +#endif +} + +/** + * @brief Send a set_reference_altitude_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_reference_altitude_tc_send_struct(mavlink_channel_t chan, const mavlink_set_reference_altitude_tc_t* set_reference_altitude_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_reference_altitude_tc_send(chan, set_reference_altitude_tc->ref_altitude); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC, (const char *)set_reference_altitude_tc, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_reference_altitude_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, float ref_altitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_float(buf, 0, ref_altitude); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC, buf, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_CRC); +#else + mavlink_set_reference_altitude_tc_t *packet = (mavlink_set_reference_altitude_tc_t *)msgbuf; + packet->ref_altitude = ref_altitude; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC, (const char *)packet, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_REFERENCE_ALTITUDE_TC UNPACKING + + +/** + * @brief Get field ref_altitude from set_reference_altitude_tc message + * + * @return [m] Reference altitude + */ +static inline float mavlink_msg_set_reference_altitude_tc_get_ref_altitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 0); +} + +/** + * @brief Decode a set_reference_altitude_tc message into a struct + * + * @param msg The message to decode + * @param set_reference_altitude_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_reference_altitude_tc_decode(const mavlink_message_t* msg, mavlink_set_reference_altitude_tc_t* set_reference_altitude_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_reference_altitude_tc->ref_altitude = mavlink_msg_set_reference_altitude_tc_get_ref_altitude(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN; + memset(set_reference_altitude_tc, 0, MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_LEN); + memcpy(set_reference_altitude_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_reference_temperature_tc.h b/mavlink_lib/lyra/mavlink_msg_set_reference_temperature_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..5bb1c529477606617b93eca65726e9580259f832 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_reference_temperature_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE SET_REFERENCE_TEMPERATURE_TC PACKING + +#define MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC 10 + + +typedef struct __mavlink_set_reference_temperature_tc_t { + float ref_temp; /*< [degC] Reference temperature*/ +} mavlink_set_reference_temperature_tc_t; + +#define MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN 4 +#define MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN 4 +#define MAVLINK_MSG_ID_10_LEN 4 +#define MAVLINK_MSG_ID_10_MIN_LEN 4 + +#define MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_CRC 38 +#define MAVLINK_MSG_ID_10_CRC 38 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_REFERENCE_TEMPERATURE_TC { \ + 10, \ + "SET_REFERENCE_TEMPERATURE_TC", \ + 1, \ + { { "ref_temp", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_reference_temperature_tc_t, ref_temp) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_REFERENCE_TEMPERATURE_TC { \ + "SET_REFERENCE_TEMPERATURE_TC", \ + 1, \ + { { "ref_temp", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_reference_temperature_tc_t, ref_temp) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_reference_temperature_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param ref_temp [degC] Reference temperature + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_reference_temperature_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + float ref_temp) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN]; + _mav_put_float(buf, 0, ref_temp); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN); +#else + mavlink_set_reference_temperature_tc_t packet; + packet.ref_temp = ref_temp; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_CRC); +} + +/** + * @brief Pack a set_reference_temperature_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param ref_temp [degC] Reference temperature + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_reference_temperature_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + float ref_temp) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN]; + _mav_put_float(buf, 0, ref_temp); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN); +#else + mavlink_set_reference_temperature_tc_t packet; + packet.ref_temp = ref_temp; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_CRC); +} + +/** + * @brief Encode a set_reference_temperature_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_reference_temperature_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_reference_temperature_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_reference_temperature_tc_t* set_reference_temperature_tc) +{ + return mavlink_msg_set_reference_temperature_tc_pack(system_id, component_id, msg, set_reference_temperature_tc->ref_temp); +} + +/** + * @brief Encode a set_reference_temperature_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_reference_temperature_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_reference_temperature_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_reference_temperature_tc_t* set_reference_temperature_tc) +{ + return mavlink_msg_set_reference_temperature_tc_pack_chan(system_id, component_id, chan, msg, set_reference_temperature_tc->ref_temp); +} + +/** + * @brief Send a set_reference_temperature_tc message + * @param chan MAVLink channel to send the message + * + * @param ref_temp [degC] Reference temperature + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_reference_temperature_tc_send(mavlink_channel_t chan, float ref_temp) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN]; + _mav_put_float(buf, 0, ref_temp); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC, buf, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_CRC); +#else + mavlink_set_reference_temperature_tc_t packet; + packet.ref_temp = ref_temp; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_CRC); +#endif +} + +/** + * @brief Send a set_reference_temperature_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_reference_temperature_tc_send_struct(mavlink_channel_t chan, const mavlink_set_reference_temperature_tc_t* set_reference_temperature_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_reference_temperature_tc_send(chan, set_reference_temperature_tc->ref_temp); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC, (const char *)set_reference_temperature_tc, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_reference_temperature_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, float ref_temp) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_float(buf, 0, ref_temp); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC, buf, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_CRC); +#else + mavlink_set_reference_temperature_tc_t *packet = (mavlink_set_reference_temperature_tc_t *)msgbuf; + packet->ref_temp = ref_temp; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC, (const char *)packet, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_REFERENCE_TEMPERATURE_TC UNPACKING + + +/** + * @brief Get field ref_temp from set_reference_temperature_tc message + * + * @return [degC] Reference temperature + */ +static inline float mavlink_msg_set_reference_temperature_tc_get_ref_temp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 0); +} + +/** + * @brief Decode a set_reference_temperature_tc message into a struct + * + * @param msg The message to decode + * @param set_reference_temperature_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_reference_temperature_tc_decode(const mavlink_message_t* msg, mavlink_set_reference_temperature_tc_t* set_reference_temperature_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_reference_temperature_tc->ref_temp = mavlink_msg_set_reference_temperature_tc_get_ref_temp(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN; + memset(set_reference_temperature_tc, 0, MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_LEN); + memcpy(set_reference_temperature_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_servo_angle_tc.h b/mavlink_lib/lyra/mavlink_msg_set_servo_angle_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..74f2888721a7ed79d479df991d640deb064d50cc --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_servo_angle_tc.h @@ -0,0 +1,238 @@ +#pragma once +// MESSAGE SET_SERVO_ANGLE_TC PACKING + +#define MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC 6 + + +typedef struct __mavlink_set_servo_angle_tc_t { + float angle; /*< Servo angle in normalized value [0-1]*/ + uint8_t servo_id; /*< A member of the ServosList enum*/ +} mavlink_set_servo_angle_tc_t; + +#define MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN 5 +#define MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN 5 +#define MAVLINK_MSG_ID_6_LEN 5 +#define MAVLINK_MSG_ID_6_MIN_LEN 5 + +#define MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_CRC 215 +#define MAVLINK_MSG_ID_6_CRC 215 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_SERVO_ANGLE_TC { \ + 6, \ + "SET_SERVO_ANGLE_TC", \ + 2, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_set_servo_angle_tc_t, servo_id) }, \ + { "angle", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_servo_angle_tc_t, angle) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_SERVO_ANGLE_TC { \ + "SET_SERVO_ANGLE_TC", \ + 2, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_set_servo_angle_tc_t, servo_id) }, \ + { "angle", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_servo_angle_tc_t, angle) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_servo_angle_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param servo_id A member of the ServosList enum + * @param angle Servo angle in normalized value [0-1] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_servo_angle_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t servo_id, float angle) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN]; + _mav_put_float(buf, 0, angle); + _mav_put_uint8_t(buf, 4, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN); +#else + mavlink_set_servo_angle_tc_t packet; + packet.angle = angle; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_CRC); +} + +/** + * @brief Pack a set_servo_angle_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servo_id A member of the ServosList enum + * @param angle Servo angle in normalized value [0-1] + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_servo_angle_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t servo_id,float angle) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN]; + _mav_put_float(buf, 0, angle); + _mav_put_uint8_t(buf, 4, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN); +#else + mavlink_set_servo_angle_tc_t packet; + packet.angle = angle; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_CRC); +} + +/** + * @brief Encode a set_servo_angle_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_servo_angle_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_servo_angle_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_servo_angle_tc_t* set_servo_angle_tc) +{ + return mavlink_msg_set_servo_angle_tc_pack(system_id, component_id, msg, set_servo_angle_tc->servo_id, set_servo_angle_tc->angle); +} + +/** + * @brief Encode a set_servo_angle_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_servo_angle_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_servo_angle_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_servo_angle_tc_t* set_servo_angle_tc) +{ + return mavlink_msg_set_servo_angle_tc_pack_chan(system_id, component_id, chan, msg, set_servo_angle_tc->servo_id, set_servo_angle_tc->angle); +} + +/** + * @brief Send a set_servo_angle_tc message + * @param chan MAVLink channel to send the message + * + * @param servo_id A member of the ServosList enum + * @param angle Servo angle in normalized value [0-1] + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_servo_angle_tc_send(mavlink_channel_t chan, uint8_t servo_id, float angle) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN]; + _mav_put_float(buf, 0, angle); + _mav_put_uint8_t(buf, 4, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC, buf, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_CRC); +#else + mavlink_set_servo_angle_tc_t packet; + packet.angle = angle; + packet.servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_CRC); +#endif +} + +/** + * @brief Send a set_servo_angle_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_servo_angle_tc_send_struct(mavlink_channel_t chan, const mavlink_set_servo_angle_tc_t* set_servo_angle_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_servo_angle_tc_send(chan, set_servo_angle_tc->servo_id, set_servo_angle_tc->angle); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC, (const char *)set_servo_angle_tc, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_servo_angle_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t servo_id, float angle) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_float(buf, 0, angle); + _mav_put_uint8_t(buf, 4, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC, buf, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_CRC); +#else + mavlink_set_servo_angle_tc_t *packet = (mavlink_set_servo_angle_tc_t *)msgbuf; + packet->angle = angle; + packet->servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC, (const char *)packet, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_SERVO_ANGLE_TC UNPACKING + + +/** + * @brief Get field servo_id from set_servo_angle_tc message + * + * @return A member of the ServosList enum + */ +static inline uint8_t mavlink_msg_set_servo_angle_tc_get_servo_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 4); +} + +/** + * @brief Get field angle from set_servo_angle_tc message + * + * @return Servo angle in normalized value [0-1] + */ +static inline float mavlink_msg_set_servo_angle_tc_get_angle(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 0); +} + +/** + * @brief Decode a set_servo_angle_tc message into a struct + * + * @param msg The message to decode + * @param set_servo_angle_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_servo_angle_tc_decode(const mavlink_message_t* msg, mavlink_set_servo_angle_tc_t* set_servo_angle_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_servo_angle_tc->angle = mavlink_msg_set_servo_angle_tc_get_angle(msg); + set_servo_angle_tc->servo_id = mavlink_msg_set_servo_angle_tc_get_servo_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN; + memset(set_servo_angle_tc, 0, MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_LEN); + memcpy(set_servo_angle_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_target_coordinates_tc.h b/mavlink_lib/lyra/mavlink_msg_set_target_coordinates_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..40394b728f76ebb99dfb689a467c28474a457fee --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_target_coordinates_tc.h @@ -0,0 +1,238 @@ +#pragma once +// MESSAGE SET_TARGET_COORDINATES_TC PACKING + +#define MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC 15 + + +typedef struct __mavlink_set_target_coordinates_tc_t { + float latitude; /*< [deg] Latitude*/ + float longitude; /*< [deg] Longitude*/ +} mavlink_set_target_coordinates_tc_t; + +#define MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN 8 +#define MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN 8 +#define MAVLINK_MSG_ID_15_LEN 8 +#define MAVLINK_MSG_ID_15_MIN_LEN 8 + +#define MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_CRC 81 +#define MAVLINK_MSG_ID_15_CRC 81 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_TARGET_COORDINATES_TC { \ + 15, \ + "SET_TARGET_COORDINATES_TC", \ + 2, \ + { { "latitude", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_target_coordinates_tc_t, latitude) }, \ + { "longitude", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_set_target_coordinates_tc_t, longitude) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_TARGET_COORDINATES_TC { \ + "SET_TARGET_COORDINATES_TC", \ + 2, \ + { { "latitude", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_target_coordinates_tc_t, latitude) }, \ + { "longitude", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_set_target_coordinates_tc_t, longitude) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_target_coordinates_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param latitude [deg] Latitude + * @param longitude [deg] Longitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_target_coordinates_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + float latitude, float longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN]; + _mav_put_float(buf, 0, latitude); + _mav_put_float(buf, 4, longitude); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN); +#else + mavlink_set_target_coordinates_tc_t packet; + packet.latitude = latitude; + packet.longitude = longitude; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_CRC); +} + +/** + * @brief Pack a set_target_coordinates_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param latitude [deg] Latitude + * @param longitude [deg] Longitude + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_target_coordinates_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + float latitude,float longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN]; + _mav_put_float(buf, 0, latitude); + _mav_put_float(buf, 4, longitude); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN); +#else + mavlink_set_target_coordinates_tc_t packet; + packet.latitude = latitude; + packet.longitude = longitude; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_CRC); +} + +/** + * @brief Encode a set_target_coordinates_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_target_coordinates_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_target_coordinates_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_target_coordinates_tc_t* set_target_coordinates_tc) +{ + return mavlink_msg_set_target_coordinates_tc_pack(system_id, component_id, msg, set_target_coordinates_tc->latitude, set_target_coordinates_tc->longitude); +} + +/** + * @brief Encode a set_target_coordinates_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_target_coordinates_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_target_coordinates_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_target_coordinates_tc_t* set_target_coordinates_tc) +{ + return mavlink_msg_set_target_coordinates_tc_pack_chan(system_id, component_id, chan, msg, set_target_coordinates_tc->latitude, set_target_coordinates_tc->longitude); +} + +/** + * @brief Send a set_target_coordinates_tc message + * @param chan MAVLink channel to send the message + * + * @param latitude [deg] Latitude + * @param longitude [deg] Longitude + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_target_coordinates_tc_send(mavlink_channel_t chan, float latitude, float longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN]; + _mav_put_float(buf, 0, latitude); + _mav_put_float(buf, 4, longitude); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC, buf, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_CRC); +#else + mavlink_set_target_coordinates_tc_t packet; + packet.latitude = latitude; + packet.longitude = longitude; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_CRC); +#endif +} + +/** + * @brief Send a set_target_coordinates_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_target_coordinates_tc_send_struct(mavlink_channel_t chan, const mavlink_set_target_coordinates_tc_t* set_target_coordinates_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_target_coordinates_tc_send(chan, set_target_coordinates_tc->latitude, set_target_coordinates_tc->longitude); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC, (const char *)set_target_coordinates_tc, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_target_coordinates_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, float latitude, float longitude) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_float(buf, 0, latitude); + _mav_put_float(buf, 4, longitude); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC, buf, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_CRC); +#else + mavlink_set_target_coordinates_tc_t *packet = (mavlink_set_target_coordinates_tc_t *)msgbuf; + packet->latitude = latitude; + packet->longitude = longitude; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC, (const char *)packet, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_TARGET_COORDINATES_TC UNPACKING + + +/** + * @brief Get field latitude from set_target_coordinates_tc message + * + * @return [deg] Latitude + */ +static inline float mavlink_msg_set_target_coordinates_tc_get_latitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 0); +} + +/** + * @brief Get field longitude from set_target_coordinates_tc message + * + * @return [deg] Longitude + */ +static inline float mavlink_msg_set_target_coordinates_tc_get_longitude(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 4); +} + +/** + * @brief Decode a set_target_coordinates_tc message into a struct + * + * @param msg The message to decode + * @param set_target_coordinates_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_target_coordinates_tc_decode(const mavlink_message_t* msg, mavlink_set_target_coordinates_tc_t* set_target_coordinates_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_target_coordinates_tc->latitude = mavlink_msg_set_target_coordinates_tc_get_latitude(msg); + set_target_coordinates_tc->longitude = mavlink_msg_set_target_coordinates_tc_get_longitude(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN; + memset(set_target_coordinates_tc, 0, MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_LEN); + memcpy(set_target_coordinates_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_set_valve_maximum_aperture_tc.h b/mavlink_lib/lyra/mavlink_msg_set_valve_maximum_aperture_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..6c13b3e2c6ec3002dd7dbef75785ae68f89ab5aa --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_set_valve_maximum_aperture_tc.h @@ -0,0 +1,238 @@ +#pragma once +// MESSAGE SET_VALVE_MAXIMUM_APERTURE_TC PACKING + +#define MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC 18 + + +typedef struct __mavlink_set_valve_maximum_aperture_tc_t { + float maximum_aperture; /*< Maximum aperture*/ + uint8_t servo_id; /*< A member of the ServosList enum*/ +} mavlink_set_valve_maximum_aperture_tc_t; + +#define MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN 5 +#define MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN 5 +#define MAVLINK_MSG_ID_18_LEN 5 +#define MAVLINK_MSG_ID_18_MIN_LEN 5 + +#define MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_CRC 22 +#define MAVLINK_MSG_ID_18_CRC 22 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SET_VALVE_MAXIMUM_APERTURE_TC { \ + 18, \ + "SET_VALVE_MAXIMUM_APERTURE_TC", \ + 2, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_set_valve_maximum_aperture_tc_t, servo_id) }, \ + { "maximum_aperture", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_valve_maximum_aperture_tc_t, maximum_aperture) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SET_VALVE_MAXIMUM_APERTURE_TC { \ + "SET_VALVE_MAXIMUM_APERTURE_TC", \ + 2, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_set_valve_maximum_aperture_tc_t, servo_id) }, \ + { "maximum_aperture", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_set_valve_maximum_aperture_tc_t, maximum_aperture) }, \ + } \ +} +#endif + +/** + * @brief Pack a set_valve_maximum_aperture_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param servo_id A member of the ServosList enum + * @param maximum_aperture Maximum aperture + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_valve_maximum_aperture_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t servo_id, float maximum_aperture) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN]; + _mav_put_float(buf, 0, maximum_aperture); + _mav_put_uint8_t(buf, 4, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN); +#else + mavlink_set_valve_maximum_aperture_tc_t packet; + packet.maximum_aperture = maximum_aperture; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_CRC); +} + +/** + * @brief Pack a set_valve_maximum_aperture_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servo_id A member of the ServosList enum + * @param maximum_aperture Maximum aperture + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_set_valve_maximum_aperture_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t servo_id,float maximum_aperture) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN]; + _mav_put_float(buf, 0, maximum_aperture); + _mav_put_uint8_t(buf, 4, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN); +#else + mavlink_set_valve_maximum_aperture_tc_t packet; + packet.maximum_aperture = maximum_aperture; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_CRC); +} + +/** + * @brief Encode a set_valve_maximum_aperture_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param set_valve_maximum_aperture_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_valve_maximum_aperture_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_valve_maximum_aperture_tc_t* set_valve_maximum_aperture_tc) +{ + return mavlink_msg_set_valve_maximum_aperture_tc_pack(system_id, component_id, msg, set_valve_maximum_aperture_tc->servo_id, set_valve_maximum_aperture_tc->maximum_aperture); +} + +/** + * @brief Encode a set_valve_maximum_aperture_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param set_valve_maximum_aperture_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_set_valve_maximum_aperture_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_set_valve_maximum_aperture_tc_t* set_valve_maximum_aperture_tc) +{ + return mavlink_msg_set_valve_maximum_aperture_tc_pack_chan(system_id, component_id, chan, msg, set_valve_maximum_aperture_tc->servo_id, set_valve_maximum_aperture_tc->maximum_aperture); +} + +/** + * @brief Send a set_valve_maximum_aperture_tc message + * @param chan MAVLink channel to send the message + * + * @param servo_id A member of the ServosList enum + * @param maximum_aperture Maximum aperture + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_set_valve_maximum_aperture_tc_send(mavlink_channel_t chan, uint8_t servo_id, float maximum_aperture) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN]; + _mav_put_float(buf, 0, maximum_aperture); + _mav_put_uint8_t(buf, 4, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC, buf, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_CRC); +#else + mavlink_set_valve_maximum_aperture_tc_t packet; + packet.maximum_aperture = maximum_aperture; + packet.servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC, (const char *)&packet, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_CRC); +#endif +} + +/** + * @brief Send a set_valve_maximum_aperture_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_set_valve_maximum_aperture_tc_send_struct(mavlink_channel_t chan, const mavlink_set_valve_maximum_aperture_tc_t* set_valve_maximum_aperture_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_set_valve_maximum_aperture_tc_send(chan, set_valve_maximum_aperture_tc->servo_id, set_valve_maximum_aperture_tc->maximum_aperture); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC, (const char *)set_valve_maximum_aperture_tc, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_set_valve_maximum_aperture_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t servo_id, float maximum_aperture) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_float(buf, 0, maximum_aperture); + _mav_put_uint8_t(buf, 4, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC, buf, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_CRC); +#else + mavlink_set_valve_maximum_aperture_tc_t *packet = (mavlink_set_valve_maximum_aperture_tc_t *)msgbuf; + packet->maximum_aperture = maximum_aperture; + packet->servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC, (const char *)packet, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SET_VALVE_MAXIMUM_APERTURE_TC UNPACKING + + +/** + * @brief Get field servo_id from set_valve_maximum_aperture_tc message + * + * @return A member of the ServosList enum + */ +static inline uint8_t mavlink_msg_set_valve_maximum_aperture_tc_get_servo_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 4); +} + +/** + * @brief Get field maximum_aperture from set_valve_maximum_aperture_tc message + * + * @return Maximum aperture + */ +static inline float mavlink_msg_set_valve_maximum_aperture_tc_get_maximum_aperture(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 0); +} + +/** + * @brief Decode a set_valve_maximum_aperture_tc message into a struct + * + * @param msg The message to decode + * @param set_valve_maximum_aperture_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_set_valve_maximum_aperture_tc_decode(const mavlink_message_t* msg, mavlink_set_valve_maximum_aperture_tc_t* set_valve_maximum_aperture_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + set_valve_maximum_aperture_tc->maximum_aperture = mavlink_msg_set_valve_maximum_aperture_tc_get_maximum_aperture(msg); + set_valve_maximum_aperture_tc->servo_id = mavlink_msg_set_valve_maximum_aperture_tc_get_servo_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN? msg->len : MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN; + memset(set_valve_maximum_aperture_tc, 0, MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_LEN); + memcpy(set_valve_maximum_aperture_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_sys_tm.h b/mavlink_lib/lyra/mavlink_msg_sys_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..460e076f05dcf8b83836d80a887f0c77b074c517 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_sys_tm.h @@ -0,0 +1,363 @@ +#pragma once +// MESSAGE SYS_TM PACKING + +#define MAVLINK_MSG_ID_SYS_TM 200 + + +typedef struct __mavlink_sys_tm_t { + uint64_t timestamp; /*< [us] Timestamp*/ + uint8_t logger; /*< True if the logger started correctly*/ + uint8_t event_broker; /*< True if the event broker started correctly*/ + uint8_t radio; /*< True if the radio started correctly*/ + uint8_t pin_observer; /*< True if the pin observer started correctly*/ + uint8_t sensors; /*< True if the sensors started correctly*/ + uint8_t board_scheduler; /*< True if the board scheduler is running*/ +} mavlink_sys_tm_t; + +#define MAVLINK_MSG_ID_SYS_TM_LEN 14 +#define MAVLINK_MSG_ID_SYS_TM_MIN_LEN 14 +#define MAVLINK_MSG_ID_200_LEN 14 +#define MAVLINK_MSG_ID_200_MIN_LEN 14 + +#define MAVLINK_MSG_ID_SYS_TM_CRC 183 +#define MAVLINK_MSG_ID_200_CRC 183 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SYS_TM { \ + 200, \ + "SYS_TM", \ + 7, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sys_tm_t, timestamp) }, \ + { "logger", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_sys_tm_t, logger) }, \ + { "event_broker", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_sys_tm_t, event_broker) }, \ + { "radio", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_sys_tm_t, radio) }, \ + { "pin_observer", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_sys_tm_t, pin_observer) }, \ + { "sensors", NULL, MAVLINK_TYPE_UINT8_T, 0, 12, offsetof(mavlink_sys_tm_t, sensors) }, \ + { "board_scheduler", NULL, MAVLINK_TYPE_UINT8_T, 0, 13, offsetof(mavlink_sys_tm_t, board_scheduler) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SYS_TM { \ + "SYS_TM", \ + 7, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sys_tm_t, timestamp) }, \ + { "logger", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_sys_tm_t, logger) }, \ + { "event_broker", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_sys_tm_t, event_broker) }, \ + { "radio", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_sys_tm_t, radio) }, \ + { "pin_observer", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_sys_tm_t, pin_observer) }, \ + { "sensors", NULL, MAVLINK_TYPE_UINT8_T, 0, 12, offsetof(mavlink_sys_tm_t, sensors) }, \ + { "board_scheduler", NULL, MAVLINK_TYPE_UINT8_T, 0, 13, offsetof(mavlink_sys_tm_t, board_scheduler) }, \ + } \ +} +#endif + +/** + * @brief Pack a sys_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] Timestamp + * @param logger True if the logger started correctly + * @param event_broker True if the event broker started correctly + * @param radio True if the radio started correctly + * @param pin_observer True if the pin observer started correctly + * @param sensors True if the sensors started correctly + * @param board_scheduler True if the board scheduler is running + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_sys_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t logger, uint8_t event_broker, uint8_t radio, uint8_t pin_observer, uint8_t sensors, uint8_t board_scheduler) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SYS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint8_t(buf, 8, logger); + _mav_put_uint8_t(buf, 9, event_broker); + _mav_put_uint8_t(buf, 10, radio); + _mav_put_uint8_t(buf, 11, pin_observer); + _mav_put_uint8_t(buf, 12, sensors); + _mav_put_uint8_t(buf, 13, board_scheduler); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SYS_TM_LEN); +#else + mavlink_sys_tm_t packet; + packet.timestamp = timestamp; + packet.logger = logger; + packet.event_broker = event_broker; + packet.radio = radio; + packet.pin_observer = pin_observer; + packet.sensors = sensors; + packet.board_scheduler = board_scheduler; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SYS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SYS_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SYS_TM_MIN_LEN, MAVLINK_MSG_ID_SYS_TM_LEN, MAVLINK_MSG_ID_SYS_TM_CRC); +} + +/** + * @brief Pack a sys_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] Timestamp + * @param logger True if the logger started correctly + * @param event_broker True if the event broker started correctly + * @param radio True if the radio started correctly + * @param pin_observer True if the pin observer started correctly + * @param sensors True if the sensors started correctly + * @param board_scheduler True if the board scheduler is running + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_sys_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t logger,uint8_t event_broker,uint8_t radio,uint8_t pin_observer,uint8_t sensors,uint8_t board_scheduler) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SYS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint8_t(buf, 8, logger); + _mav_put_uint8_t(buf, 9, event_broker); + _mav_put_uint8_t(buf, 10, radio); + _mav_put_uint8_t(buf, 11, pin_observer); + _mav_put_uint8_t(buf, 12, sensors); + _mav_put_uint8_t(buf, 13, board_scheduler); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SYS_TM_LEN); +#else + mavlink_sys_tm_t packet; + packet.timestamp = timestamp; + packet.logger = logger; + packet.event_broker = event_broker; + packet.radio = radio; + packet.pin_observer = pin_observer; + packet.sensors = sensors; + packet.board_scheduler = board_scheduler; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SYS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SYS_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SYS_TM_MIN_LEN, MAVLINK_MSG_ID_SYS_TM_LEN, MAVLINK_MSG_ID_SYS_TM_CRC); +} + +/** + * @brief Encode a sys_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param sys_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_sys_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sys_tm_t* sys_tm) +{ + return mavlink_msg_sys_tm_pack(system_id, component_id, msg, sys_tm->timestamp, sys_tm->logger, sys_tm->event_broker, sys_tm->radio, sys_tm->pin_observer, sys_tm->sensors, sys_tm->board_scheduler); +} + +/** + * @brief Encode a sys_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param sys_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_sys_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_sys_tm_t* sys_tm) +{ + return mavlink_msg_sys_tm_pack_chan(system_id, component_id, chan, msg, sys_tm->timestamp, sys_tm->logger, sys_tm->event_broker, sys_tm->radio, sys_tm->pin_observer, sys_tm->sensors, sys_tm->board_scheduler); +} + +/** + * @brief Send a sys_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] Timestamp + * @param logger True if the logger started correctly + * @param event_broker True if the event broker started correctly + * @param radio True if the radio started correctly + * @param pin_observer True if the pin observer started correctly + * @param sensors True if the sensors started correctly + * @param board_scheduler True if the board scheduler is running + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_sys_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t logger, uint8_t event_broker, uint8_t radio, uint8_t pin_observer, uint8_t sensors, uint8_t board_scheduler) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SYS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint8_t(buf, 8, logger); + _mav_put_uint8_t(buf, 9, event_broker); + _mav_put_uint8_t(buf, 10, radio); + _mav_put_uint8_t(buf, 11, pin_observer); + _mav_put_uint8_t(buf, 12, sensors); + _mav_put_uint8_t(buf, 13, board_scheduler); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYS_TM, buf, MAVLINK_MSG_ID_SYS_TM_MIN_LEN, MAVLINK_MSG_ID_SYS_TM_LEN, MAVLINK_MSG_ID_SYS_TM_CRC); +#else + mavlink_sys_tm_t packet; + packet.timestamp = timestamp; + packet.logger = logger; + packet.event_broker = event_broker; + packet.radio = radio; + packet.pin_observer = pin_observer; + packet.sensors = sensors; + packet.board_scheduler = board_scheduler; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYS_TM, (const char *)&packet, MAVLINK_MSG_ID_SYS_TM_MIN_LEN, MAVLINK_MSG_ID_SYS_TM_LEN, MAVLINK_MSG_ID_SYS_TM_CRC); +#endif +} + +/** + * @brief Send a sys_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_sys_tm_send_struct(mavlink_channel_t chan, const mavlink_sys_tm_t* sys_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_sys_tm_send(chan, sys_tm->timestamp, sys_tm->logger, sys_tm->event_broker, sys_tm->radio, sys_tm->pin_observer, sys_tm->sensors, sys_tm->board_scheduler); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYS_TM, (const char *)sys_tm, MAVLINK_MSG_ID_SYS_TM_MIN_LEN, MAVLINK_MSG_ID_SYS_TM_LEN, MAVLINK_MSG_ID_SYS_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SYS_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_sys_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t logger, uint8_t event_broker, uint8_t radio, uint8_t pin_observer, uint8_t sensors, uint8_t board_scheduler) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_uint8_t(buf, 8, logger); + _mav_put_uint8_t(buf, 9, event_broker); + _mav_put_uint8_t(buf, 10, radio); + _mav_put_uint8_t(buf, 11, pin_observer); + _mav_put_uint8_t(buf, 12, sensors); + _mav_put_uint8_t(buf, 13, board_scheduler); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYS_TM, buf, MAVLINK_MSG_ID_SYS_TM_MIN_LEN, MAVLINK_MSG_ID_SYS_TM_LEN, MAVLINK_MSG_ID_SYS_TM_CRC); +#else + mavlink_sys_tm_t *packet = (mavlink_sys_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->logger = logger; + packet->event_broker = event_broker; + packet->radio = radio; + packet->pin_observer = pin_observer; + packet->sensors = sensors; + packet->board_scheduler = board_scheduler; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYS_TM, (const char *)packet, MAVLINK_MSG_ID_SYS_TM_MIN_LEN, MAVLINK_MSG_ID_SYS_TM_LEN, MAVLINK_MSG_ID_SYS_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SYS_TM UNPACKING + + +/** + * @brief Get field timestamp from sys_tm message + * + * @return [us] Timestamp + */ +static inline uint64_t mavlink_msg_sys_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field logger from sys_tm message + * + * @return True if the logger started correctly + */ +static inline uint8_t mavlink_msg_sys_tm_get_logger(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 8); +} + +/** + * @brief Get field event_broker from sys_tm message + * + * @return True if the event broker started correctly + */ +static inline uint8_t mavlink_msg_sys_tm_get_event_broker(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 9); +} + +/** + * @brief Get field radio from sys_tm message + * + * @return True if the radio started correctly + */ +static inline uint8_t mavlink_msg_sys_tm_get_radio(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 10); +} + +/** + * @brief Get field pin_observer from sys_tm message + * + * @return True if the pin observer started correctly + */ +static inline uint8_t mavlink_msg_sys_tm_get_pin_observer(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 11); +} + +/** + * @brief Get field sensors from sys_tm message + * + * @return True if the sensors started correctly + */ +static inline uint8_t mavlink_msg_sys_tm_get_sensors(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 12); +} + +/** + * @brief Get field board_scheduler from sys_tm message + * + * @return True if the board scheduler is running + */ +static inline uint8_t mavlink_msg_sys_tm_get_board_scheduler(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 13); +} + +/** + * @brief Decode a sys_tm message into a struct + * + * @param msg The message to decode + * @param sys_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_sys_tm_decode(const mavlink_message_t* msg, mavlink_sys_tm_t* sys_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + sys_tm->timestamp = mavlink_msg_sys_tm_get_timestamp(msg); + sys_tm->logger = mavlink_msg_sys_tm_get_logger(msg); + sys_tm->event_broker = mavlink_msg_sys_tm_get_event_broker(msg); + sys_tm->radio = mavlink_msg_sys_tm_get_radio(msg); + sys_tm->pin_observer = mavlink_msg_sys_tm_get_pin_observer(msg); + sys_tm->sensors = mavlink_msg_sys_tm_get_sensors(msg); + sys_tm->board_scheduler = mavlink_msg_sys_tm_get_board_scheduler(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SYS_TM_LEN? msg->len : MAVLINK_MSG_ID_SYS_TM_LEN; + memset(sys_tm, 0, MAVLINK_MSG_ID_SYS_TM_LEN); + memcpy(sys_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_system_tm_request_tc.h b/mavlink_lib/lyra/mavlink_msg_system_tm_request_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..de5a083eed2404c27df5ad34524fcac401fe3b6f --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_system_tm_request_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE SYSTEM_TM_REQUEST_TC PACKING + +#define MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC 3 + + +typedef struct __mavlink_system_tm_request_tc_t { + uint8_t tm_id; /*< A member of the SystemTMList enum*/ +} mavlink_system_tm_request_tc_t; + +#define MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN 1 +#define MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN 1 +#define MAVLINK_MSG_ID_3_LEN 1 +#define MAVLINK_MSG_ID_3_MIN_LEN 1 + +#define MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_CRC 165 +#define MAVLINK_MSG_ID_3_CRC 165 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SYSTEM_TM_REQUEST_TC { \ + 3, \ + "SYSTEM_TM_REQUEST_TC", \ + 1, \ + { { "tm_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_system_tm_request_tc_t, tm_id) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SYSTEM_TM_REQUEST_TC { \ + "SYSTEM_TM_REQUEST_TC", \ + 1, \ + { { "tm_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_system_tm_request_tc_t, tm_id) }, \ + } \ +} +#endif + +/** + * @brief Pack a system_tm_request_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param tm_id A member of the SystemTMList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_system_tm_request_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t tm_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN]; + _mav_put_uint8_t(buf, 0, tm_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN); +#else + mavlink_system_tm_request_tc_t packet; + packet.tm_id = tm_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_CRC); +} + +/** + * @brief Pack a system_tm_request_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param tm_id A member of the SystemTMList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_system_tm_request_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t tm_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN]; + _mav_put_uint8_t(buf, 0, tm_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN); +#else + mavlink_system_tm_request_tc_t packet; + packet.tm_id = tm_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_CRC); +} + +/** + * @brief Encode a system_tm_request_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param system_tm_request_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_system_tm_request_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_system_tm_request_tc_t* system_tm_request_tc) +{ + return mavlink_msg_system_tm_request_tc_pack(system_id, component_id, msg, system_tm_request_tc->tm_id); +} + +/** + * @brief Encode a system_tm_request_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param system_tm_request_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_system_tm_request_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_system_tm_request_tc_t* system_tm_request_tc) +{ + return mavlink_msg_system_tm_request_tc_pack_chan(system_id, component_id, chan, msg, system_tm_request_tc->tm_id); +} + +/** + * @brief Send a system_tm_request_tc message + * @param chan MAVLink channel to send the message + * + * @param tm_id A member of the SystemTMList enum + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_system_tm_request_tc_send(mavlink_channel_t chan, uint8_t tm_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN]; + _mav_put_uint8_t(buf, 0, tm_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC, buf, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_CRC); +#else + mavlink_system_tm_request_tc_t packet; + packet.tm_id = tm_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC, (const char *)&packet, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_CRC); +#endif +} + +/** + * @brief Send a system_tm_request_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_system_tm_request_tc_send_struct(mavlink_channel_t chan, const mavlink_system_tm_request_tc_t* system_tm_request_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_system_tm_request_tc_send(chan, system_tm_request_tc->tm_id); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC, (const char *)system_tm_request_tc, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_system_tm_request_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t tm_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, tm_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC, buf, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_CRC); +#else + mavlink_system_tm_request_tc_t *packet = (mavlink_system_tm_request_tc_t *)msgbuf; + packet->tm_id = tm_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC, (const char *)packet, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SYSTEM_TM_REQUEST_TC UNPACKING + + +/** + * @brief Get field tm_id from system_tm_request_tc message + * + * @return A member of the SystemTMList enum + */ +static inline uint8_t mavlink_msg_system_tm_request_tc_get_tm_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Decode a system_tm_request_tc message into a struct + * + * @param msg The message to decode + * @param system_tm_request_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_system_tm_request_tc_decode(const mavlink_message_t* msg, mavlink_system_tm_request_tc_t* system_tm_request_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + system_tm_request_tc->tm_id = mavlink_msg_system_tm_request_tc_get_tm_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN? msg->len : MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN; + memset(system_tm_request_tc, 0, MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_LEN); + memcpy(system_tm_request_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_task_stats_tm.h b/mavlink_lib/lyra/mavlink_msg_task_stats_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..81727059a4f8f5ed68fc83870afb0b99ab064bba --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_task_stats_tm.h @@ -0,0 +1,363 @@ +#pragma once +// MESSAGE TASK_STATS_TM PACKING + +#define MAVLINK_MSG_ID_TASK_STATS_TM 204 + + +typedef struct __mavlink_task_stats_tm_t { + uint64_t timestamp; /*< [us] When was this logged */ + float task_min; /*< Task min period*/ + float task_max; /*< Task max period*/ + float task_mean; /*< Task mean period*/ + float task_stddev; /*< Task period std deviation*/ + uint16_t task_period; /*< [ms] Period of the task*/ + uint8_t task_id; /*< Task ID*/ +} mavlink_task_stats_tm_t; + +#define MAVLINK_MSG_ID_TASK_STATS_TM_LEN 27 +#define MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN 27 +#define MAVLINK_MSG_ID_204_LEN 27 +#define MAVLINK_MSG_ID_204_MIN_LEN 27 + +#define MAVLINK_MSG_ID_TASK_STATS_TM_CRC 133 +#define MAVLINK_MSG_ID_204_CRC 133 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_TASK_STATS_TM { \ + 204, \ + "TASK_STATS_TM", \ + 7, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_task_stats_tm_t, timestamp) }, \ + { "task_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_task_stats_tm_t, task_id) }, \ + { "task_period", NULL, MAVLINK_TYPE_UINT16_T, 0, 24, offsetof(mavlink_task_stats_tm_t, task_period) }, \ + { "task_min", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_task_stats_tm_t, task_min) }, \ + { "task_max", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_task_stats_tm_t, task_max) }, \ + { "task_mean", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_task_stats_tm_t, task_mean) }, \ + { "task_stddev", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_task_stats_tm_t, task_stddev) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_TASK_STATS_TM { \ + "TASK_STATS_TM", \ + 7, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_task_stats_tm_t, timestamp) }, \ + { "task_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_task_stats_tm_t, task_id) }, \ + { "task_period", NULL, MAVLINK_TYPE_UINT16_T, 0, 24, offsetof(mavlink_task_stats_tm_t, task_period) }, \ + { "task_min", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_task_stats_tm_t, task_min) }, \ + { "task_max", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_task_stats_tm_t, task_max) }, \ + { "task_mean", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_task_stats_tm_t, task_mean) }, \ + { "task_stddev", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_task_stats_tm_t, task_stddev) }, \ + } \ +} +#endif + +/** + * @brief Pack a task_stats_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param task_id Task ID + * @param task_period [ms] Period of the task + * @param task_min Task min period + * @param task_max Task max period + * @param task_mean Task mean period + * @param task_stddev Task period std deviation + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_task_stats_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, uint8_t task_id, uint16_t task_period, float task_min, float task_max, float task_mean, float task_stddev) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TASK_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, task_min); + _mav_put_float(buf, 12, task_max); + _mav_put_float(buf, 16, task_mean); + _mav_put_float(buf, 20, task_stddev); + _mav_put_uint16_t(buf, 24, task_period); + _mav_put_uint8_t(buf, 26, task_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TASK_STATS_TM_LEN); +#else + mavlink_task_stats_tm_t packet; + packet.timestamp = timestamp; + packet.task_min = task_min; + packet.task_max = task_max; + packet.task_mean = task_mean; + packet.task_stddev = task_stddev; + packet.task_period = task_period; + packet.task_id = task_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TASK_STATS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_TASK_STATS_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_CRC); +} + +/** + * @brief Pack a task_stats_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param task_id Task ID + * @param task_period [ms] Period of the task + * @param task_min Task min period + * @param task_max Task max period + * @param task_mean Task mean period + * @param task_stddev Task period std deviation + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_task_stats_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,uint8_t task_id,uint16_t task_period,float task_min,float task_max,float task_mean,float task_stddev) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TASK_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, task_min); + _mav_put_float(buf, 12, task_max); + _mav_put_float(buf, 16, task_mean); + _mav_put_float(buf, 20, task_stddev); + _mav_put_uint16_t(buf, 24, task_period); + _mav_put_uint8_t(buf, 26, task_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TASK_STATS_TM_LEN); +#else + mavlink_task_stats_tm_t packet; + packet.timestamp = timestamp; + packet.task_min = task_min; + packet.task_max = task_max; + packet.task_mean = task_mean; + packet.task_stddev = task_stddev; + packet.task_period = task_period; + packet.task_id = task_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TASK_STATS_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_TASK_STATS_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_CRC); +} + +/** + * @brief Encode a task_stats_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param task_stats_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_task_stats_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_task_stats_tm_t* task_stats_tm) +{ + return mavlink_msg_task_stats_tm_pack(system_id, component_id, msg, task_stats_tm->timestamp, task_stats_tm->task_id, task_stats_tm->task_period, task_stats_tm->task_min, task_stats_tm->task_max, task_stats_tm->task_mean, task_stats_tm->task_stddev); +} + +/** + * @brief Encode a task_stats_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param task_stats_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_task_stats_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_task_stats_tm_t* task_stats_tm) +{ + return mavlink_msg_task_stats_tm_pack_chan(system_id, component_id, chan, msg, task_stats_tm->timestamp, task_stats_tm->task_id, task_stats_tm->task_period, task_stats_tm->task_min, task_stats_tm->task_max, task_stats_tm->task_mean, task_stats_tm->task_stddev); +} + +/** + * @brief Send a task_stats_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param task_id Task ID + * @param task_period [ms] Period of the task + * @param task_min Task min period + * @param task_max Task max period + * @param task_mean Task mean period + * @param task_stddev Task period std deviation + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_task_stats_tm_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t task_id, uint16_t task_period, float task_min, float task_max, float task_mean, float task_stddev) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TASK_STATS_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, task_min); + _mav_put_float(buf, 12, task_max); + _mav_put_float(buf, 16, task_mean); + _mav_put_float(buf, 20, task_stddev); + _mav_put_uint16_t(buf, 24, task_period); + _mav_put_uint8_t(buf, 26, task_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TASK_STATS_TM, buf, MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_CRC); +#else + mavlink_task_stats_tm_t packet; + packet.timestamp = timestamp; + packet.task_min = task_min; + packet.task_max = task_max; + packet.task_mean = task_mean; + packet.task_stddev = task_stddev; + packet.task_period = task_period; + packet.task_id = task_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TASK_STATS_TM, (const char *)&packet, MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_CRC); +#endif +} + +/** + * @brief Send a task_stats_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_task_stats_tm_send_struct(mavlink_channel_t chan, const mavlink_task_stats_tm_t* task_stats_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_task_stats_tm_send(chan, task_stats_tm->timestamp, task_stats_tm->task_id, task_stats_tm->task_period, task_stats_tm->task_min, task_stats_tm->task_max, task_stats_tm->task_mean, task_stats_tm->task_stddev); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TASK_STATS_TM, (const char *)task_stats_tm, MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_TASK_STATS_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_task_stats_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t task_id, uint16_t task_period, float task_min, float task_max, float task_mean, float task_stddev) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, task_min); + _mav_put_float(buf, 12, task_max); + _mav_put_float(buf, 16, task_mean); + _mav_put_float(buf, 20, task_stddev); + _mav_put_uint16_t(buf, 24, task_period); + _mav_put_uint8_t(buf, 26, task_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TASK_STATS_TM, buf, MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_CRC); +#else + mavlink_task_stats_tm_t *packet = (mavlink_task_stats_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->task_min = task_min; + packet->task_max = task_max; + packet->task_mean = task_mean; + packet->task_stddev = task_stddev; + packet->task_period = task_period; + packet->task_id = task_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TASK_STATS_TM, (const char *)packet, MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_LEN, MAVLINK_MSG_ID_TASK_STATS_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE TASK_STATS_TM UNPACKING + + +/** + * @brief Get field timestamp from task_stats_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_task_stats_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field task_id from task_stats_tm message + * + * @return Task ID + */ +static inline uint8_t mavlink_msg_task_stats_tm_get_task_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 26); +} + +/** + * @brief Get field task_period from task_stats_tm message + * + * @return [ms] Period of the task + */ +static inline uint16_t mavlink_msg_task_stats_tm_get_task_period(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint16_t(msg, 24); +} + +/** + * @brief Get field task_min from task_stats_tm message + * + * @return Task min period + */ +static inline float mavlink_msg_task_stats_tm_get_task_min(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field task_max from task_stats_tm message + * + * @return Task max period + */ +static inline float mavlink_msg_task_stats_tm_get_task_max(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field task_mean from task_stats_tm message + * + * @return Task mean period + */ +static inline float mavlink_msg_task_stats_tm_get_task_mean(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field task_stddev from task_stats_tm message + * + * @return Task period std deviation + */ +static inline float mavlink_msg_task_stats_tm_get_task_stddev(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Decode a task_stats_tm message into a struct + * + * @param msg The message to decode + * @param task_stats_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_task_stats_tm_decode(const mavlink_message_t* msg, mavlink_task_stats_tm_t* task_stats_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + task_stats_tm->timestamp = mavlink_msg_task_stats_tm_get_timestamp(msg); + task_stats_tm->task_min = mavlink_msg_task_stats_tm_get_task_min(msg); + task_stats_tm->task_max = mavlink_msg_task_stats_tm_get_task_max(msg); + task_stats_tm->task_mean = mavlink_msg_task_stats_tm_get_task_mean(msg); + task_stats_tm->task_stddev = mavlink_msg_task_stats_tm_get_task_stddev(msg); + task_stats_tm->task_period = mavlink_msg_task_stats_tm_get_task_period(msg); + task_stats_tm->task_id = mavlink_msg_task_stats_tm_get_task_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_TASK_STATS_TM_LEN? msg->len : MAVLINK_MSG_ID_TASK_STATS_TM_LEN; + memset(task_stats_tm, 0, MAVLINK_MSG_ID_TASK_STATS_TM_LEN); + memcpy(task_stats_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_temp_tm.h b/mavlink_lib/lyra/mavlink_msg_temp_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..1334d436975a961e918b50ed4b8d04f058faab3f --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_temp_tm.h @@ -0,0 +1,255 @@ +#pragma once +// MESSAGE TEMP_TM PACKING + +#define MAVLINK_MSG_ID_TEMP_TM 108 + + +typedef struct __mavlink_temp_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float temperature; /*< [deg] Temperature*/ + char sensor_name[20]; /*< Sensor name*/ +} mavlink_temp_tm_t; + +#define MAVLINK_MSG_ID_TEMP_TM_LEN 32 +#define MAVLINK_MSG_ID_TEMP_TM_MIN_LEN 32 +#define MAVLINK_MSG_ID_108_LEN 32 +#define MAVLINK_MSG_ID_108_MIN_LEN 32 + +#define MAVLINK_MSG_ID_TEMP_TM_CRC 140 +#define MAVLINK_MSG_ID_108_CRC 140 + +#define MAVLINK_MSG_TEMP_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_TEMP_TM { \ + 108, \ + "TEMP_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_temp_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_temp_tm_t, sensor_name) }, \ + { "temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_temp_tm_t, temperature) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_TEMP_TM { \ + "TEMP_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_temp_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_temp_tm_t, sensor_name) }, \ + { "temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_temp_tm_t, temperature) }, \ + } \ +} +#endif + +/** + * @brief Pack a temp_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param temperature [deg] Temperature + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_temp_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, const char *sensor_name, float temperature) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TEMP_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, temperature); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TEMP_TM_LEN); +#else + mavlink_temp_tm_t packet; + packet.timestamp = timestamp; + packet.temperature = temperature; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TEMP_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_TEMP_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_TEMP_TM_MIN_LEN, MAVLINK_MSG_ID_TEMP_TM_LEN, MAVLINK_MSG_ID_TEMP_TM_CRC); +} + +/** + * @brief Pack a temp_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param temperature [deg] Temperature + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_temp_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,const char *sensor_name,float temperature) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TEMP_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, temperature); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TEMP_TM_LEN); +#else + mavlink_temp_tm_t packet; + packet.timestamp = timestamp; + packet.temperature = temperature; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TEMP_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_TEMP_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_TEMP_TM_MIN_LEN, MAVLINK_MSG_ID_TEMP_TM_LEN, MAVLINK_MSG_ID_TEMP_TM_CRC); +} + +/** + * @brief Encode a temp_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param temp_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_temp_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_temp_tm_t* temp_tm) +{ + return mavlink_msg_temp_tm_pack(system_id, component_id, msg, temp_tm->timestamp, temp_tm->sensor_name, temp_tm->temperature); +} + +/** + * @brief Encode a temp_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param temp_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_temp_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_temp_tm_t* temp_tm) +{ + return mavlink_msg_temp_tm_pack_chan(system_id, component_id, chan, msg, temp_tm->timestamp, temp_tm->sensor_name, temp_tm->temperature); +} + +/** + * @brief Send a temp_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param temperature [deg] Temperature + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_temp_tm_send(mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float temperature) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TEMP_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, temperature); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TEMP_TM, buf, MAVLINK_MSG_ID_TEMP_TM_MIN_LEN, MAVLINK_MSG_ID_TEMP_TM_LEN, MAVLINK_MSG_ID_TEMP_TM_CRC); +#else + mavlink_temp_tm_t packet; + packet.timestamp = timestamp; + packet.temperature = temperature; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TEMP_TM, (const char *)&packet, MAVLINK_MSG_ID_TEMP_TM_MIN_LEN, MAVLINK_MSG_ID_TEMP_TM_LEN, MAVLINK_MSG_ID_TEMP_TM_CRC); +#endif +} + +/** + * @brief Send a temp_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_temp_tm_send_struct(mavlink_channel_t chan, const mavlink_temp_tm_t* temp_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_temp_tm_send(chan, temp_tm->timestamp, temp_tm->sensor_name, temp_tm->temperature); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TEMP_TM, (const char *)temp_tm, MAVLINK_MSG_ID_TEMP_TM_MIN_LEN, MAVLINK_MSG_ID_TEMP_TM_LEN, MAVLINK_MSG_ID_TEMP_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_TEMP_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_temp_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float temperature) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, temperature); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TEMP_TM, buf, MAVLINK_MSG_ID_TEMP_TM_MIN_LEN, MAVLINK_MSG_ID_TEMP_TM_LEN, MAVLINK_MSG_ID_TEMP_TM_CRC); +#else + mavlink_temp_tm_t *packet = (mavlink_temp_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->temperature = temperature; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TEMP_TM, (const char *)packet, MAVLINK_MSG_ID_TEMP_TM_MIN_LEN, MAVLINK_MSG_ID_TEMP_TM_LEN, MAVLINK_MSG_ID_TEMP_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE TEMP_TM UNPACKING + + +/** + * @brief Get field timestamp from temp_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_temp_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field sensor_name from temp_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_temp_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 12); +} + +/** + * @brief Get field temperature from temp_tm message + * + * @return [deg] Temperature + */ +static inline float mavlink_msg_temp_tm_get_temperature(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Decode a temp_tm message into a struct + * + * @param msg The message to decode + * @param temp_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_temp_tm_decode(const mavlink_message_t* msg, mavlink_temp_tm_t* temp_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + temp_tm->timestamp = mavlink_msg_temp_tm_get_timestamp(msg); + temp_tm->temperature = mavlink_msg_temp_tm_get_temperature(msg); + mavlink_msg_temp_tm_get_sensor_name(msg, temp_tm->sensor_name); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_TEMP_TM_LEN? msg->len : MAVLINK_MSG_ID_TEMP_TM_LEN; + memset(temp_tm, 0, MAVLINK_MSG_ID_TEMP_TM_LEN); + memcpy(temp_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_voltage_tm.h b/mavlink_lib/lyra/mavlink_msg_voltage_tm.h new file mode 100644 index 0000000000000000000000000000000000000000..5a391cee271737b01330a5546290d5ba21f3c3a8 --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_voltage_tm.h @@ -0,0 +1,255 @@ +#pragma once +// MESSAGE VOLTAGE_TM PACKING + +#define MAVLINK_MSG_ID_VOLTAGE_TM 106 + + +typedef struct __mavlink_voltage_tm_t { + uint64_t timestamp; /*< [us] When was this logged*/ + float voltage; /*< [V] Voltage*/ + char sensor_name[20]; /*< Sensor name*/ +} mavlink_voltage_tm_t; + +#define MAVLINK_MSG_ID_VOLTAGE_TM_LEN 32 +#define MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN 32 +#define MAVLINK_MSG_ID_106_LEN 32 +#define MAVLINK_MSG_ID_106_MIN_LEN 32 + +#define MAVLINK_MSG_ID_VOLTAGE_TM_CRC 245 +#define MAVLINK_MSG_ID_106_CRC 245 + +#define MAVLINK_MSG_VOLTAGE_TM_FIELD_SENSOR_NAME_LEN 20 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_VOLTAGE_TM { \ + 106, \ + "VOLTAGE_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_voltage_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_voltage_tm_t, sensor_name) }, \ + { "voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_voltage_tm_t, voltage) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_VOLTAGE_TM { \ + "VOLTAGE_TM", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_voltage_tm_t, timestamp) }, \ + { "sensor_name", NULL, MAVLINK_TYPE_CHAR, 20, 12, offsetof(mavlink_voltage_tm_t, sensor_name) }, \ + { "voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_voltage_tm_t, voltage) }, \ + } \ +} +#endif + +/** + * @brief Pack a voltage_tm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param voltage [V] Voltage + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_voltage_tm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t timestamp, const char *sensor_name, float voltage) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_VOLTAGE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, voltage); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VOLTAGE_TM_LEN); +#else + mavlink_voltage_tm_t packet; + packet.timestamp = timestamp; + packet.voltage = voltage; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VOLTAGE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_VOLTAGE_TM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_CRC); +} + +/** + * @brief Pack a voltage_tm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param voltage [V] Voltage + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_voltage_tm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t timestamp,const char *sensor_name,float voltage) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_VOLTAGE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, voltage); + _mav_put_char_array(buf, 12, sensor_name, 20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VOLTAGE_TM_LEN); +#else + mavlink_voltage_tm_t packet; + packet.timestamp = timestamp; + packet.voltage = voltage; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VOLTAGE_TM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_VOLTAGE_TM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_CRC); +} + +/** + * @brief Encode a voltage_tm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param voltage_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_voltage_tm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_voltage_tm_t* voltage_tm) +{ + return mavlink_msg_voltage_tm_pack(system_id, component_id, msg, voltage_tm->timestamp, voltage_tm->sensor_name, voltage_tm->voltage); +} + +/** + * @brief Encode a voltage_tm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param voltage_tm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_voltage_tm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_voltage_tm_t* voltage_tm) +{ + return mavlink_msg_voltage_tm_pack_chan(system_id, component_id, chan, msg, voltage_tm->timestamp, voltage_tm->sensor_name, voltage_tm->voltage); +} + +/** + * @brief Send a voltage_tm message + * @param chan MAVLink channel to send the message + * + * @param timestamp [us] When was this logged + * @param sensor_name Sensor name + * @param voltage [V] Voltage + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_voltage_tm_send(mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float voltage) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_VOLTAGE_TM_LEN]; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, voltage); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VOLTAGE_TM, buf, MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_CRC); +#else + mavlink_voltage_tm_t packet; + packet.timestamp = timestamp; + packet.voltage = voltage; + mav_array_memcpy(packet.sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VOLTAGE_TM, (const char *)&packet, MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_CRC); +#endif +} + +/** + * @brief Send a voltage_tm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_voltage_tm_send_struct(mavlink_channel_t chan, const mavlink_voltage_tm_t* voltage_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_voltage_tm_send(chan, voltage_tm->timestamp, voltage_tm->sensor_name, voltage_tm->voltage); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VOLTAGE_TM, (const char *)voltage_tm, MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_VOLTAGE_TM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_voltage_tm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, const char *sensor_name, float voltage) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, timestamp); + _mav_put_float(buf, 8, voltage); + _mav_put_char_array(buf, 12, sensor_name, 20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VOLTAGE_TM, buf, MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_CRC); +#else + mavlink_voltage_tm_t *packet = (mavlink_voltage_tm_t *)msgbuf; + packet->timestamp = timestamp; + packet->voltage = voltage; + mav_array_memcpy(packet->sensor_name, sensor_name, sizeof(char)*20); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VOLTAGE_TM, (const char *)packet, MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_LEN, MAVLINK_MSG_ID_VOLTAGE_TM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE VOLTAGE_TM UNPACKING + + +/** + * @brief Get field timestamp from voltage_tm message + * + * @return [us] When was this logged + */ +static inline uint64_t mavlink_msg_voltage_tm_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Get field sensor_name from voltage_tm message + * + * @return Sensor name + */ +static inline uint16_t mavlink_msg_voltage_tm_get_sensor_name(const mavlink_message_t* msg, char *sensor_name) +{ + return _MAV_RETURN_char_array(msg, sensor_name, 20, 12); +} + +/** + * @brief Get field voltage from voltage_tm message + * + * @return [V] Voltage + */ +static inline float mavlink_msg_voltage_tm_get_voltage(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Decode a voltage_tm message into a struct + * + * @param msg The message to decode + * @param voltage_tm C-struct to decode the message contents into + */ +static inline void mavlink_msg_voltage_tm_decode(const mavlink_message_t* msg, mavlink_voltage_tm_t* voltage_tm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + voltage_tm->timestamp = mavlink_msg_voltage_tm_get_timestamp(msg); + voltage_tm->voltage = mavlink_msg_voltage_tm_get_voltage(msg); + mavlink_msg_voltage_tm_get_sensor_name(msg, voltage_tm->sensor_name); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_VOLTAGE_TM_LEN? msg->len : MAVLINK_MSG_ID_VOLTAGE_TM_LEN; + memset(voltage_tm, 0, MAVLINK_MSG_ID_VOLTAGE_TM_LEN); + memcpy(voltage_tm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/mavlink_msg_wiggle_servo_tc.h b/mavlink_lib/lyra/mavlink_msg_wiggle_servo_tc.h new file mode 100644 index 0000000000000000000000000000000000000000..b9e333c4ed5bde71c947b204fee64987ed98b2ad --- /dev/null +++ b/mavlink_lib/lyra/mavlink_msg_wiggle_servo_tc.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE WIGGLE_SERVO_TC PACKING + +#define MAVLINK_MSG_ID_WIGGLE_SERVO_TC 7 + + +typedef struct __mavlink_wiggle_servo_tc_t { + uint8_t servo_id; /*< A member of the ServosList enum*/ +} mavlink_wiggle_servo_tc_t; + +#define MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN 1 +#define MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN 1 +#define MAVLINK_MSG_ID_7_LEN 1 +#define MAVLINK_MSG_ID_7_MIN_LEN 1 + +#define MAVLINK_MSG_ID_WIGGLE_SERVO_TC_CRC 160 +#define MAVLINK_MSG_ID_7_CRC 160 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_WIGGLE_SERVO_TC { \ + 7, \ + "WIGGLE_SERVO_TC", \ + 1, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_wiggle_servo_tc_t, servo_id) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_WIGGLE_SERVO_TC { \ + "WIGGLE_SERVO_TC", \ + 1, \ + { { "servo_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_wiggle_servo_tc_t, servo_id) }, \ + } \ +} +#endif + +/** + * @brief Pack a wiggle_servo_tc message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param servo_id A member of the ServosList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_wiggle_servo_tc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN]; + _mav_put_uint8_t(buf, 0, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN); +#else + mavlink_wiggle_servo_tc_t packet; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_WIGGLE_SERVO_TC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_CRC); +} + +/** + * @brief Pack a wiggle_servo_tc message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servo_id A member of the ServosList enum + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_wiggle_servo_tc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN]; + _mav_put_uint8_t(buf, 0, servo_id); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN); +#else + mavlink_wiggle_servo_tc_t packet; + packet.servo_id = servo_id; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_WIGGLE_SERVO_TC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_CRC); +} + +/** + * @brief Encode a wiggle_servo_tc struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param wiggle_servo_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_wiggle_servo_tc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_wiggle_servo_tc_t* wiggle_servo_tc) +{ + return mavlink_msg_wiggle_servo_tc_pack(system_id, component_id, msg, wiggle_servo_tc->servo_id); +} + +/** + * @brief Encode a wiggle_servo_tc struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param wiggle_servo_tc C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_wiggle_servo_tc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_wiggle_servo_tc_t* wiggle_servo_tc) +{ + return mavlink_msg_wiggle_servo_tc_pack_chan(system_id, component_id, chan, msg, wiggle_servo_tc->servo_id); +} + +/** + * @brief Send a wiggle_servo_tc message + * @param chan MAVLink channel to send the message + * + * @param servo_id A member of the ServosList enum + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_wiggle_servo_tc_send(mavlink_channel_t chan, uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN]; + _mav_put_uint8_t(buf, 0, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WIGGLE_SERVO_TC, buf, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_CRC); +#else + mavlink_wiggle_servo_tc_t packet; + packet.servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WIGGLE_SERVO_TC, (const char *)&packet, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_CRC); +#endif +} + +/** + * @brief Send a wiggle_servo_tc message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_wiggle_servo_tc_send_struct(mavlink_channel_t chan, const mavlink_wiggle_servo_tc_t* wiggle_servo_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_wiggle_servo_tc_send(chan, wiggle_servo_tc->servo_id); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WIGGLE_SERVO_TC, (const char *)wiggle_servo_tc, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This variant of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_wiggle_servo_tc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t servo_id) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, servo_id); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WIGGLE_SERVO_TC, buf, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_CRC); +#else + mavlink_wiggle_servo_tc_t *packet = (mavlink_wiggle_servo_tc_t *)msgbuf; + packet->servo_id = servo_id; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WIGGLE_SERVO_TC, (const char *)packet, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE WIGGLE_SERVO_TC UNPACKING + + +/** + * @brief Get field servo_id from wiggle_servo_tc message + * + * @return A member of the ServosList enum + */ +static inline uint8_t mavlink_msg_wiggle_servo_tc_get_servo_id(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Decode a wiggle_servo_tc message into a struct + * + * @param msg The message to decode + * @param wiggle_servo_tc C-struct to decode the message contents into + */ +static inline void mavlink_msg_wiggle_servo_tc_decode(const mavlink_message_t* msg, mavlink_wiggle_servo_tc_t* wiggle_servo_tc) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + wiggle_servo_tc->servo_id = mavlink_msg_wiggle_servo_tc_get_servo_id(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN? msg->len : MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN; + memset(wiggle_servo_tc, 0, MAVLINK_MSG_ID_WIGGLE_SERVO_TC_LEN); + memcpy(wiggle_servo_tc, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/mavlink_lib/lyra/testsuite.h b/mavlink_lib/lyra/testsuite.h new file mode 100644 index 0000000000000000000000000000000000000000..04d562115ad95f048e64870585b1f455e2047028 --- /dev/null +++ b/mavlink_lib/lyra/testsuite.h @@ -0,0 +1,3291 @@ +/** @file + * @brief MAVLink comm protocol testsuite generated from lyra.xml + * @see https://mavlink.io/en/ + */ +#pragma once +#ifndef LYRA_TESTSUITE_H +#define LYRA_TESTSUITE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef MAVLINK_TEST_ALL +#define MAVLINK_TEST_ALL + +static void mavlink_test_lyra(uint8_t, uint8_t, mavlink_message_t *last_msg); + +static void mavlink_test_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ + + mavlink_test_lyra(system_id, component_id, last_msg); +} +#endif + + + + +static void mavlink_test_ping_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PING_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_ping_tc_t packet_in = { + 93372036854775807ULL + }; + mavlink_ping_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_PING_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PING_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ping_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_ping_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ping_tc_pack(system_id, component_id, &msg , packet1.timestamp ); + mavlink_msg_ping_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ping_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp ); + mavlink_msg_ping_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_ping_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ping_tc_send(MAVLINK_COMM_1 , packet1.timestamp ); + mavlink_msg_ping_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("PING_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PING_TC) != NULL); +#endif +} + +static void mavlink_test_command_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COMMAND_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_command_tc_t packet_in = { + 5 + }; + mavlink_command_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.command_id = packet_in.command_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COMMAND_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_command_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_command_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_command_tc_pack(system_id, component_id, &msg , packet1.command_id ); + mavlink_msg_command_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_command_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.command_id ); + mavlink_msg_command_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_command_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_command_tc_send(MAVLINK_COMM_1 , packet1.command_id ); + mavlink_msg_command_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("COMMAND_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_COMMAND_TC) != NULL); +#endif +} + +static void mavlink_test_system_tm_request_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_system_tm_request_tc_t packet_in = { + 5 + }; + mavlink_system_tm_request_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.tm_id = packet_in.tm_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_system_tm_request_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_system_tm_request_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_system_tm_request_tc_pack(system_id, component_id, &msg , packet1.tm_id ); + mavlink_msg_system_tm_request_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_system_tm_request_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.tm_id ); + mavlink_msg_system_tm_request_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_system_tm_request_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_system_tm_request_tc_send(MAVLINK_COMM_1 , packet1.tm_id ); + mavlink_msg_system_tm_request_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SYSTEM_TM_REQUEST_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SYSTEM_TM_REQUEST_TC) != NULL); +#endif +} + +static void mavlink_test_sensor_tm_request_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_sensor_tm_request_tc_t packet_in = { + 5 + }; + mavlink_sensor_tm_request_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.sensor_name = packet_in.sensor_name; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sensor_tm_request_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_sensor_tm_request_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sensor_tm_request_tc_pack(system_id, component_id, &msg , packet1.sensor_name ); + mavlink_msg_sensor_tm_request_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sensor_tm_request_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.sensor_name ); + mavlink_msg_sensor_tm_request_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_sensor_tm_request_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sensor_tm_request_tc_send(MAVLINK_COMM_1 , packet1.sensor_name ); + mavlink_msg_sensor_tm_request_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SENSOR_TM_REQUEST_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SENSOR_TM_REQUEST_TC) != NULL); +#endif +} + +static void mavlink_test_servo_tm_request_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_servo_tm_request_tc_t packet_in = { + 5 + }; + mavlink_servo_tm_request_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.servo_id = packet_in.servo_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servo_tm_request_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_servo_tm_request_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servo_tm_request_tc_pack(system_id, component_id, &msg , packet1.servo_id ); + mavlink_msg_servo_tm_request_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servo_tm_request_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.servo_id ); + mavlink_msg_servo_tm_request_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_servo_tm_request_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servo_tm_request_tc_send(MAVLINK_COMM_1 , packet1.servo_id ); + mavlink_msg_servo_tm_request_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SERVO_TM_REQUEST_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SERVO_TM_REQUEST_TC) != NULL); +#endif +} + +static void mavlink_test_set_servo_angle_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_servo_angle_tc_t packet_in = { + 17.0,17 + }; + mavlink_set_servo_angle_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.angle = packet_in.angle; + packet1.servo_id = packet_in.servo_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_servo_angle_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_servo_angle_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_servo_angle_tc_pack(system_id, component_id, &msg , packet1.servo_id , packet1.angle ); + mavlink_msg_set_servo_angle_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_servo_angle_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.servo_id , packet1.angle ); + mavlink_msg_set_servo_angle_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_servo_angle_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_servo_angle_tc_send(MAVLINK_COMM_1 , packet1.servo_id , packet1.angle ); + mavlink_msg_set_servo_angle_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_SERVO_ANGLE_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_SERVO_ANGLE_TC) != NULL); +#endif +} + +static void mavlink_test_wiggle_servo_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_WIGGLE_SERVO_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_wiggle_servo_tc_t packet_in = { + 5 + }; + mavlink_wiggle_servo_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.servo_id = packet_in.servo_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_WIGGLE_SERVO_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_wiggle_servo_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_wiggle_servo_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_wiggle_servo_tc_pack(system_id, component_id, &msg , packet1.servo_id ); + mavlink_msg_wiggle_servo_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_wiggle_servo_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.servo_id ); + mavlink_msg_wiggle_servo_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_wiggle_servo_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_wiggle_servo_tc_send(MAVLINK_COMM_1 , packet1.servo_id ); + mavlink_msg_wiggle_servo_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("WIGGLE_SERVO_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_WIGGLE_SERVO_TC) != NULL); +#endif +} + +static void mavlink_test_reset_servo_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RESET_SERVO_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_reset_servo_tc_t packet_in = { + 5 + }; + mavlink_reset_servo_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.servo_id = packet_in.servo_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RESET_SERVO_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_reset_servo_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_reset_servo_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_reset_servo_tc_pack(system_id, component_id, &msg , packet1.servo_id ); + mavlink_msg_reset_servo_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_reset_servo_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.servo_id ); + mavlink_msg_reset_servo_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_reset_servo_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_reset_servo_tc_send(MAVLINK_COMM_1 , packet1.servo_id ); + mavlink_msg_reset_servo_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("RESET_SERVO_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RESET_SERVO_TC) != NULL); +#endif +} + +static void mavlink_test_set_reference_altitude_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_reference_altitude_tc_t packet_in = { + 17.0 + }; + mavlink_set_reference_altitude_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.ref_altitude = packet_in.ref_altitude; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_reference_altitude_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_reference_altitude_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_reference_altitude_tc_pack(system_id, component_id, &msg , packet1.ref_altitude ); + mavlink_msg_set_reference_altitude_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_reference_altitude_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.ref_altitude ); + mavlink_msg_set_reference_altitude_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_reference_altitude_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_reference_altitude_tc_send(MAVLINK_COMM_1 , packet1.ref_altitude ); + mavlink_msg_set_reference_altitude_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_REFERENCE_ALTITUDE_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_REFERENCE_ALTITUDE_TC) != NULL); +#endif +} + +static void mavlink_test_set_reference_temperature_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_reference_temperature_tc_t packet_in = { + 17.0 + }; + mavlink_set_reference_temperature_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.ref_temp = packet_in.ref_temp; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_reference_temperature_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_reference_temperature_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_reference_temperature_tc_pack(system_id, component_id, &msg , packet1.ref_temp ); + mavlink_msg_set_reference_temperature_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_reference_temperature_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.ref_temp ); + mavlink_msg_set_reference_temperature_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_reference_temperature_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_reference_temperature_tc_send(MAVLINK_COMM_1 , packet1.ref_temp ); + mavlink_msg_set_reference_temperature_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_REFERENCE_TEMPERATURE_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_REFERENCE_TEMPERATURE_TC) != NULL); +#endif +} + +static void mavlink_test_set_orientation_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_ORIENTATION_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_orientation_tc_t packet_in = { + 17.0,45.0,73.0 + }; + mavlink_set_orientation_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.yaw = packet_in.yaw; + packet1.pitch = packet_in.pitch; + packet1.roll = packet_in.roll; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_ORIENTATION_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_orientation_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_orientation_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_orientation_tc_pack(system_id, component_id, &msg , packet1.yaw , packet1.pitch , packet1.roll ); + mavlink_msg_set_orientation_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_orientation_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.yaw , packet1.pitch , packet1.roll ); + mavlink_msg_set_orientation_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_orientation_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_orientation_tc_send(MAVLINK_COMM_1 , packet1.yaw , packet1.pitch , packet1.roll ); + mavlink_msg_set_orientation_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_ORIENTATION_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_ORIENTATION_TC) != NULL); +#endif +} + +static void mavlink_test_set_coordinates_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_COORDINATES_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_coordinates_tc_t packet_in = { + 17.0,45.0 + }; + mavlink_set_coordinates_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.latitude = packet_in.latitude; + packet1.longitude = packet_in.longitude; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_COORDINATES_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_coordinates_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_coordinates_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_coordinates_tc_pack(system_id, component_id, &msg , packet1.latitude , packet1.longitude ); + mavlink_msg_set_coordinates_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_coordinates_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.latitude , packet1.longitude ); + mavlink_msg_set_coordinates_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_coordinates_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_coordinates_tc_send(MAVLINK_COMM_1 , packet1.latitude , packet1.longitude ); + mavlink_msg_set_coordinates_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_COORDINATES_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_COORDINATES_TC) != NULL); +#endif +} + +static void mavlink_test_raw_event_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RAW_EVENT_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_raw_event_tc_t packet_in = { + 5,72 + }; + mavlink_raw_event_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.topic_id = packet_in.topic_id; + packet1.event_id = packet_in.event_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RAW_EVENT_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_raw_event_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_raw_event_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_raw_event_tc_pack(system_id, component_id, &msg , packet1.topic_id , packet1.event_id ); + mavlink_msg_raw_event_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_raw_event_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.topic_id , packet1.event_id ); + mavlink_msg_raw_event_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_raw_event_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_raw_event_tc_send(MAVLINK_COMM_1 , packet1.topic_id , packet1.event_id ); + mavlink_msg_raw_event_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("RAW_EVENT_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RAW_EVENT_TC) != NULL); +#endif +} + +static void mavlink_test_set_deployment_altitude_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_deployment_altitude_tc_t packet_in = { + 17.0 + }; + mavlink_set_deployment_altitude_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.dpl_altitude = packet_in.dpl_altitude; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_deployment_altitude_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_deployment_altitude_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_deployment_altitude_tc_pack(system_id, component_id, &msg , packet1.dpl_altitude ); + mavlink_msg_set_deployment_altitude_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_deployment_altitude_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.dpl_altitude ); + mavlink_msg_set_deployment_altitude_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_deployment_altitude_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_deployment_altitude_tc_send(MAVLINK_COMM_1 , packet1.dpl_altitude ); + mavlink_msg_set_deployment_altitude_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_DEPLOYMENT_ALTITUDE_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_DEPLOYMENT_ALTITUDE_TC) != NULL); +#endif +} + +static void mavlink_test_set_target_coordinates_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_target_coordinates_tc_t packet_in = { + 17.0,45.0 + }; + mavlink_set_target_coordinates_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.latitude = packet_in.latitude; + packet1.longitude = packet_in.longitude; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_target_coordinates_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_target_coordinates_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_target_coordinates_tc_pack(system_id, component_id, &msg , packet1.latitude , packet1.longitude ); + mavlink_msg_set_target_coordinates_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_target_coordinates_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.latitude , packet1.longitude ); + mavlink_msg_set_target_coordinates_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_target_coordinates_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_target_coordinates_tc_send(MAVLINK_COMM_1 , packet1.latitude , packet1.longitude ); + mavlink_msg_set_target_coordinates_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_TARGET_COORDINATES_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_TARGET_COORDINATES_TC) != NULL); +#endif +} + +static void mavlink_test_set_algorithm_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_ALGORITHM_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_algorithm_tc_t packet_in = { + 5 + }; + mavlink_set_algorithm_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.algorithm_number = packet_in.algorithm_number; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_ALGORITHM_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_algorithm_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_algorithm_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_algorithm_tc_pack(system_id, component_id, &msg , packet1.algorithm_number ); + mavlink_msg_set_algorithm_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_algorithm_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.algorithm_number ); + mavlink_msg_set_algorithm_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_algorithm_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_algorithm_tc_send(MAVLINK_COMM_1 , packet1.algorithm_number ); + mavlink_msg_set_algorithm_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_ALGORITHM_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_ALGORITHM_TC) != NULL); +#endif +} + +static void mavlink_test_set_atomic_valve_timing_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_atomic_valve_timing_tc_t packet_in = { + 963497464,17 + }; + mavlink_set_atomic_valve_timing_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.maximum_timing = packet_in.maximum_timing; + packet1.servo_id = packet_in.servo_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_atomic_valve_timing_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_atomic_valve_timing_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_atomic_valve_timing_tc_pack(system_id, component_id, &msg , packet1.servo_id , packet1.maximum_timing ); + mavlink_msg_set_atomic_valve_timing_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_atomic_valve_timing_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.servo_id , packet1.maximum_timing ); + mavlink_msg_set_atomic_valve_timing_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_atomic_valve_timing_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_atomic_valve_timing_tc_send(MAVLINK_COMM_1 , packet1.servo_id , packet1.maximum_timing ); + mavlink_msg_set_atomic_valve_timing_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_ATOMIC_VALVE_TIMING_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_ATOMIC_VALVE_TIMING_TC) != NULL); +#endif +} + +static void mavlink_test_set_valve_maximum_aperture_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_valve_maximum_aperture_tc_t packet_in = { + 17.0,17 + }; + mavlink_set_valve_maximum_aperture_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.maximum_aperture = packet_in.maximum_aperture; + packet1.servo_id = packet_in.servo_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_valve_maximum_aperture_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_valve_maximum_aperture_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_valve_maximum_aperture_tc_pack(system_id, component_id, &msg , packet1.servo_id , packet1.maximum_aperture ); + mavlink_msg_set_valve_maximum_aperture_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_valve_maximum_aperture_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.servo_id , packet1.maximum_aperture ); + mavlink_msg_set_valve_maximum_aperture_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_valve_maximum_aperture_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_valve_maximum_aperture_tc_send(MAVLINK_COMM_1 , packet1.servo_id , packet1.maximum_aperture ); + mavlink_msg_set_valve_maximum_aperture_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_VALVE_MAXIMUM_APERTURE_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_VALVE_MAXIMUM_APERTURE_TC) != NULL); +#endif +} + +static void mavlink_test_conrig_state_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CONRIG_STATE_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_conrig_state_tc_t packet_in = { + 5,72,139,206,17,84,151 + }; + mavlink_conrig_state_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.ignition_btn = packet_in.ignition_btn; + packet1.filling_valve_btn = packet_in.filling_valve_btn; + packet1.venting_valve_btn = packet_in.venting_valve_btn; + packet1.release_pressure_btn = packet_in.release_pressure_btn; + packet1.quick_connector_btn = packet_in.quick_connector_btn; + packet1.start_tars_btn = packet_in.start_tars_btn; + packet1.arm_switch = packet_in.arm_switch; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CONRIG_STATE_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_conrig_state_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_conrig_state_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_conrig_state_tc_pack(system_id, component_id, &msg , packet1.ignition_btn , packet1.filling_valve_btn , packet1.venting_valve_btn , packet1.release_pressure_btn , packet1.quick_connector_btn , packet1.start_tars_btn , packet1.arm_switch ); + mavlink_msg_conrig_state_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_conrig_state_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.ignition_btn , packet1.filling_valve_btn , packet1.venting_valve_btn , packet1.release_pressure_btn , packet1.quick_connector_btn , packet1.start_tars_btn , packet1.arm_switch ); + mavlink_msg_conrig_state_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_conrig_state_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_conrig_state_tc_send(MAVLINK_COMM_1 , packet1.ignition_btn , packet1.filling_valve_btn , packet1.venting_valve_btn , packet1.release_pressure_btn , packet1.quick_connector_btn , packet1.start_tars_btn , packet1.arm_switch ); + mavlink_msg_conrig_state_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("CONRIG_STATE_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CONRIG_STATE_TC) != NULL); +#endif +} + +static void mavlink_test_set_ignition_time_tc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_IGNITION_TIME_TC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_set_ignition_time_tc_t packet_in = { + 963497464 + }; + mavlink_set_ignition_time_tc_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timing = packet_in.timing; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_IGNITION_TIME_TC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_ignition_time_tc_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_set_ignition_time_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_ignition_time_tc_pack(system_id, component_id, &msg , packet1.timing ); + mavlink_msg_set_ignition_time_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_ignition_time_tc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timing ); + mavlink_msg_set_ignition_time_tc_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_set_ignition_time_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_set_ignition_time_tc_send(MAVLINK_COMM_1 , packet1.timing ); + mavlink_msg_set_ignition_time_tc_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_IGNITION_TIME_TC") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_IGNITION_TIME_TC) != NULL); +#endif +} + +static void mavlink_test_ack_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ACK_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_ack_tm_t packet_in = { + 5,72 + }; + mavlink_ack_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.recv_msgid = packet_in.recv_msgid; + packet1.seq_ack = packet_in.seq_ack; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_ACK_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ACK_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ack_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_ack_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ack_tm_pack(system_id, component_id, &msg , packet1.recv_msgid , packet1.seq_ack ); + mavlink_msg_ack_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ack_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.recv_msgid , packet1.seq_ack ); + mavlink_msg_ack_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_ack_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ack_tm_send(MAVLINK_COMM_1 , packet1.recv_msgid , packet1.seq_ack ); + mavlink_msg_ack_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("ACK_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ACK_TM) != NULL); +#endif +} + +static void mavlink_test_nack_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_NACK_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_nack_tm_t packet_in = { + 5,72 + }; + mavlink_nack_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.recv_msgid = packet_in.recv_msgid; + packet1.seq_ack = packet_in.seq_ack; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_NACK_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_NACK_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_nack_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_nack_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_nack_tm_pack(system_id, component_id, &msg , packet1.recv_msgid , packet1.seq_ack ); + mavlink_msg_nack_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_nack_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.recv_msgid , packet1.seq_ack ); + mavlink_msg_nack_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_nack_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_nack_tm_send(MAVLINK_COMM_1 , packet1.recv_msgid , packet1.seq_ack ); + mavlink_msg_nack_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("NACK_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_NACK_TM) != NULL); +#endif +} + +static void mavlink_test_gps_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_gps_tm_t packet_in = { + 93372036854775807ULL,179.0,235.0,291.0,241.0,269.0,297.0,325.0,353.0,"ABCDEFGHIJKLMNOPQRS",221,32 + }; + mavlink_gps_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.latitude = packet_in.latitude; + packet1.longitude = packet_in.longitude; + packet1.height = packet_in.height; + packet1.vel_north = packet_in.vel_north; + packet1.vel_east = packet_in.vel_east; + packet1.vel_down = packet_in.vel_down; + packet1.speed = packet_in.speed; + packet1.track = packet_in.track; + packet1.fix = packet_in.fix; + packet1.n_satellites = packet_in.n_satellites; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_GPS_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_gps_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_gps_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_gps_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.sensor_name , packet1.fix , packet1.latitude , packet1.longitude , packet1.height , packet1.vel_north , packet1.vel_east , packet1.vel_down , packet1.speed , packet1.track , packet1.n_satellites ); + mavlink_msg_gps_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_gps_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.sensor_name , packet1.fix , packet1.latitude , packet1.longitude , packet1.height , packet1.vel_north , packet1.vel_east , packet1.vel_down , packet1.speed , packet1.track , packet1.n_satellites ); + mavlink_msg_gps_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_gps_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_gps_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.sensor_name , packet1.fix , packet1.latitude , packet1.longitude , packet1.height , packet1.vel_north , packet1.vel_east , packet1.vel_down , packet1.speed , packet1.track , packet1.n_satellites ); + mavlink_msg_gps_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS_TM) != NULL); +#endif +} + +static void mavlink_test_imu_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_IMU_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_imu_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,"STUVWXYZABCDEFGHIJK" + }; + mavlink_imu_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.acc_x = packet_in.acc_x; + packet1.acc_y = packet_in.acc_y; + packet1.acc_z = packet_in.acc_z; + packet1.gyro_x = packet_in.gyro_x; + packet1.gyro_y = packet_in.gyro_y; + packet1.gyro_z = packet_in.gyro_z; + packet1.mag_x = packet_in.mag_x; + packet1.mag_y = packet_in.mag_y; + packet1.mag_z = packet_in.mag_z; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_IMU_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_IMU_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_imu_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_imu_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_imu_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.sensor_name , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.gyro_x , packet1.gyro_y , packet1.gyro_z , packet1.mag_x , packet1.mag_y , packet1.mag_z ); + mavlink_msg_imu_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_imu_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.sensor_name , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.gyro_x , packet1.gyro_y , packet1.gyro_z , packet1.mag_x , packet1.mag_y , packet1.mag_z ); + mavlink_msg_imu_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_imu_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_imu_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.sensor_name , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.gyro_x , packet1.gyro_y , packet1.gyro_z , packet1.mag_x , packet1.mag_y , packet1.mag_z ); + mavlink_msg_imu_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("IMU_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_IMU_TM) != NULL); +#endif +} + +static void mavlink_test_pressure_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PRESSURE_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_pressure_tm_t packet_in = { + 93372036854775807ULL,73.0,"MNOPQRSTUVWXYZABCDE" + }; + mavlink_pressure_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.pressure = packet_in.pressure; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PRESSURE_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pressure_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_pressure_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pressure_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.sensor_name , packet1.pressure ); + mavlink_msg_pressure_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pressure_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.sensor_name , packet1.pressure ); + mavlink_msg_pressure_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_pressure_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pressure_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.sensor_name , packet1.pressure ); + mavlink_msg_pressure_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("PRESSURE_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PRESSURE_TM) != NULL); +#endif +} + +static void mavlink_test_adc_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ADC_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_adc_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,"OPQRSTUVWXYZABCDEFG" + }; + mavlink_adc_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.channel_0 = packet_in.channel_0; + packet1.channel_1 = packet_in.channel_1; + packet1.channel_2 = packet_in.channel_2; + packet1.channel_3 = packet_in.channel_3; + packet1.channel_4 = packet_in.channel_4; + packet1.channel_5 = packet_in.channel_5; + packet1.channel_6 = packet_in.channel_6; + packet1.channel_7 = packet_in.channel_7; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_ADC_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ADC_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_adc_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_adc_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_adc_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.sensor_name , packet1.channel_0 , packet1.channel_1 , packet1.channel_2 , packet1.channel_3 , packet1.channel_4 , packet1.channel_5 , packet1.channel_6 , packet1.channel_7 ); + mavlink_msg_adc_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_adc_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.sensor_name , packet1.channel_0 , packet1.channel_1 , packet1.channel_2 , packet1.channel_3 , packet1.channel_4 , packet1.channel_5 , packet1.channel_6 , packet1.channel_7 ); + mavlink_msg_adc_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_adc_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_adc_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.sensor_name , packet1.channel_0 , packet1.channel_1 , packet1.channel_2 , packet1.channel_3 , packet1.channel_4 , packet1.channel_5 , packet1.channel_6 , packet1.channel_7 ); + mavlink_msg_adc_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("ADC_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ADC_TM) != NULL); +#endif +} + +static void mavlink_test_voltage_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_VOLTAGE_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_voltage_tm_t packet_in = { + 93372036854775807ULL,73.0,"MNOPQRSTUVWXYZABCDE" + }; + mavlink_voltage_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.voltage = packet_in.voltage; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_VOLTAGE_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_voltage_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_voltage_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_voltage_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.sensor_name , packet1.voltage ); + mavlink_msg_voltage_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_voltage_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.sensor_name , packet1.voltage ); + mavlink_msg_voltage_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_voltage_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_voltage_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.sensor_name , packet1.voltage ); + mavlink_msg_voltage_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("VOLTAGE_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_VOLTAGE_TM) != NULL); +#endif +} + +static void mavlink_test_current_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CURRENT_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_current_tm_t packet_in = { + 93372036854775807ULL,73.0,"MNOPQRSTUVWXYZABCDE" + }; + mavlink_current_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.current = packet_in.current; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CURRENT_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_current_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_current_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_current_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.sensor_name , packet1.current ); + mavlink_msg_current_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_current_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.sensor_name , packet1.current ); + mavlink_msg_current_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_current_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_current_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.sensor_name , packet1.current ); + mavlink_msg_current_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("CURRENT_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CURRENT_TM) != NULL); +#endif +} + +static void mavlink_test_temp_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TEMP_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_temp_tm_t packet_in = { + 93372036854775807ULL,73.0,"MNOPQRSTUVWXYZABCDE" + }; + mavlink_temp_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.temperature = packet_in.temperature; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_TEMP_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TEMP_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_temp_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_temp_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_temp_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.sensor_name , packet1.temperature ); + mavlink_msg_temp_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_temp_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.sensor_name , packet1.temperature ); + mavlink_msg_temp_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_temp_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_temp_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.sensor_name , packet1.temperature ); + mavlink_msg_temp_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("TEMP_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TEMP_TM) != NULL); +#endif +} + +static void mavlink_test_load_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOAD_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_load_tm_t packet_in = { + 93372036854775807ULL,73.0,"MNOPQRSTUVWXYZABCDE" + }; + mavlink_load_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.load = packet_in.load; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_LOAD_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOAD_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_load_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_load_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_load_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.sensor_name , packet1.load ); + mavlink_msg_load_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_load_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.sensor_name , packet1.load ); + mavlink_msg_load_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_load_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_load_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.sensor_name , packet1.load ); + mavlink_msg_load_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOAD_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOAD_TM) != NULL); +#endif +} + +static void mavlink_test_attitude_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ATTITUDE_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_attitude_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,"KLMNOPQRSTUVWXYZABC" + }; + mavlink_attitude_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.roll = packet_in.roll; + packet1.pitch = packet_in.pitch; + packet1.yaw = packet_in.yaw; + packet1.quat_x = packet_in.quat_x; + packet1.quat_y = packet_in.quat_y; + packet1.quat_z = packet_in.quat_z; + packet1.quat_w = packet_in.quat_w; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ATTITUDE_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_attitude_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_attitude_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_attitude_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.sensor_name , packet1.roll , packet1.pitch , packet1.yaw , packet1.quat_x , packet1.quat_y , packet1.quat_z , packet1.quat_w ); + mavlink_msg_attitude_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_attitude_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.sensor_name , packet1.roll , packet1.pitch , packet1.yaw , packet1.quat_x , packet1.quat_y , packet1.quat_z , packet1.quat_w ); + mavlink_msg_attitude_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_attitude_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_attitude_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.sensor_name , packet1.roll , packet1.pitch , packet1.yaw , packet1.quat_x , packet1.quat_y , packet1.quat_z , packet1.quat_w ); + mavlink_msg_attitude_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("ATTITUDE_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ATTITUDE_TM) != NULL); +#endif +} + +static void mavlink_test_sensor_state_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SENSOR_STATE_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_sensor_state_tm_t packet_in = { + "ABCDEFGHIJKLMNOPQRS",65 + }; + mavlink_sensor_state_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.state = packet_in.state; + + mav_array_memcpy(packet1.sensor_name, packet_in.sensor_name, sizeof(char)*20); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SENSOR_STATE_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sensor_state_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_sensor_state_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sensor_state_tm_pack(system_id, component_id, &msg , packet1.sensor_name , packet1.state ); + mavlink_msg_sensor_state_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sensor_state_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.sensor_name , packet1.state ); + mavlink_msg_sensor_state_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_sensor_state_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sensor_state_tm_send(MAVLINK_COMM_1 , packet1.sensor_name , packet1.state ); + mavlink_msg_sensor_state_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SENSOR_STATE_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SENSOR_STATE_TM) != NULL); +#endif +} + +static void mavlink_test_servo_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SERVO_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_servo_tm_t packet_in = { + 17.0,17 + }; + mavlink_servo_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.servo_position = packet_in.servo_position; + packet1.servo_id = packet_in.servo_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SERVO_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SERVO_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servo_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_servo_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servo_tm_pack(system_id, component_id, &msg , packet1.servo_id , packet1.servo_position ); + mavlink_msg_servo_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servo_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.servo_id , packet1.servo_position ); + mavlink_msg_servo_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_servo_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servo_tm_send(MAVLINK_COMM_1 , packet1.servo_id , packet1.servo_position ); + mavlink_msg_servo_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SERVO_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SERVO_TM) != NULL); +#endif +} + +static void mavlink_test_pin_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PIN_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_pin_tm_t packet_in = { + 93372036854775807ULL,93372036854776311ULL,53,120,187 + }; + mavlink_pin_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.last_change_timestamp = packet_in.last_change_timestamp; + packet1.pin_id = packet_in.pin_id; + packet1.changes_counter = packet_in.changes_counter; + packet1.current_state = packet_in.current_state; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_PIN_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PIN_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pin_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_pin_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pin_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.pin_id , packet1.last_change_timestamp , packet1.changes_counter , packet1.current_state ); + mavlink_msg_pin_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pin_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.pin_id , packet1.last_change_timestamp , packet1.changes_counter , packet1.current_state ); + mavlink_msg_pin_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_pin_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pin_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.pin_id , packet1.last_change_timestamp , packet1.changes_counter , packet1.current_state ); + mavlink_msg_pin_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("PIN_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PIN_TM) != NULL); +#endif +} + +static void mavlink_test_receiver_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RECEIVER_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_receiver_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,18691,18795,18899,19003,19107,19211,19315,19419,19523,19627,149,216,27,94 + }; + mavlink_receiver_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.main_rx_rssi = packet_in.main_rx_rssi; + packet1.main_rx_fei = packet_in.main_rx_fei; + packet1.payload_rx_rssi = packet_in.payload_rx_rssi; + packet1.payload_rx_fei = packet_in.payload_rx_fei; + packet1.battery_voltage = packet_in.battery_voltage; + packet1.main_packet_tx_error_count = packet_in.main_packet_tx_error_count; + packet1.main_tx_bitrate = packet_in.main_tx_bitrate; + packet1.main_packet_rx_success_count = packet_in.main_packet_rx_success_count; + packet1.main_packet_rx_drop_count = packet_in.main_packet_rx_drop_count; + packet1.main_rx_bitrate = packet_in.main_rx_bitrate; + packet1.payload_packet_tx_error_count = packet_in.payload_packet_tx_error_count; + packet1.payload_tx_bitrate = packet_in.payload_tx_bitrate; + packet1.payload_packet_rx_success_count = packet_in.payload_packet_rx_success_count; + packet1.payload_packet_rx_drop_count = packet_in.payload_packet_rx_drop_count; + packet1.payload_rx_bitrate = packet_in.payload_rx_bitrate; + packet1.main_radio_present = packet_in.main_radio_present; + packet1.payload_radio_present = packet_in.payload_radio_present; + packet1.ethernet_present = packet_in.ethernet_present; + packet1.ethernet_status = packet_in.ethernet_status; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RECEIVER_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_receiver_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_receiver_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_receiver_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.main_radio_present , packet1.main_packet_tx_error_count , packet1.main_tx_bitrate , packet1.main_packet_rx_success_count , packet1.main_packet_rx_drop_count , packet1.main_rx_bitrate , packet1.main_rx_rssi , packet1.main_rx_fei , packet1.payload_radio_present , packet1.payload_packet_tx_error_count , packet1.payload_tx_bitrate , packet1.payload_packet_rx_success_count , packet1.payload_packet_rx_drop_count , packet1.payload_rx_bitrate , packet1.payload_rx_rssi , packet1.payload_rx_fei , packet1.ethernet_present , packet1.ethernet_status , packet1.battery_voltage ); + mavlink_msg_receiver_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_receiver_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.main_radio_present , packet1.main_packet_tx_error_count , packet1.main_tx_bitrate , packet1.main_packet_rx_success_count , packet1.main_packet_rx_drop_count , packet1.main_rx_bitrate , packet1.main_rx_rssi , packet1.main_rx_fei , packet1.payload_radio_present , packet1.payload_packet_tx_error_count , packet1.payload_tx_bitrate , packet1.payload_packet_rx_success_count , packet1.payload_packet_rx_drop_count , packet1.payload_rx_bitrate , packet1.payload_rx_rssi , packet1.payload_rx_fei , packet1.ethernet_present , packet1.ethernet_status , packet1.battery_voltage ); + mavlink_msg_receiver_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_receiver_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_receiver_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.main_radio_present , packet1.main_packet_tx_error_count , packet1.main_tx_bitrate , packet1.main_packet_rx_success_count , packet1.main_packet_rx_drop_count , packet1.main_rx_bitrate , packet1.main_rx_rssi , packet1.main_rx_fei , packet1.payload_radio_present , packet1.payload_packet_tx_error_count , packet1.payload_tx_bitrate , packet1.payload_packet_rx_success_count , packet1.payload_packet_rx_drop_count , packet1.payload_rx_bitrate , packet1.payload_rx_rssi , packet1.payload_rx_fei , packet1.ethernet_present , packet1.ethernet_status , packet1.battery_voltage ); + mavlink_msg_receiver_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("RECEIVER_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RECEIVER_TM) != NULL); +#endif +} + +static void mavlink_test_sys_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SYS_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_sys_tm_t packet_in = { + 93372036854775807ULL,29,96,163,230,41,108 + }; + mavlink_sys_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.logger = packet_in.logger; + packet1.event_broker = packet_in.event_broker; + packet1.radio = packet_in.radio; + packet1.pin_observer = packet_in.pin_observer; + packet1.sensors = packet_in.sensors; + packet1.board_scheduler = packet_in.board_scheduler; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SYS_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SYS_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sys_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_sys_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sys_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.logger , packet1.event_broker , packet1.radio , packet1.pin_observer , packet1.sensors , packet1.board_scheduler ); + mavlink_msg_sys_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sys_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.logger , packet1.event_broker , packet1.radio , packet1.pin_observer , packet1.sensors , packet1.board_scheduler ); + mavlink_msg_sys_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_sys_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_sys_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.logger , packet1.event_broker , packet1.radio , packet1.pin_observer , packet1.sensors , packet1.board_scheduler ); + mavlink_msg_sys_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("SYS_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SYS_TM) != NULL); +#endif +} + +static void mavlink_test_fsm_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_FSM_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_fsm_tm_t packet_in = { + 93372036854775807ULL,29,96,163,230,41,108 + }; + mavlink_fsm_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.ada_state = packet_in.ada_state; + packet1.abk_state = packet_in.abk_state; + packet1.dpl_state = packet_in.dpl_state; + packet1.fmm_state = packet_in.fmm_state; + packet1.nas_state = packet_in.nas_state; + packet1.wes_state = packet_in.wes_state; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_FSM_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_FSM_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_fsm_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_fsm_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_fsm_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.ada_state , packet1.abk_state , packet1.dpl_state , packet1.fmm_state , packet1.nas_state , packet1.wes_state ); + mavlink_msg_fsm_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_fsm_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.ada_state , packet1.abk_state , packet1.dpl_state , packet1.fmm_state , packet1.nas_state , packet1.wes_state ); + mavlink_msg_fsm_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_fsm_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_fsm_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.ada_state , packet1.abk_state , packet1.dpl_state , packet1.fmm_state , packet1.nas_state , packet1.wes_state ); + mavlink_msg_fsm_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("FSM_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_FSM_TM) != NULL); +#endif +} + +static void mavlink_test_logger_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOGGER_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_logger_tm_t packet_in = { + 93372036854775807ULL,963497880,963498088,963498296,963498504,963498712,963498920,963499128,963499336,963499544,19523 + }; + mavlink_logger_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.too_large_samples = packet_in.too_large_samples; + packet1.dropped_samples = packet_in.dropped_samples; + packet1.queued_samples = packet_in.queued_samples; + packet1.buffers_filled = packet_in.buffers_filled; + packet1.buffers_written = packet_in.buffers_written; + packet1.writes_failed = packet_in.writes_failed; + packet1.last_write_error = packet_in.last_write_error; + packet1.average_write_time = packet_in.average_write_time; + packet1.max_write_time = packet_in.max_write_time; + packet1.log_number = packet_in.log_number; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOGGER_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_logger_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_logger_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_logger_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.log_number , packet1.too_large_samples , packet1.dropped_samples , packet1.queued_samples , packet1.buffers_filled , packet1.buffers_written , packet1.writes_failed , packet1.last_write_error , packet1.average_write_time , packet1.max_write_time ); + mavlink_msg_logger_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_logger_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.log_number , packet1.too_large_samples , packet1.dropped_samples , packet1.queued_samples , packet1.buffers_filled , packet1.buffers_written , packet1.writes_failed , packet1.last_write_error , packet1.average_write_time , packet1.max_write_time ); + mavlink_msg_logger_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_logger_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_logger_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.log_number , packet1.too_large_samples , packet1.dropped_samples , packet1.queued_samples , packet1.buffers_filled , packet1.buffers_written , packet1.writes_failed , packet1.last_write_error , packet1.average_write_time , packet1.max_write_time ); + mavlink_msg_logger_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOGGER_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOGGER_TM) != NULL); +#endif +} + +static void mavlink_test_mavlink_stats_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MAVLINK_STATS_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_mavlink_stats_tm_t packet_in = { + 93372036854775807ULL,963497880,17859,17963,18067,18171,18275,199,10,77,144,211,22 + }; + mavlink_mavlink_stats_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.parse_state = packet_in.parse_state; + packet1.n_send_queue = packet_in.n_send_queue; + packet1.max_send_queue = packet_in.max_send_queue; + packet1.n_send_errors = packet_in.n_send_errors; + packet1.packet_rx_success_count = packet_in.packet_rx_success_count; + packet1.packet_rx_drop_count = packet_in.packet_rx_drop_count; + packet1.msg_received = packet_in.msg_received; + packet1.buffer_overrun = packet_in.buffer_overrun; + packet1.parse_error = packet_in.parse_error; + packet1.packet_idx = packet_in.packet_idx; + packet1.current_rx_seq = packet_in.current_rx_seq; + packet1.current_tx_seq = packet_in.current_tx_seq; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MAVLINK_STATS_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_mavlink_stats_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_mavlink_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_mavlink_stats_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.n_send_queue , packet1.max_send_queue , packet1.n_send_errors , packet1.msg_received , packet1.buffer_overrun , packet1.parse_error , packet1.parse_state , packet1.packet_idx , packet1.current_rx_seq , packet1.current_tx_seq , packet1.packet_rx_success_count , packet1.packet_rx_drop_count ); + mavlink_msg_mavlink_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_mavlink_stats_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.n_send_queue , packet1.max_send_queue , packet1.n_send_errors , packet1.msg_received , packet1.buffer_overrun , packet1.parse_error , packet1.parse_state , packet1.packet_idx , packet1.current_rx_seq , packet1.current_tx_seq , packet1.packet_rx_success_count , packet1.packet_rx_drop_count ); + mavlink_msg_mavlink_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_mavlink_stats_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_mavlink_stats_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.n_send_queue , packet1.max_send_queue , packet1.n_send_errors , packet1.msg_received , packet1.buffer_overrun , packet1.parse_error , packet1.parse_state , packet1.packet_idx , packet1.current_rx_seq , packet1.current_tx_seq , packet1.packet_rx_success_count , packet1.packet_rx_drop_count ); + mavlink_msg_mavlink_stats_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("MAVLINK_STATS_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MAVLINK_STATS_TM) != NULL); +#endif +} + +static void mavlink_test_task_stats_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TASK_STATS_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_task_stats_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,18483,211 + }; + mavlink_task_stats_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.task_min = packet_in.task_min; + packet1.task_max = packet_in.task_max; + packet1.task_mean = packet_in.task_mean; + packet1.task_stddev = packet_in.task_stddev; + packet1.task_period = packet_in.task_period; + packet1.task_id = packet_in.task_id; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TASK_STATS_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_task_stats_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_task_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_task_stats_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.task_id , packet1.task_period , packet1.task_min , packet1.task_max , packet1.task_mean , packet1.task_stddev ); + mavlink_msg_task_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_task_stats_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.task_id , packet1.task_period , packet1.task_min , packet1.task_max , packet1.task_mean , packet1.task_stddev ); + mavlink_msg_task_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_task_stats_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_task_stats_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.task_id , packet1.task_period , packet1.task_min , packet1.task_max , packet1.task_mean , packet1.task_stddev ); + mavlink_msg_task_stats_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("TASK_STATS_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TASK_STATS_TM) != NULL); +#endif +} + +static void mavlink_test_ada_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ADA_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_ada_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,161 + }; + mavlink_ada_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.kalman_x0 = packet_in.kalman_x0; + packet1.kalman_x1 = packet_in.kalman_x1; + packet1.kalman_x2 = packet_in.kalman_x2; + packet1.vertical_speed = packet_in.vertical_speed; + packet1.msl_altitude = packet_in.msl_altitude; + packet1.ref_pressure = packet_in.ref_pressure; + packet1.ref_altitude = packet_in.ref_altitude; + packet1.ref_temperature = packet_in.ref_temperature; + packet1.msl_pressure = packet_in.msl_pressure; + packet1.msl_temperature = packet_in.msl_temperature; + packet1.dpl_altitude = packet_in.dpl_altitude; + packet1.state = packet_in.state; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_ADA_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ADA_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ada_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_ada_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ada_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.state , packet1.kalman_x0 , packet1.kalman_x1 , packet1.kalman_x2 , packet1.vertical_speed , packet1.msl_altitude , packet1.ref_pressure , packet1.ref_altitude , packet1.ref_temperature , packet1.msl_pressure , packet1.msl_temperature , packet1.dpl_altitude ); + mavlink_msg_ada_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ada_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.state , packet1.kalman_x0 , packet1.kalman_x1 , packet1.kalman_x2 , packet1.vertical_speed , packet1.msl_altitude , packet1.ref_pressure , packet1.ref_altitude , packet1.ref_temperature , packet1.msl_pressure , packet1.msl_temperature , packet1.dpl_altitude ); + mavlink_msg_ada_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_ada_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ada_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.state , packet1.kalman_x0 , packet1.kalman_x1 , packet1.kalman_x2 , packet1.vertical_speed , packet1.msl_altitude , packet1.ref_pressure , packet1.ref_altitude , packet1.ref_temperature , packet1.msl_pressure , packet1.msl_temperature , packet1.dpl_altitude ); + mavlink_msg_ada_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("ADA_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ADA_TM) != NULL); +#endif +} + +static void mavlink_test_nas_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_NAS_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_nas_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,521.0,233 + }; + mavlink_nas_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.nas_n = packet_in.nas_n; + packet1.nas_e = packet_in.nas_e; + packet1.nas_d = packet_in.nas_d; + packet1.nas_vn = packet_in.nas_vn; + packet1.nas_ve = packet_in.nas_ve; + packet1.nas_vd = packet_in.nas_vd; + packet1.nas_qx = packet_in.nas_qx; + packet1.nas_qy = packet_in.nas_qy; + packet1.nas_qz = packet_in.nas_qz; + packet1.nas_qw = packet_in.nas_qw; + packet1.nas_bias_x = packet_in.nas_bias_x; + packet1.nas_bias_y = packet_in.nas_bias_y; + packet1.nas_bias_z = packet_in.nas_bias_z; + packet1.ref_pressure = packet_in.ref_pressure; + packet1.ref_temperature = packet_in.ref_temperature; + packet1.ref_latitude = packet_in.ref_latitude; + packet1.ref_longitude = packet_in.ref_longitude; + packet1.state = packet_in.state; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_NAS_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_NAS_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_nas_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_nas_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_nas_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.state , packet1.nas_n , packet1.nas_e , packet1.nas_d , packet1.nas_vn , packet1.nas_ve , packet1.nas_vd , packet1.nas_qx , packet1.nas_qy , packet1.nas_qz , packet1.nas_qw , packet1.nas_bias_x , packet1.nas_bias_y , packet1.nas_bias_z , packet1.ref_pressure , packet1.ref_temperature , packet1.ref_latitude , packet1.ref_longitude ); + mavlink_msg_nas_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_nas_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.state , packet1.nas_n , packet1.nas_e , packet1.nas_d , packet1.nas_vn , packet1.nas_ve , packet1.nas_vd , packet1.nas_qx , packet1.nas_qy , packet1.nas_qz , packet1.nas_qw , packet1.nas_bias_x , packet1.nas_bias_y , packet1.nas_bias_z , packet1.ref_pressure , packet1.ref_temperature , packet1.ref_latitude , packet1.ref_longitude ); + mavlink_msg_nas_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_nas_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_nas_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.state , packet1.nas_n , packet1.nas_e , packet1.nas_d , packet1.nas_vn , packet1.nas_ve , packet1.nas_vd , packet1.nas_qx , packet1.nas_qy , packet1.nas_qz , packet1.nas_qw , packet1.nas_bias_x , packet1.nas_bias_y , packet1.nas_bias_z , packet1.ref_pressure , packet1.ref_temperature , packet1.ref_latitude , packet1.ref_longitude ); + mavlink_msg_nas_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("NAS_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_NAS_TM) != NULL); +#endif +} + +static void mavlink_test_mea_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MEA_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_mea_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,89 + }; + mavlink_mea_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.kalman_x0 = packet_in.kalman_x0; + packet1.kalman_x1 = packet_in.kalman_x1; + packet1.kalman_x2 = packet_in.kalman_x2; + packet1.mass = packet_in.mass; + packet1.corrected_pressure = packet_in.corrected_pressure; + packet1.state = packet_in.state; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_MEA_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MEA_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_mea_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_mea_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_mea_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.state , packet1.kalman_x0 , packet1.kalman_x1 , packet1.kalman_x2 , packet1.mass , packet1.corrected_pressure ); + mavlink_msg_mea_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_mea_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.state , packet1.kalman_x0 , packet1.kalman_x1 , packet1.kalman_x2 , packet1.mass , packet1.corrected_pressure ); + mavlink_msg_mea_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_mea_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_mea_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.state , packet1.kalman_x0 , packet1.kalman_x1 , packet1.kalman_x2 , packet1.mass , packet1.corrected_pressure ); + mavlink_msg_mea_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("MEA_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MEA_TM) != NULL); +#endif +} + +static void mavlink_test_rocket_flight_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ROCKET_FLIGHT_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_rocket_flight_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,521.0,549.0,577.0,605.0,633.0,661.0,689.0,717.0,745.0,773.0,801.0,829.0,857.0,885.0,913.0,941.0,969.0,997.0,1025.0,1053.0,1081.0,1109.0,1137.0,241,52,119,186,253,64,131,198,9,76,143,210 + }; + mavlink_rocket_flight_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.pressure_ada = packet_in.pressure_ada; + packet1.pressure_digi = packet_in.pressure_digi; + packet1.pressure_static = packet_in.pressure_static; + packet1.pressure_dpl = packet_in.pressure_dpl; + packet1.airspeed_pitot = packet_in.airspeed_pitot; + packet1.altitude_agl = packet_in.altitude_agl; + packet1.ada_vert_speed = packet_in.ada_vert_speed; + packet1.mea_mass = packet_in.mea_mass; + packet1.acc_x = packet_in.acc_x; + packet1.acc_y = packet_in.acc_y; + packet1.acc_z = packet_in.acc_z; + packet1.gyro_x = packet_in.gyro_x; + packet1.gyro_y = packet_in.gyro_y; + packet1.gyro_z = packet_in.gyro_z; + packet1.mag_x = packet_in.mag_x; + packet1.mag_y = packet_in.mag_y; + packet1.mag_z = packet_in.mag_z; + packet1.gps_lat = packet_in.gps_lat; + packet1.gps_lon = packet_in.gps_lon; + packet1.gps_alt = packet_in.gps_alt; + packet1.abk_angle = packet_in.abk_angle; + packet1.nas_n = packet_in.nas_n; + packet1.nas_e = packet_in.nas_e; + packet1.nas_d = packet_in.nas_d; + packet1.nas_vn = packet_in.nas_vn; + packet1.nas_ve = packet_in.nas_ve; + packet1.nas_vd = packet_in.nas_vd; + packet1.nas_qx = packet_in.nas_qx; + packet1.nas_qy = packet_in.nas_qy; + packet1.nas_qz = packet_in.nas_qz; + packet1.nas_qw = packet_in.nas_qw; + packet1.nas_bias_x = packet_in.nas_bias_x; + packet1.nas_bias_y = packet_in.nas_bias_y; + packet1.nas_bias_z = packet_in.nas_bias_z; + packet1.pin_quick_connector = packet_in.pin_quick_connector; + packet1.battery_voltage = packet_in.battery_voltage; + packet1.cam_battery_voltage = packet_in.cam_battery_voltage; + packet1.current_consumption = packet_in.current_consumption; + packet1.temperature = packet_in.temperature; + packet1.ada_state = packet_in.ada_state; + packet1.fmm_state = packet_in.fmm_state; + packet1.dpl_state = packet_in.dpl_state; + packet1.abk_state = packet_in.abk_state; + packet1.nas_state = packet_in.nas_state; + packet1.mea_state = packet_in.mea_state; + packet1.gps_fix = packet_in.gps_fix; + packet1.pin_launch = packet_in.pin_launch; + packet1.pin_nosecone = packet_in.pin_nosecone; + packet1.pin_expulsion = packet_in.pin_expulsion; + packet1.cutter_presence = packet_in.cutter_presence; + packet1.logger_error = packet_in.logger_error; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ROCKET_FLIGHT_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_rocket_flight_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_rocket_flight_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_rocket_flight_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.ada_state , packet1.fmm_state , packet1.dpl_state , packet1.abk_state , packet1.nas_state , packet1.mea_state , packet1.pressure_ada , packet1.pressure_digi , packet1.pressure_static , packet1.pressure_dpl , packet1.airspeed_pitot , packet1.altitude_agl , packet1.ada_vert_speed , packet1.mea_mass , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.gyro_x , packet1.gyro_y , packet1.gyro_z , packet1.mag_x , packet1.mag_y , packet1.mag_z , packet1.gps_fix , packet1.gps_lat , packet1.gps_lon , packet1.gps_alt , packet1.abk_angle , packet1.nas_n , packet1.nas_e , packet1.nas_d , packet1.nas_vn , packet1.nas_ve , packet1.nas_vd , packet1.nas_qx , packet1.nas_qy , packet1.nas_qz , packet1.nas_qw , packet1.nas_bias_x , packet1.nas_bias_y , packet1.nas_bias_z , packet1.pin_quick_connector , packet1.pin_launch , packet1.pin_nosecone , packet1.pin_expulsion , packet1.cutter_presence , packet1.battery_voltage , packet1.cam_battery_voltage , packet1.current_consumption , packet1.temperature , packet1.logger_error ); + mavlink_msg_rocket_flight_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_rocket_flight_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.ada_state , packet1.fmm_state , packet1.dpl_state , packet1.abk_state , packet1.nas_state , packet1.mea_state , packet1.pressure_ada , packet1.pressure_digi , packet1.pressure_static , packet1.pressure_dpl , packet1.airspeed_pitot , packet1.altitude_agl , packet1.ada_vert_speed , packet1.mea_mass , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.gyro_x , packet1.gyro_y , packet1.gyro_z , packet1.mag_x , packet1.mag_y , packet1.mag_z , packet1.gps_fix , packet1.gps_lat , packet1.gps_lon , packet1.gps_alt , packet1.abk_angle , packet1.nas_n , packet1.nas_e , packet1.nas_d , packet1.nas_vn , packet1.nas_ve , packet1.nas_vd , packet1.nas_qx , packet1.nas_qy , packet1.nas_qz , packet1.nas_qw , packet1.nas_bias_x , packet1.nas_bias_y , packet1.nas_bias_z , packet1.pin_quick_connector , packet1.pin_launch , packet1.pin_nosecone , packet1.pin_expulsion , packet1.cutter_presence , packet1.battery_voltage , packet1.cam_battery_voltage , packet1.current_consumption , packet1.temperature , packet1.logger_error ); + mavlink_msg_rocket_flight_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_rocket_flight_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_rocket_flight_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.ada_state , packet1.fmm_state , packet1.dpl_state , packet1.abk_state , packet1.nas_state , packet1.mea_state , packet1.pressure_ada , packet1.pressure_digi , packet1.pressure_static , packet1.pressure_dpl , packet1.airspeed_pitot , packet1.altitude_agl , packet1.ada_vert_speed , packet1.mea_mass , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.gyro_x , packet1.gyro_y , packet1.gyro_z , packet1.mag_x , packet1.mag_y , packet1.mag_z , packet1.gps_fix , packet1.gps_lat , packet1.gps_lon , packet1.gps_alt , packet1.abk_angle , packet1.nas_n , packet1.nas_e , packet1.nas_d , packet1.nas_vn , packet1.nas_ve , packet1.nas_vd , packet1.nas_qx , packet1.nas_qy , packet1.nas_qz , packet1.nas_qw , packet1.nas_bias_x , packet1.nas_bias_y , packet1.nas_bias_z , packet1.pin_quick_connector , packet1.pin_launch , packet1.pin_nosecone , packet1.pin_expulsion , packet1.cutter_presence , packet1.battery_voltage , packet1.cam_battery_voltage , packet1.current_consumption , packet1.temperature , packet1.logger_error ); + mavlink_msg_rocket_flight_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("ROCKET_FLIGHT_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ROCKET_FLIGHT_TM) != NULL); +#endif +} + +static void mavlink_test_payload_flight_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_payload_flight_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,521.0,549.0,577.0,605.0,633.0,661.0,689.0,717.0,745.0,773.0,801.0,829.0,857.0,885.0,913.0,941.0,969.0,997.0,1025.0,1053.0,1081.0,217,28,95,162,229,40,107 + }; + mavlink_payload_flight_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.pressure_digi = packet_in.pressure_digi; + packet1.pressure_static = packet_in.pressure_static; + packet1.airspeed_pitot = packet_in.airspeed_pitot; + packet1.altitude_agl = packet_in.altitude_agl; + packet1.acc_x = packet_in.acc_x; + packet1.acc_y = packet_in.acc_y; + packet1.acc_z = packet_in.acc_z; + packet1.gyro_x = packet_in.gyro_x; + packet1.gyro_y = packet_in.gyro_y; + packet1.gyro_z = packet_in.gyro_z; + packet1.mag_x = packet_in.mag_x; + packet1.mag_y = packet_in.mag_y; + packet1.mag_z = packet_in.mag_z; + packet1.gps_lat = packet_in.gps_lat; + packet1.gps_lon = packet_in.gps_lon; + packet1.gps_alt = packet_in.gps_alt; + packet1.left_servo_angle = packet_in.left_servo_angle; + packet1.right_servo_angle = packet_in.right_servo_angle; + packet1.nas_n = packet_in.nas_n; + packet1.nas_e = packet_in.nas_e; + packet1.nas_d = packet_in.nas_d; + packet1.nas_vn = packet_in.nas_vn; + packet1.nas_ve = packet_in.nas_ve; + packet1.nas_vd = packet_in.nas_vd; + packet1.nas_qx = packet_in.nas_qx; + packet1.nas_qy = packet_in.nas_qy; + packet1.nas_qz = packet_in.nas_qz; + packet1.nas_qw = packet_in.nas_qw; + packet1.nas_bias_x = packet_in.nas_bias_x; + packet1.nas_bias_y = packet_in.nas_bias_y; + packet1.nas_bias_z = packet_in.nas_bias_z; + packet1.wes_n = packet_in.wes_n; + packet1.wes_e = packet_in.wes_e; + packet1.battery_voltage = packet_in.battery_voltage; + packet1.cam_battery_voltage = packet_in.cam_battery_voltage; + packet1.current_consumption = packet_in.current_consumption; + packet1.temperature = packet_in.temperature; + packet1.fmm_state = packet_in.fmm_state; + packet1.nas_state = packet_in.nas_state; + packet1.wes_state = packet_in.wes_state; + packet1.gps_fix = packet_in.gps_fix; + packet1.pin_nosecone = packet_in.pin_nosecone; + packet1.cutter_presence = packet_in.cutter_presence; + packet1.logger_error = packet_in.logger_error; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_payload_flight_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_payload_flight_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_payload_flight_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.fmm_state , packet1.nas_state , packet1.wes_state , packet1.pressure_digi , packet1.pressure_static , packet1.airspeed_pitot , packet1.altitude_agl , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.gyro_x , packet1.gyro_y , packet1.gyro_z , packet1.mag_x , packet1.mag_y , packet1.mag_z , packet1.gps_fix , packet1.gps_lat , packet1.gps_lon , packet1.gps_alt , packet1.left_servo_angle , packet1.right_servo_angle , packet1.nas_n , packet1.nas_e , packet1.nas_d , packet1.nas_vn , packet1.nas_ve , packet1.nas_vd , packet1.nas_qx , packet1.nas_qy , packet1.nas_qz , packet1.nas_qw , packet1.nas_bias_x , packet1.nas_bias_y , packet1.nas_bias_z , packet1.wes_n , packet1.wes_e , packet1.pin_nosecone , packet1.battery_voltage , packet1.cam_battery_voltage , packet1.current_consumption , packet1.cutter_presence , packet1.temperature , packet1.logger_error ); + mavlink_msg_payload_flight_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_payload_flight_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.fmm_state , packet1.nas_state , packet1.wes_state , packet1.pressure_digi , packet1.pressure_static , packet1.airspeed_pitot , packet1.altitude_agl , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.gyro_x , packet1.gyro_y , packet1.gyro_z , packet1.mag_x , packet1.mag_y , packet1.mag_z , packet1.gps_fix , packet1.gps_lat , packet1.gps_lon , packet1.gps_alt , packet1.left_servo_angle , packet1.right_servo_angle , packet1.nas_n , packet1.nas_e , packet1.nas_d , packet1.nas_vn , packet1.nas_ve , packet1.nas_vd , packet1.nas_qx , packet1.nas_qy , packet1.nas_qz , packet1.nas_qw , packet1.nas_bias_x , packet1.nas_bias_y , packet1.nas_bias_z , packet1.wes_n , packet1.wes_e , packet1.pin_nosecone , packet1.battery_voltage , packet1.cam_battery_voltage , packet1.current_consumption , packet1.cutter_presence , packet1.temperature , packet1.logger_error ); + mavlink_msg_payload_flight_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_payload_flight_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_payload_flight_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.fmm_state , packet1.nas_state , packet1.wes_state , packet1.pressure_digi , packet1.pressure_static , packet1.airspeed_pitot , packet1.altitude_agl , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.gyro_x , packet1.gyro_y , packet1.gyro_z , packet1.mag_x , packet1.mag_y , packet1.mag_z , packet1.gps_fix , packet1.gps_lat , packet1.gps_lon , packet1.gps_alt , packet1.left_servo_angle , packet1.right_servo_angle , packet1.nas_n , packet1.nas_e , packet1.nas_d , packet1.nas_vn , packet1.nas_ve , packet1.nas_vd , packet1.nas_qx , packet1.nas_qy , packet1.nas_qz , packet1.nas_qw , packet1.nas_bias_x , packet1.nas_bias_y , packet1.nas_bias_z , packet1.wes_n , packet1.wes_e , packet1.pin_nosecone , packet1.battery_voltage , packet1.cam_battery_voltage , packet1.current_consumption , packet1.cutter_presence , packet1.temperature , packet1.logger_error ); + mavlink_msg_payload_flight_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("PAYLOAD_FLIGHT_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PAYLOAD_FLIGHT_TM) != NULL); +#endif +} + +static void mavlink_test_rocket_stats_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ROCKET_STATS_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_rocket_stats_tm_t packet_in = { + 93372036854775807ULL,93372036854776311ULL,93372036854776815ULL,93372036854777319ULL,93372036854777823ULL,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,521.0,549.0,577.0,605.0,963502040 + }; + mavlink_rocket_stats_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.liftoff_ts = packet_in.liftoff_ts; + packet1.liftoff_max_acc_ts = packet_in.liftoff_max_acc_ts; + packet1.dpl_ts = packet_in.dpl_ts; + packet1.max_z_speed_ts = packet_in.max_z_speed_ts; + packet1.apogee_ts = packet_in.apogee_ts; + packet1.liftoff_max_acc = packet_in.liftoff_max_acc; + packet1.dpl_max_acc = packet_in.dpl_max_acc; + packet1.max_z_speed = packet_in.max_z_speed; + packet1.max_airspeed_pitot = packet_in.max_airspeed_pitot; + packet1.max_speed_altitude = packet_in.max_speed_altitude; + packet1.apogee_lat = packet_in.apogee_lat; + packet1.apogee_lon = packet_in.apogee_lon; + packet1.apogee_alt = packet_in.apogee_alt; + packet1.min_pressure = packet_in.min_pressure; + packet1.ada_min_pressure = packet_in.ada_min_pressure; + packet1.dpl_vane_max_pressure = packet_in.dpl_vane_max_pressure; + packet1.cpu_load = packet_in.cpu_load; + packet1.free_heap = packet_in.free_heap; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ROCKET_STATS_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_rocket_stats_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_rocket_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_rocket_stats_tm_pack(system_id, component_id, &msg , packet1.liftoff_ts , packet1.liftoff_max_acc_ts , packet1.liftoff_max_acc , packet1.dpl_ts , packet1.dpl_max_acc , packet1.max_z_speed_ts , packet1.max_z_speed , packet1.max_airspeed_pitot , packet1.max_speed_altitude , packet1.apogee_ts , packet1.apogee_lat , packet1.apogee_lon , packet1.apogee_alt , packet1.min_pressure , packet1.ada_min_pressure , packet1.dpl_vane_max_pressure , packet1.cpu_load , packet1.free_heap ); + mavlink_msg_rocket_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_rocket_stats_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.liftoff_ts , packet1.liftoff_max_acc_ts , packet1.liftoff_max_acc , packet1.dpl_ts , packet1.dpl_max_acc , packet1.max_z_speed_ts , packet1.max_z_speed , packet1.max_airspeed_pitot , packet1.max_speed_altitude , packet1.apogee_ts , packet1.apogee_lat , packet1.apogee_lon , packet1.apogee_alt , packet1.min_pressure , packet1.ada_min_pressure , packet1.dpl_vane_max_pressure , packet1.cpu_load , packet1.free_heap ); + mavlink_msg_rocket_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_rocket_stats_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_rocket_stats_tm_send(MAVLINK_COMM_1 , packet1.liftoff_ts , packet1.liftoff_max_acc_ts , packet1.liftoff_max_acc , packet1.dpl_ts , packet1.dpl_max_acc , packet1.max_z_speed_ts , packet1.max_z_speed , packet1.max_airspeed_pitot , packet1.max_speed_altitude , packet1.apogee_ts , packet1.apogee_lat , packet1.apogee_lon , packet1.apogee_alt , packet1.min_pressure , packet1.ada_min_pressure , packet1.dpl_vane_max_pressure , packet1.cpu_load , packet1.free_heap ); + mavlink_msg_rocket_stats_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("ROCKET_STATS_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ROCKET_STATS_TM) != NULL); +#endif +} + +static void mavlink_test_payload_stats_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PAYLOAD_STATS_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_payload_stats_tm_t packet_in = { + 93372036854775807ULL,93372036854776311ULL,93372036854776815ULL,93372036854777319ULL,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,963501208 + }; + mavlink_payload_stats_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.liftoff_max_acc_ts = packet_in.liftoff_max_acc_ts; + packet1.dpl_ts = packet_in.dpl_ts; + packet1.max_z_speed_ts = packet_in.max_z_speed_ts; + packet1.apogee_ts = packet_in.apogee_ts; + packet1.liftoff_max_acc = packet_in.liftoff_max_acc; + packet1.dpl_max_acc = packet_in.dpl_max_acc; + packet1.max_z_speed = packet_in.max_z_speed; + packet1.max_airspeed_pitot = packet_in.max_airspeed_pitot; + packet1.max_speed_altitude = packet_in.max_speed_altitude; + packet1.apogee_lat = packet_in.apogee_lat; + packet1.apogee_lon = packet_in.apogee_lon; + packet1.apogee_alt = packet_in.apogee_alt; + packet1.min_pressure = packet_in.min_pressure; + packet1.cpu_load = packet_in.cpu_load; + packet1.free_heap = packet_in.free_heap; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PAYLOAD_STATS_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_payload_stats_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_payload_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_payload_stats_tm_pack(system_id, component_id, &msg , packet1.liftoff_max_acc_ts , packet1.liftoff_max_acc , packet1.dpl_ts , packet1.dpl_max_acc , packet1.max_z_speed_ts , packet1.max_z_speed , packet1.max_airspeed_pitot , packet1.max_speed_altitude , packet1.apogee_ts , packet1.apogee_lat , packet1.apogee_lon , packet1.apogee_alt , packet1.min_pressure , packet1.cpu_load , packet1.free_heap ); + mavlink_msg_payload_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_payload_stats_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.liftoff_max_acc_ts , packet1.liftoff_max_acc , packet1.dpl_ts , packet1.dpl_max_acc , packet1.max_z_speed_ts , packet1.max_z_speed , packet1.max_airspeed_pitot , packet1.max_speed_altitude , packet1.apogee_ts , packet1.apogee_lat , packet1.apogee_lon , packet1.apogee_alt , packet1.min_pressure , packet1.cpu_load , packet1.free_heap ); + mavlink_msg_payload_stats_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_payload_stats_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_payload_stats_tm_send(MAVLINK_COMM_1 , packet1.liftoff_max_acc_ts , packet1.liftoff_max_acc , packet1.dpl_ts , packet1.dpl_max_acc , packet1.max_z_speed_ts , packet1.max_z_speed , packet1.max_airspeed_pitot , packet1.max_speed_altitude , packet1.apogee_ts , packet1.apogee_lat , packet1.apogee_lon , packet1.apogee_alt , packet1.min_pressure , packet1.cpu_load , packet1.free_heap ); + mavlink_msg_payload_stats_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("PAYLOAD_STATS_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PAYLOAD_STATS_TM) != NULL); +#endif +} + +static void mavlink_test_gse_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GSE_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_gse_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,101,168,235,46,113,180,247,58,125,192 + }; + mavlink_gse_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.loadcell_rocket = packet_in.loadcell_rocket; + packet1.loadcell_vessel = packet_in.loadcell_vessel; + packet1.filling_pressure = packet_in.filling_pressure; + packet1.vessel_pressure = packet_in.vessel_pressure; + packet1.battery_voltage = packet_in.battery_voltage; + packet1.current_consumption = packet_in.current_consumption; + packet1.arming_state = packet_in.arming_state; + packet1.filling_valve_state = packet_in.filling_valve_state; + packet1.venting_valve_state = packet_in.venting_valve_state; + packet1.release_valve_state = packet_in.release_valve_state; + packet1.main_valve_state = packet_in.main_valve_state; + packet1.ignition_state = packet_in.ignition_state; + packet1.tars_state = packet_in.tars_state; + packet1.main_board_status = packet_in.main_board_status; + packet1.payload_board_status = packet_in.payload_board_status; + packet1.motor_board_status = packet_in.motor_board_status; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_GSE_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GSE_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_gse_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_gse_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_gse_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.loadcell_rocket , packet1.loadcell_vessel , packet1.filling_pressure , packet1.vessel_pressure , packet1.arming_state , packet1.filling_valve_state , packet1.venting_valve_state , packet1.release_valve_state , packet1.main_valve_state , packet1.ignition_state , packet1.tars_state , packet1.battery_voltage , packet1.current_consumption , packet1.main_board_status , packet1.payload_board_status , packet1.motor_board_status ); + mavlink_msg_gse_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_gse_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.loadcell_rocket , packet1.loadcell_vessel , packet1.filling_pressure , packet1.vessel_pressure , packet1.arming_state , packet1.filling_valve_state , packet1.venting_valve_state , packet1.release_valve_state , packet1.main_valve_state , packet1.ignition_state , packet1.tars_state , packet1.battery_voltage , packet1.current_consumption , packet1.main_board_status , packet1.payload_board_status , packet1.motor_board_status ); + mavlink_msg_gse_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_gse_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_gse_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.loadcell_rocket , packet1.loadcell_vessel , packet1.filling_pressure , packet1.vessel_pressure , packet1.arming_state , packet1.filling_valve_state , packet1.venting_valve_state , packet1.release_valve_state , packet1.main_valve_state , packet1.ignition_state , packet1.tars_state , packet1.battery_voltage , packet1.current_consumption , packet1.main_board_status , packet1.payload_board_status , packet1.motor_board_status ); + mavlink_msg_gse_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("GSE_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GSE_TM) != NULL); +#endif +} + +static void mavlink_test_motor_tm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MOTOR_TM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_motor_tm_t packet_in = { + 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,101,168,235 + }; + mavlink_motor_tm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.top_tank_pressure = packet_in.top_tank_pressure; + packet1.bottom_tank_pressure = packet_in.bottom_tank_pressure; + packet1.combustion_chamber_pressure = packet_in.combustion_chamber_pressure; + packet1.tank_temperature = packet_in.tank_temperature; + packet1.battery_voltage = packet_in.battery_voltage; + packet1.current_consumption = packet_in.current_consumption; + packet1.floating_level = packet_in.floating_level; + packet1.main_valve_state = packet_in.main_valve_state; + packet1.venting_valve_state = packet_in.venting_valve_state; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MOTOR_TM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_motor_tm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_motor_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_motor_tm_pack(system_id, component_id, &msg , packet1.timestamp , packet1.top_tank_pressure , packet1.bottom_tank_pressure , packet1.combustion_chamber_pressure , packet1.floating_level , packet1.tank_temperature , packet1.main_valve_state , packet1.venting_valve_state , packet1.battery_voltage , packet1.current_consumption ); + mavlink_msg_motor_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_motor_tm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.top_tank_pressure , packet1.bottom_tank_pressure , packet1.combustion_chamber_pressure , packet1.floating_level , packet1.tank_temperature , packet1.main_valve_state , packet1.venting_valve_state , packet1.battery_voltage , packet1.current_consumption ); + mavlink_msg_motor_tm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_motor_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_motor_tm_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.top_tank_pressure , packet1.bottom_tank_pressure , packet1.combustion_chamber_pressure , packet1.floating_level , packet1.tank_temperature , packet1.main_valve_state , packet1.venting_valve_state , packet1.battery_voltage , packet1.current_consumption ); + mavlink_msg_motor_tm_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + +#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO + MAVLINK_ASSERT(mavlink_get_message_info_by_name("MOTOR_TM") != NULL); + MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MOTOR_TM) != NULL); +#endif +} + +static void mavlink_test_lyra(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ + mavlink_test_ping_tc(system_id, component_id, last_msg); + mavlink_test_command_tc(system_id, component_id, last_msg); + mavlink_test_system_tm_request_tc(system_id, component_id, last_msg); + mavlink_test_sensor_tm_request_tc(system_id, component_id, last_msg); + mavlink_test_servo_tm_request_tc(system_id, component_id, last_msg); + mavlink_test_set_servo_angle_tc(system_id, component_id, last_msg); + mavlink_test_wiggle_servo_tc(system_id, component_id, last_msg); + mavlink_test_reset_servo_tc(system_id, component_id, last_msg); + mavlink_test_set_reference_altitude_tc(system_id, component_id, last_msg); + mavlink_test_set_reference_temperature_tc(system_id, component_id, last_msg); + mavlink_test_set_orientation_tc(system_id, component_id, last_msg); + mavlink_test_set_coordinates_tc(system_id, component_id, last_msg); + mavlink_test_raw_event_tc(system_id, component_id, last_msg); + mavlink_test_set_deployment_altitude_tc(system_id, component_id, last_msg); + mavlink_test_set_target_coordinates_tc(system_id, component_id, last_msg); + mavlink_test_set_algorithm_tc(system_id, component_id, last_msg); + mavlink_test_set_atomic_valve_timing_tc(system_id, component_id, last_msg); + mavlink_test_set_valve_maximum_aperture_tc(system_id, component_id, last_msg); + mavlink_test_conrig_state_tc(system_id, component_id, last_msg); + mavlink_test_set_ignition_time_tc(system_id, component_id, last_msg); + mavlink_test_ack_tm(system_id, component_id, last_msg); + mavlink_test_nack_tm(system_id, component_id, last_msg); + mavlink_test_gps_tm(system_id, component_id, last_msg); + mavlink_test_imu_tm(system_id, component_id, last_msg); + mavlink_test_pressure_tm(system_id, component_id, last_msg); + mavlink_test_adc_tm(system_id, component_id, last_msg); + mavlink_test_voltage_tm(system_id, component_id, last_msg); + mavlink_test_current_tm(system_id, component_id, last_msg); + mavlink_test_temp_tm(system_id, component_id, last_msg); + mavlink_test_load_tm(system_id, component_id, last_msg); + mavlink_test_attitude_tm(system_id, component_id, last_msg); + mavlink_test_sensor_state_tm(system_id, component_id, last_msg); + mavlink_test_servo_tm(system_id, component_id, last_msg); + mavlink_test_pin_tm(system_id, component_id, last_msg); + mavlink_test_receiver_tm(system_id, component_id, last_msg); + mavlink_test_sys_tm(system_id, component_id, last_msg); + mavlink_test_fsm_tm(system_id, component_id, last_msg); + mavlink_test_logger_tm(system_id, component_id, last_msg); + mavlink_test_mavlink_stats_tm(system_id, component_id, last_msg); + mavlink_test_task_stats_tm(system_id, component_id, last_msg); + mavlink_test_ada_tm(system_id, component_id, last_msg); + mavlink_test_nas_tm(system_id, component_id, last_msg); + mavlink_test_mea_tm(system_id, component_id, last_msg); + mavlink_test_rocket_flight_tm(system_id, component_id, last_msg); + mavlink_test_payload_flight_tm(system_id, component_id, last_msg); + mavlink_test_rocket_stats_tm(system_id, component_id, last_msg); + mavlink_test_payload_stats_tm(system_id, component_id, last_msg); + mavlink_test_gse_tm(system_id, component_id, last_msg); + mavlink_test_motor_tm(system_id, component_id, last_msg); +} + +#ifdef __cplusplus +} +#endif // __cplusplus +#endif // LYRA_TESTSUITE_H diff --git a/mavlink_lib/lyra/version.h b/mavlink_lib/lyra/version.h new file mode 100644 index 0000000000000000000000000000000000000000..299cd5c9b19492e355307435457e9ebad960fbaf --- /dev/null +++ b/mavlink_lib/lyra/version.h @@ -0,0 +1,14 @@ +/** @file + * @brief MAVLink comm protocol built from lyra.xml + * @see http://mavlink.org + */ +#pragma once + +#ifndef MAVLINK_VERSION_H +#define MAVLINK_VERSION_H + +#define MAVLINK_BUILD_DATE "Wed Nov 29 2023" +#define MAVLINK_WIRE_PROTOCOL_VERSION "1.0" +#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 176 + +#endif // MAVLINK_VERSION_H