Merge branch 'main' into 'main'
Declare integer packing in the appropriate header file See merge request TheJackiMonster/nrealAirLinuxDriver!8
This commit is contained in:
commit
ba30f1477f
2 changed files with 15 additions and 6 deletions
|
@ -177,6 +177,15 @@ device3_euler_type device3_get_euler(device3_quat_type quat);
|
||||||
|
|
||||||
device3_error_type device3_close(device3_type* device);
|
device3_error_type device3_close(device3_type* device);
|
||||||
|
|
||||||
|
int32_t pack32bit_signed(const uint8_t* data);
|
||||||
|
int32_t pack24bit_signed(const uint8_t* data);
|
||||||
|
int16_t pack16bit_signed(const uint8_t* data);
|
||||||
|
int32_t pack32bit_signed_swap(const uint8_t* data);
|
||||||
|
|
||||||
|
int16_t pack16bit_signed_swap(const uint8_t* data);
|
||||||
|
int16_t pack16bit_signed_bizarre(const uint8_t* data);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -458,33 +458,33 @@ static void device3_callback(device3_type* device,
|
||||||
device->callback(timestamp, event, device->ahrs);
|
device->callback(timestamp, event, device->ahrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t pack32bit_signed(const uint8_t* data) {
|
int32_t pack32bit_signed(const uint8_t* data) {
|
||||||
uint32_t unsigned_value = (data[0]) | (data[1] << 8) | (data[2] << 16) | (data[3] << 24);
|
uint32_t unsigned_value = (data[0]) | (data[1] << 8) | (data[2] << 16) | (data[3] << 24);
|
||||||
return ((int32_t) unsigned_value);
|
return ((int32_t) unsigned_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t pack24bit_signed(const uint8_t* data) {
|
int32_t pack24bit_signed(const uint8_t* data) {
|
||||||
uint32_t unsigned_value = (data[0]) | (data[1] << 8) | (data[2] << 16);
|
uint32_t unsigned_value = (data[0]) | (data[1] << 8) | (data[2] << 16);
|
||||||
if ((data[2] & 0x80) != 0) unsigned_value |= (0xFF << 24);
|
if ((data[2] & 0x80) != 0) unsigned_value |= (0xFF << 24);
|
||||||
return ((int32_t) unsigned_value);
|
return ((int32_t) unsigned_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t pack16bit_signed(const uint8_t* data) {
|
int16_t pack16bit_signed(const uint8_t* data) {
|
||||||
uint16_t unsigned_value = (data[1] << 8) | (data[0]);
|
uint16_t unsigned_value = (data[1] << 8) | (data[0]);
|
||||||
return (int16_t) unsigned_value;
|
return (int16_t) unsigned_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t pack32bit_signed_swap(const uint8_t* data) {
|
int32_t pack32bit_signed_swap(const uint8_t* data) {
|
||||||
uint32_t unsigned_value = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3]);
|
uint32_t unsigned_value = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3]);
|
||||||
return ((int32_t) unsigned_value);
|
return ((int32_t) unsigned_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t pack16bit_signed_swap(const uint8_t* data) {
|
int16_t pack16bit_signed_swap(const uint8_t* data) {
|
||||||
uint16_t unsigned_value = (data[0] << 8) | (data[1]);
|
uint16_t unsigned_value = (data[0] << 8) | (data[1]);
|
||||||
return (int16_t) unsigned_value;
|
return (int16_t) unsigned_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int16_t pack16bit_signed_bizarre(const uint8_t* data) {
|
int16_t pack16bit_signed_bizarre(const uint8_t* data) {
|
||||||
uint16_t unsigned_value = (data[0]) | ((data[1] ^ 0x80) << 8);
|
uint16_t unsigned_value = (data[0]) | ((data[1] ^ 0x80) << 8);
|
||||||
return (int16_t) unsigned_value;
|
return (int16_t) unsigned_value;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue