binsir
4 years ago
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