From acd5140a2de6688ff94533e5bda2ee43a983b828 Mon Sep 17 00:00:00 2001 From: Benjamin Blumer Date: Tue, 23 Jan 2024 20:21:45 +0000 Subject: [PATCH 1/2] Add int packing declarations to headerfile. --- interface_lib/include/device3.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/interface_lib/include/device3.h b/interface_lib/include/device3.h index 79f5662..8c3a7c9 100644 --- a/interface_lib/include/device3.h +++ b/interface_lib/include/device3.h @@ -177,6 +177,15 @@ device3_euler_type device3_get_euler(device3_quat_type quat); device3_error_type device3_close(device3_type* device); +static int32_t pack32bit_signed(const uint8_t* data); +static int32_t pack24bit_signed(const uint8_t* data); +static int16_t pack16bit_signed(const uint8_t* data); +static int32_t pack32bit_signed_swap(const uint8_t* data); + +static int16_t pack16bit_signed_swap(const uint8_t* data); +static int16_t pack16bit_signed_bizarre(const uint8_t* data); + + #ifdef __cplusplus } // extern "C" #endif From fda3e40da484b5d3d0cf3c734672ec52bf96b6eb Mon Sep 17 00:00:00 2001 From: Ben Blumer Date: Tue, 23 Jan 2024 17:42:23 -0800 Subject: [PATCH 2/2] Defined the integer packing in the header file to improve linkability --- interface_lib/include/device3.h | 12 ++++++------ interface_lib/src/device3.c | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/interface_lib/include/device3.h b/interface_lib/include/device3.h index 8c3a7c9..5ccbfbd 100644 --- a/interface_lib/include/device3.h +++ b/interface_lib/include/device3.h @@ -177,13 +177,13 @@ device3_euler_type device3_get_euler(device3_quat_type quat); device3_error_type device3_close(device3_type* device); -static int32_t pack32bit_signed(const uint8_t* data); -static int32_t pack24bit_signed(const uint8_t* data); -static int16_t pack16bit_signed(const uint8_t* data); -static int32_t pack32bit_signed_swap(const uint8_t* data); +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); -static int16_t pack16bit_signed_swap(const uint8_t* data); -static int16_t pack16bit_signed_bizarre(const uint8_t* data); +int16_t pack16bit_signed_swap(const uint8_t* data); +int16_t pack16bit_signed_bizarre(const uint8_t* data); #ifdef __cplusplus diff --git a/interface_lib/src/device3.c b/interface_lib/src/device3.c index 0c8053c..fa6c31c 100644 --- a/interface_lib/src/device3.c +++ b/interface_lib/src/device3.c @@ -453,33 +453,33 @@ static void device3_callback(device3_type* device, 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); 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); if ((data[2] & 0x80) != 0) unsigned_value |= (0xFF << 24); 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]); 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]); 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]); 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); return (int16_t) unsigned_value; }