#pragma once #include #include #include #define VK_RADAR_RADAR_RADAROBSTACLE_MAX_SIZE 6 #define VK_RADAR_RADAR_RADAROBSTACLE_SIGNATURE (0x74F0B9D8D6BBA153ULL) #define VK_RADAR_RADAR_RADAROBSTACLE_ID 24001 #define VK_RADAR_RADAR_RADAROBSTACLE_READING_NO_DATA 0 #define VK_RADAR_RADAR_RADAROBSTACLE_READING_GOOD 1 #define VK_RADAR_RADAR_RADAROBSTACLE_READING_TOO_CLOSE 2 #define VK_RADAR_RADAR_RADAROBSTACLE_READING_TOO_FAR 3 #if defined(__cplusplus) && defined(DRONECAN_CXX_WRAPPERS) class vk_radar_radar_RadarObstacle_cxx_iface; #endif struct vk_radar_radar_RadarObstacle { #if defined(__cplusplus) && defined(DRONECAN_CXX_WRAPPERS) using cxx_iface = vk_radar_radar_RadarObstacle_cxx_iface; #endif uint8_t sensor_id; uint8_t reading_type; uint8_t quality; uint16_t distance_cm; int16_t obstacle_height_cm; }; #ifdef __cplusplus extern "C" { #endif uint32_t _vk_radar_radar_RadarObstacle_encode(struct vk_radar_radar_RadarObstacle* msg, uint8_t* buffer #if CANARD_ENABLE_TAO_OPTION , bool tao #endif ); bool _vk_radar_radar_RadarObstacle_decode(const CanardRxTransfer* transfer, struct vk_radar_radar_RadarObstacle* msg); static inline uint32_t vk_radar_radar_RadarObstacle_encode(struct vk_radar_radar_RadarObstacle* msg, uint8_t* buffer #if CANARD_ENABLE_TAO_OPTION , bool tao #endif ) { return _vk_radar_radar_RadarObstacle_encode(msg, buffer #if CANARD_ENABLE_TAO_OPTION , tao #endif ); } static inline bool vk_radar_radar_RadarObstacle_decode(const CanardRxTransfer* transfer, struct vk_radar_radar_RadarObstacle* msg) { return _vk_radar_radar_RadarObstacle_decode(transfer, msg); } #if defined(CANARD_DSDLC_INTERNAL) static inline void __vk_radar_radar_RadarObstacle_encode(uint8_t* buffer, uint32_t* bit_ofs, struct vk_radar_radar_RadarObstacle* msg, bool tao); static inline bool __vk_radar_radar_RadarObstacle_decode(const CanardRxTransfer* transfer, uint32_t* bit_ofs, struct vk_radar_radar_RadarObstacle* msg, bool tao); void __vk_radar_radar_RadarObstacle_encode(uint8_t* buffer, uint32_t* bit_ofs, struct vk_radar_radar_RadarObstacle* msg, bool tao) { (void)buffer; (void)bit_ofs; (void)msg; (void)tao; canardEncodeScalar(buffer, *bit_ofs, 8, &msg->sensor_id); *bit_ofs += 8; canardEncodeScalar(buffer, *bit_ofs, 2, &msg->reading_type); *bit_ofs += 2; canardEncodeScalar(buffer, *bit_ofs, 6, &msg->quality); *bit_ofs += 6; canardEncodeScalar(buffer, *bit_ofs, 16, &msg->distance_cm); *bit_ofs += 16; canardEncodeScalar(buffer, *bit_ofs, 16, &msg->obstacle_height_cm); *bit_ofs += 16; } /* decode vk_radar_radar_RadarObstacle, return true on failure, false on success */ bool __vk_radar_radar_RadarObstacle_decode(const CanardRxTransfer* transfer, uint32_t* bit_ofs, struct vk_radar_radar_RadarObstacle* msg, bool tao) { (void)transfer; (void)bit_ofs; (void)msg; (void)tao; canardDecodeScalar(transfer, *bit_ofs, 8, false, &msg->sensor_id); *bit_ofs += 8; canardDecodeScalar(transfer, *bit_ofs, 2, false, &msg->reading_type); *bit_ofs += 2; canardDecodeScalar(transfer, *bit_ofs, 6, false, &msg->quality); *bit_ofs += 6; canardDecodeScalar(transfer, *bit_ofs, 16, false, &msg->distance_cm); *bit_ofs += 16; canardDecodeScalar(transfer, *bit_ofs, 16, true, &msg->obstacle_height_cm); *bit_ofs += 16; return false; /* success */ } #endif #ifdef CANARD_DSDLC_TEST_BUILD struct vk_radar_radar_RadarObstacle sample_vk_radar_radar_RadarObstacle_msg(void); #endif #ifdef __cplusplus } // extern "C" #ifdef DRONECAN_CXX_WRAPPERS #include BROADCAST_MESSAGE_CXX_IFACE(vk_radar_radar_RadarObstacle, VK_RADAR_RADAR_RADAROBSTACLE_ID, VK_RADAR_RADAR_RADAROBSTACLE_SIGNATURE, VK_RADAR_RADAR_RADAROBSTACLE_MAX_SIZE); #endif #endif