Defined the integer packing in the header file to improve linkability

This commit is contained in:
Ben Blumer 2024-01-23 17:42:23 -08:00
parent acd5140a2d
commit fda3e40da4
2 changed files with 12 additions and 12 deletions

View file

@ -177,13 +177,13 @@ 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);
static int32_t pack32bit_signed(const uint8_t* data); int32_t pack32bit_signed(const uint8_t* data);
static int32_t pack24bit_signed(const uint8_t* data); int32_t pack24bit_signed(const uint8_t* data);
static int16_t pack16bit_signed(const uint8_t* data); int16_t pack16bit_signed(const uint8_t* data);
static int32_t pack32bit_signed_swap(const uint8_t* data); int32_t pack32bit_signed_swap(const uint8_t* data);
static int16_t pack16bit_signed_swap(const uint8_t* data); int16_t pack16bit_signed_swap(const uint8_t* data);
static int16_t pack16bit_signed_bizarre(const uint8_t* data); int16_t pack16bit_signed_bizarre(const uint8_t* data);
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -453,33 +453,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;
} }