17 changed files with 1970 additions and 1592 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,227 @@
@@ -0,0 +1,227 @@
|
||||
/*
|
||||
* UAVCAN data structure definition for libcanard. |
||||
* |
||||
* Autogenerated, do not edit. |
||||
* |
||||
* Source file: E:\000_MyProjects\UAVCAN\libcanard_zrzk_new\dsdl_compiler\zrzk\equipment\range_sensor\26110.Proximity.uavcan |
||||
*/ |
||||
#include "node_proximity.h" |
||||
#include "canard.h" |
||||
|
||||
#ifndef CANARD_INTERNAL_SATURATE |
||||
#define CANARD_INTERNAL_SATURATE(x, max) ( ((x) > max) ? max : ( (-(x) > max) ? (-max) : (x) ) ); |
||||
#endif |
||||
|
||||
#ifndef CANARD_INTERNAL_SATURATE_UNSIGNED |
||||
#define CANARD_INTERNAL_SATURATE_UNSIGNED(x, max) ( ((x) >= max) ? max : (x) ); |
||||
#endif |
||||
|
||||
#if defined(__GNUC__) |
||||
# define CANARD_MAYBE_UNUSED(x) x __attribute__((unused)) |
||||
#else |
||||
# define CANARD_MAYBE_UNUSED(x) x |
||||
#endif |
||||
|
||||
/**
|
||||
* @brief zrzk_equipment_range_sensor_Proximity_encode_internal |
||||
* @param source : pointer to source data struct |
||||
* @param msg_buf: pointer to msg storage |
||||
* @param offset: bit offset to msg storage |
||||
* @param root_item: for detecting if TAO should be used |
||||
* @retval returns offset |
||||
*/ |
||||
uint32_t zrzk_equipment_range_sensor_Proximity_encode_internal(uavcan_proximity_t* source, |
||||
void* msg_buf, |
||||
uint32_t offset, |
||||
uint8_t CANARD_MAYBE_UNUSED(root_item)) |
||||
{ |
||||
canardEncodeScalar(msg_buf, offset, 8, (void*)&source->sensor_id); // 255
|
||||
offset += 8; |
||||
|
||||
source->sensor_type = CANARD_INTERNAL_SATURATE_UNSIGNED(source->sensor_type, 31) |
||||
canardEncodeScalar(msg_buf, offset, 5, (void*)&source->sensor_type); // 31
|
||||
offset += 5; |
||||
|
||||
source->reading_type = CANARD_INTERNAL_SATURATE_UNSIGNED(source->reading_type, 7) |
||||
canardEncodeScalar(msg_buf, offset, 3, (void*)&source->reading_type); // 7
|
||||
offset += 3; |
||||
|
||||
canardEncodeScalar(msg_buf, offset, 16, (void*)&source->d0); // 65535
|
||||
offset += 16; |
||||
|
||||
canardEncodeScalar(msg_buf, offset, 16, (void*)&source->d45); // 65535
|
||||
offset += 16; |
||||
|
||||
canardEncodeScalar(msg_buf, offset, 16, (void*)&source->d90); // 65535
|
||||
offset += 16; |
||||
|
||||
canardEncodeScalar(msg_buf, offset, 16, (void*)&source->d135); // 65535
|
||||
offset += 16; |
||||
|
||||
canardEncodeScalar(msg_buf, offset, 16, (void*)&source->d180); // 65535
|
||||
offset += 16; |
||||
|
||||
canardEncodeScalar(msg_buf, offset, 16, (void*)&source->d225); // 65535
|
||||
offset += 16; |
||||
|
||||
canardEncodeScalar(msg_buf, offset, 16, (void*)&source->d270); // 65535
|
||||
offset += 16; |
||||
|
||||
canardEncodeScalar(msg_buf, offset, 16, (void*)&source->d315); // 65535
|
||||
offset += 16; |
||||
|
||||
return offset; |
||||
} |
||||
|
||||
/**
|
||||
* @brief zrzk_equipment_range_sensor_Proximity_encode |
||||
* @param source : Pointer to source data struct |
||||
* @param msg_buf: Pointer to msg storage |
||||
* @retval returns message length as bytes |
||||
*/ |
||||
uint32_t zrzk_equipment_range_sensor_Proximity_encode(uavcan_proximity_t* source, void* msg_buf) |
||||
{ |
||||
uint32_t offset = 0; |
||||
|
||||
offset = zrzk_equipment_range_sensor_Proximity_encode_internal(source, msg_buf, offset, 1); |
||||
|
||||
return (offset + 7 ) / 8; |
||||
} |
||||
|
||||
/**
|
||||
* @brief zrzk_equipment_range_sensor_Proximity_decode_internal |
||||
* @param transfer: Pointer to CanardRxTransfer transfer |
||||
* @param payload_len: Payload message length |
||||
* @param dest: Pointer to destination struct |
||||
* @param dyn_arr_buf: NULL or Pointer to memory storage to be used for dynamic arrays |
||||
* uavcan_proximity_t dyn memory will point to dyn_arr_buf memory. |
||||
* NULL will ignore dynamic arrays decoding. |
||||
* @param offset: Call with 0, bit offset to msg storage |
||||
* @retval offset or ERROR value if < 0 |
||||
*/ |
||||
int32_t zrzk_equipment_range_sensor_Proximity_decode_internal( |
||||
const CanardRxTransfer* transfer, |
||||
uint16_t CANARD_MAYBE_UNUSED(payload_len), |
||||
uavcan_proximity_t* dest, |
||||
uint8_t** CANARD_MAYBE_UNUSED(dyn_arr_buf), |
||||
int32_t offset) |
||||
{ |
||||
int32_t ret = 0; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 8, false, (void*)&dest->sensor_id); |
||||
if (ret != 8) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 8; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 5, false, (void*)&dest->sensor_type); |
||||
if (ret != 5) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 5; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 3, false, (void*)&dest->reading_type); |
||||
if (ret != 3) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 3; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 16, false, (void*)&dest->d0); |
||||
if (ret != 16) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 16; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 16, false, (void*)&dest->d45); |
||||
if (ret != 16) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 16; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 16, false, (void*)&dest->d90); |
||||
if (ret != 16) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 16; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 16, false, (void*)&dest->d135); |
||||
if (ret != 16) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 16; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 16, false, (void*)&dest->d180); |
||||
if (ret != 16) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 16; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 16, false, (void*)&dest->d225); |
||||
if (ret != 16) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 16; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 16, false, (void*)&dest->d270); |
||||
if (ret != 16) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 16; |
||||
|
||||
ret = canardDecodeScalar(transfer, (uint32_t)offset, 16, false, (void*)&dest->d315); |
||||
if (ret != 16) |
||||
{ |
||||
goto zrzk_equipment_range_sensor_Proximity_error_exit; |
||||
} |
||||
offset += 16; |
||||
return offset; |
||||
|
||||
zrzk_equipment_range_sensor_Proximity_error_exit: |
||||
if (ret < 0) |
||||
{ |
||||
return ret; |
||||
} |
||||
else |
||||
{ |
||||
return -CANARD_ERROR_INTERNAL; |
||||
} |
||||
} |
||||
|
||||
/**
|
||||
* @brief zrzk_equipment_range_sensor_Proximity_decode |
||||
* @param transfer: Pointer to CanardRxTransfer transfer |
||||
* @param payload_len: Payload message length |
||||
* @param dest: Pointer to destination struct |
||||
* @param dyn_arr_buf: NULL or Pointer to memory storage to be used for dynamic arrays |
||||
* uavcan_proximity_t dyn memory will point to dyn_arr_buf memory. |
||||
* NULL will ignore dynamic arrays decoding. |
||||
* @retval offset or ERROR value if < 0 |
||||
*/ |
||||
int32_t zrzk_equipment_range_sensor_Proximity_decode(const CanardRxTransfer* transfer, |
||||
uint16_t payload_len, |
||||
uavcan_proximity_t* dest, |
||||
uint8_t** dyn_arr_buf) |
||||
{ |
||||
const int32_t offset = 0; |
||||
int32_t ret = 0; |
||||
|
||||
// Clear the destination struct
|
||||
for (uint32_t c = 0; c < sizeof(uavcan_proximity_t); c++) |
||||
{ |
||||
((uint8_t*)dest)[c] = 0x00; |
||||
} |
||||
|
||||
ret = zrzk_equipment_range_sensor_Proximity_decode_internal(transfer, payload_len, dest, dyn_arr_buf, offset); |
||||
|
||||
return ret; |
||||
} |
@ -0,0 +1,106 @@
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* UAVCAN data structure definition for libcanard. |
||||
* |
||||
* Autogenerated, do not edit. |
||||
* |
||||
* Source file: E:\000_MyProjects\UAVCAN\libcanard_zrzk_new\dsdl_compiler\zrzk\equipment\range_sensor\26110.Proximity.uavcan |
||||
*/ |
||||
|
||||
#ifndef __ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY |
||||
#define __ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY |
||||
|
||||
#include <stdint.h> |
||||
#include "canard.h" |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" |
||||
{ |
||||
#endif |
||||
|
||||
/******************************* Source text **********************************
|
||||
uint8 sensor_id |
||||
|
||||
uint5 SENSOR_TYPE_UNDEFINED = 0 |
||||
uint5 SENSOR_TYPE_SONAR = 1 |
||||
uint5 SENSOR_TYPE_LIDAR = 2 |
||||
uint5 SENSOR_TYPE_RADAR = 3 |
||||
uint5 sensor_type |
||||
|
||||
uint3 READING_TYPE_UNDEFINED = 0 # Range is unknown |
||||
uint3 READING_TYPE_VALID_RANGE = 1 # Range field contains valid distance |
||||
uint3 READING_TYPE_TOO_CLOSE = 2 # Range field contains min range for the sensor |
||||
uint3 READING_TYPE_TOO_FAR = 3 # Range field contains max range for the sensor |
||||
uint3 reading_type |
||||
|
||||
uint16 d0 # Meters distance_cm |
||||
uint16 d45 |
||||
uint16 d90 |
||||
uint16 d135 |
||||
uint16 d180 |
||||
uint16 d225 |
||||
uint16 d270 |
||||
uint16 d315 |
||||
******************************************************************************/ |
||||
|
||||
/********************* DSDL signature source definition ***********************
|
||||
zrzk.equipment.range_sensor.Proximity |
||||
saturated uint8 sensor_id |
||||
saturated uint5 sensor_type |
||||
saturated uint3 reading_type |
||||
saturated uint16 d0 |
||||
saturated uint16 d45 |
||||
saturated uint16 d90 |
||||
saturated uint16 d135 |
||||
saturated uint16 d180 |
||||
saturated uint16 d225 |
||||
saturated uint16 d270 |
||||
saturated uint16 d315 |
||||
******************************************************************************/ |
||||
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_ID 26110 |
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_NAME "zrzk.equipment.range_sensor.Proximity" |
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_SIGNATURE (0x92066602E96C261ULL) |
||||
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_MAX_SIZE ((144 + 7)/8) |
||||
|
||||
// Constants
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_SENSOR_TYPE_UNDEFINED 0 // 0
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_SENSOR_TYPE_SONAR 1 // 1
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_SENSOR_TYPE_LIDAR 2 // 2
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_SENSOR_TYPE_RADAR 3 // 3
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_READING_TYPE_UNDEFINED 0 // 0
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_READING_TYPE_VALID_RANGE 1 // 1
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_READING_TYPE_TOO_CLOSE 2 // 2
|
||||
#define ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY_READING_TYPE_TOO_FAR 3 // 3
|
||||
|
||||
typedef struct |
||||
{ |
||||
uint16_t d0; // bit len 16
|
||||
uint16_t d45; // bit len 16
|
||||
uint16_t d90; // bit len 16
|
||||
uint16_t d135; // bit len 16
|
||||
uint16_t d180; // bit len 16
|
||||
uint16_t d225; // bit len 16
|
||||
uint16_t d270; // bit len 16
|
||||
uint16_t d315; // bit len 16
|
||||
uint8_t sensor_id; // bit len 8
|
||||
uint8_t sensor_type; // bit len 5
|
||||
uint8_t reading_type; // bit len 3
|
||||
} uavcan_proximity_t; |
||||
|
||||
extern |
||||
uint32_t zrzk_equipment_range_sensor_Proximity_encode(uavcan_proximity_t* source, void* msg_buf); |
||||
|
||||
extern |
||||
int32_t zrzk_equipment_range_sensor_Proximity_decode(const CanardRxTransfer* transfer, uint16_t payload_len, uavcan_proximity_t* dest, uint8_t** dyn_arr_buf); |
||||
|
||||
extern |
||||
uint32_t zrzk_equipment_range_sensor_Proximity_encode_internal(uavcan_proximity_t* source, void* msg_buf, uint32_t offset, uint8_t root_item); |
||||
|
||||
extern |
||||
int32_t zrzk_equipment_range_sensor_Proximity_decode_internal(const CanardRxTransfer* transfer, uint16_t payload_len, uavcan_proximity_t* dest, uint8_t** dyn_arr_buf, int32_t offset); |
||||
|
||||
#ifdef __cplusplus |
||||
} // extern "C"
|
||||
#endif |
||||
#endif // __ZRZK_EQUIPMENT_RANGE_SENSOR_PROXIMITY
|
Loading…
Reference in new issue