Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion include/serialization/uavcan/equipment/ahrs/Solution.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,26 @@ static inline int8_t dronecan_equipment_ahrs_solution_deserialize(
offset += 16;
obj->orientation_xyzw[idx] = canardConvertFloat16ToNativeFloat(f16_dummy);
}

offset+= 4; // reserved void4

uint8_t covariance_len;
canardDecodeScalar(transfer, offset, 4, true, &covariance_len);
offset += 4;
offset += 16 * covariance_len;

for (uint_fast8_t idx = 0; idx < 3; idx++) {
canardDecodeScalar(transfer, offset, 16, true, &f16_dummy);
offset += 16;
obj->angular_velocity[idx] = canardConvertFloat16ToNativeFloat(f16_dummy);
}

offset+= 4; // reserved void4
canardDecodeScalar(transfer, offset, 4, true, &covariance_len);
offset += 4;

offset += 16 * covariance_len;

for (uint_fast8_t idx = 0; idx < 3; idx++) {
canardDecodeScalar(transfer, offset, 16, true, &f16_dummy);
offset += 16;
Expand Down Expand Up @@ -90,16 +104,24 @@ static inline int8_t dronecan_equipment_ahrs_solution_serialize(
canardEncodeScalar(buffer, 0, 56, &obj->timestamp);
offset += 56;


for (uint_fast8_t idx = 0; idx < 3; idx++) {
canardEncodeFloat16(buffer, offset, obj->orientation_xyzw[idx]);
offset += 16;
}

offset += 4;
canardEncodeScalar(buffer, offset, 4, 0);
offset += 4; // covariance len

for (uint_fast8_t idx = 0; idx < 2; idx++) {
canardEncodeFloat16(buffer, offset, obj->angular_velocity[idx]);
offset += 16;
}

offset += 4; // void4
canardEncodeScalar(buffer, offset, 4, 0);
offset += 4; // covariance len

for (uint_fast8_t idx = 0; idx < 2; idx++) {
canardEncodeFloat16(buffer, offset, obj->linear_acceleration[idx]);
offset += 16;
Expand Down
7 changes: 3 additions & 4 deletions include/serialization/uavcan/equipment/hardpoint/Status.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#define UAVCAN_EQUIPMENT_HARDPOINT_STATUS_ID 1071
#define UAVCAN_EQUIPMENT_HARDPOINT_STATUS_SIGNATURE 0x624a519d42553d82
#define UAVCAN_EQUIPMENT_HARDPOINT_STATUS_MESSAGE_SIZE 8
#define UAVCAN_EQUIPMENT_HARDPOINT_STATUS_MESSAGE_SIZE 7

typedef struct {
uint8_t hardpoint_id;
Expand Down Expand Up @@ -53,9 +53,8 @@ static inline int8_t dronecan_equipment_hardpoint_status_serialize(

canardEncodeScalar(buffer, 0, 8, &obj->hardpoint_id);
canardEncodeFloat16(buffer, 8, obj->payload_weight);
canardEncodeFloat16(buffer, 24, obj->payload_weight);
canardEncodeFloat16(buffer, 40, obj->payload_weight_variance);
canardEncodeScalar(buffer, 56, 16, &obj->status);
canardEncodeFloat16(buffer, 24, obj->payload_weight_variance);
canardEncodeScalar(buffer, 40, 16, &obj->status);

return 0;
}
Expand Down