#pragma once #include #include #include #define VK_RADAR_RADAR_VEHICLESTATE_MAX_SIZE 35 #define VK_RADAR_RADAR_VEHICLESTATE_SIGNATURE (0xA42468B97604FCBCULL) #define VK_RADAR_RADAR_VEHICLESTATE_ID 24000 #define VK_RADAR_RADAR_VEHICLESTATE_FLIGHT_STATE_GROUND 0 #define VK_RADAR_RADAR_VEHICLESTATE_FLIGHT_STATE_ARMED 1 #define VK_RADAR_RADAR_VEHICLESTATE_FLIGHT_STATE_FLYING 2 #define VK_RADAR_RADAR_VEHICLESTATE_FLIGHT_STATE_LANDING 3 #if defined(__cplusplus) && defined(DRONECAN_CXX_WRAPPERS) class vk_radar_radar_VehicleState_cxx_iface; #endif struct vk_radar_radar_VehicleState { #if defined(__cplusplus) && defined(DRONECAN_CXX_WRAPPERS) using cxx_iface = vk_radar_radar_VehicleState_cxx_iface; #endif uint32_t time_boot_ms; float q_enu_wxyz[4]; float p_enu_m[3]; uint16_t terrain_height_cm; uint8_t flight_state; uint8_t flags; }; #ifdef __cplusplus extern "C" { #endif uint32_t _vk_radar_radar_VehicleState_encode(struct vk_radar_radar_VehicleState* msg, uint8_t* buffer #if CANARD_ENABLE_TAO_OPTION , bool tao #endif ); bool _vk_radar_radar_VehicleState_decode(const CanardRxTransfer* transfer, struct vk_radar_radar_VehicleState* msg); static inline uint32_t vk_radar_radar_VehicleState_encode(struct vk_radar_radar_VehicleState* msg, uint8_t* buffer #if CANARD_ENABLE_TAO_OPTION , bool tao #endif ) { return _vk_radar_radar_VehicleState_encode(msg, buffer #if CANARD_ENABLE_TAO_OPTION , tao #endif ); } static inline bool vk_radar_radar_VehicleState_decode(const CanardRxTransfer* transfer, struct vk_radar_radar_VehicleState* msg) { return _vk_radar_radar_VehicleState_decode(transfer, msg); } #if defined(CANARD_DSDLC_INTERNAL) static inline void __vk_radar_radar_VehicleState_encode(uint8_t* buffer, uint32_t* bit_ofs, struct vk_radar_radar_VehicleState* msg, bool tao); static inline bool __vk_radar_radar_VehicleState_decode(const CanardRxTransfer* transfer, uint32_t* bit_ofs, struct vk_radar_radar_VehicleState* msg, bool tao); void __vk_radar_radar_VehicleState_encode(uint8_t* buffer, uint32_t* bit_ofs, struct vk_radar_radar_VehicleState* msg, bool tao) { (void)buffer; (void)bit_ofs; (void)msg; (void)tao; canardEncodeScalar(buffer, *bit_ofs, 32, &msg->time_boot_ms); *bit_ofs += 32; for (size_t i=0; i < 4; i++) { canardEncodeScalar(buffer, *bit_ofs, 32, &msg->q_enu_wxyz[i]); *bit_ofs += 32; } for (size_t i=0; i < 3; i++) { canardEncodeScalar(buffer, *bit_ofs, 32, &msg->p_enu_m[i]); *bit_ofs += 32; } canardEncodeScalar(buffer, *bit_ofs, 16, &msg->terrain_height_cm); *bit_ofs += 16; canardEncodeScalar(buffer, *bit_ofs, 3, &msg->flight_state); *bit_ofs += 3; canardEncodeScalar(buffer, *bit_ofs, 5, &msg->flags); *bit_ofs += 5; } /* decode vk_radar_radar_VehicleState, return true on failure, false on success */ bool __vk_radar_radar_VehicleState_decode(const CanardRxTransfer* transfer, uint32_t* bit_ofs, struct vk_radar_radar_VehicleState* msg, bool tao) { (void)transfer; (void)bit_ofs; (void)msg; (void)tao; canardDecodeScalar(transfer, *bit_ofs, 32, false, &msg->time_boot_ms); *bit_ofs += 32; for (size_t i=0; i < 4; i++) { canardDecodeScalar(transfer, *bit_ofs, 32, true, &msg->q_enu_wxyz[i]); *bit_ofs += 32; } for (size_t i=0; i < 3; i++) { canardDecodeScalar(transfer, *bit_ofs, 32, true, &msg->p_enu_m[i]); *bit_ofs += 32; } canardDecodeScalar(transfer, *bit_ofs, 16, false, &msg->terrain_height_cm); *bit_ofs += 16; canardDecodeScalar(transfer, *bit_ofs, 3, false, &msg->flight_state); *bit_ofs += 3; canardDecodeScalar(transfer, *bit_ofs, 5, false, &msg->flags); *bit_ofs += 5; return false; /* success */ } #endif #ifdef CANARD_DSDLC_TEST_BUILD struct vk_radar_radar_VehicleState sample_vk_radar_radar_VehicleState_msg(void); #endif #ifdef __cplusplus } // extern "C" #ifdef DRONECAN_CXX_WRAPPERS #include BROADCAST_MESSAGE_CXX_IFACE(vk_radar_radar_VehicleState, VK_RADAR_RADAR_VEHICLESTATE_ID, VK_RADAR_RADAR_VEHICLESTATE_SIGNATURE, VK_RADAR_RADAR_VEHICLESTATE_MAX_SIZE); #endif #endif