#pragma once #include #include #include #define VK_RADAR_RADAR_TERRAINPROFILE_MAX_SIZE 56 #define VK_RADAR_RADAR_TERRAINPROFILE_SIGNATURE (0xBD5E87C6854AE651ULL) #define VK_RADAR_RADAR_TERRAINPROFILE_ID 24002 #if defined(__cplusplus) && defined(DRONECAN_CXX_WRAPPERS) class vk_radar_radar_TerrainProfile_cxx_iface; #endif struct vk_radar_radar_TerrainProfile { #if defined(__cplusplus) && defined(DRONECAN_CXX_WRAPPERS) using cxx_iface = vk_radar_radar_TerrainProfile_cxx_iface; #endif uint8_t count; uint8_t step_cm; uint32_t valid_mask; int16_t height_cm[25]; }; #ifdef __cplusplus extern "C" { #endif uint32_t _vk_radar_radar_TerrainProfile_encode(struct vk_radar_radar_TerrainProfile* msg, uint8_t* buffer #if CANARD_ENABLE_TAO_OPTION , bool tao #endif ); bool _vk_radar_radar_TerrainProfile_decode(const CanardRxTransfer* transfer, struct vk_radar_radar_TerrainProfile* msg); static inline uint32_t vk_radar_radar_TerrainProfile_encode(struct vk_radar_radar_TerrainProfile* msg, uint8_t* buffer #if CANARD_ENABLE_TAO_OPTION , bool tao #endif ) { return _vk_radar_radar_TerrainProfile_encode(msg, buffer #if CANARD_ENABLE_TAO_OPTION , tao #endif ); } static inline bool vk_radar_radar_TerrainProfile_decode(const CanardRxTransfer* transfer, struct vk_radar_radar_TerrainProfile* msg) { return _vk_radar_radar_TerrainProfile_decode(transfer, msg); } #if defined(CANARD_DSDLC_INTERNAL) static inline void __vk_radar_radar_TerrainProfile_encode(uint8_t* buffer, uint32_t* bit_ofs, struct vk_radar_radar_TerrainProfile* msg, bool tao); static inline bool __vk_radar_radar_TerrainProfile_decode(const CanardRxTransfer* transfer, uint32_t* bit_ofs, struct vk_radar_radar_TerrainProfile* msg, bool tao); void __vk_radar_radar_TerrainProfile_encode(uint8_t* buffer, uint32_t* bit_ofs, struct vk_radar_radar_TerrainProfile* msg, bool tao) { (void)buffer; (void)bit_ofs; (void)msg; (void)tao; canardEncodeScalar(buffer, *bit_ofs, 8, &msg->count); *bit_ofs += 8; canardEncodeScalar(buffer, *bit_ofs, 8, &msg->step_cm); *bit_ofs += 8; canardEncodeScalar(buffer, *bit_ofs, 32, &msg->valid_mask); *bit_ofs += 32; for (size_t i=0; i < 25; i++) { canardEncodeScalar(buffer, *bit_ofs, 16, &msg->height_cm[i]); *bit_ofs += 16; } } /* decode vk_radar_radar_TerrainProfile, return true on failure, false on success */ bool __vk_radar_radar_TerrainProfile_decode(const CanardRxTransfer* transfer, uint32_t* bit_ofs, struct vk_radar_radar_TerrainProfile* msg, bool tao) { (void)transfer; (void)bit_ofs; (void)msg; (void)tao; canardDecodeScalar(transfer, *bit_ofs, 8, false, &msg->count); *bit_ofs += 8; canardDecodeScalar(transfer, *bit_ofs, 8, false, &msg->step_cm); *bit_ofs += 8; canardDecodeScalar(transfer, *bit_ofs, 32, false, &msg->valid_mask); *bit_ofs += 32; for (size_t i=0; i < 25; i++) { canardDecodeScalar(transfer, *bit_ofs, 16, true, &msg->height_cm[i]); *bit_ofs += 16; } return false; /* success */ } #endif #ifdef CANARD_DSDLC_TEST_BUILD struct vk_radar_radar_TerrainProfile sample_vk_radar_radar_TerrainProfile_msg(void); #endif #ifdef __cplusplus } // extern "C" #ifdef DRONECAN_CXX_WRAPPERS #include BROADCAST_MESSAGE_CXX_IFACE(vk_radar_radar_TerrainProfile, VK_RADAR_RADAR_TERRAINPROFILE_ID, VK_RADAR_RADAR_TERRAINPROFILE_SIGNATURE, VK_RADAR_RADAR_TERRAINPROFILE_MAX_SIZE); #endif #endif