aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/bitfield/bitfield.c1
-rw-r--r--src/canutil/read.c2
-rw-r--r--src/canutil/read.h2
-rw-r--r--tests/read_tests.c7
4 files changed, 5 insertions, 7 deletions
diff --git a/src/bitfield/bitfield.c b/src/bitfield/bitfield.c
index dddb0ee..e40ab1a 100644
--- a/src/bitfield/bitfield.c
+++ b/src/bitfield/bitfield.c
@@ -38,6 +38,7 @@ uint64_t get_bitfield(const uint8_t source[], const uint8_t source_length,
uint64_t whole;
uint8_t bytes[sizeof(uint64_t)];
} combined;
+ memset(combined.bytes, 0, sizeof(combined.bytes));
copy_bits_right_aligned(source, source_length, offset, bit_count,
combined.bytes, sizeof(combined.bytes));
if(BYTE_ORDER == LITTLE_ENDIAN) {
diff --git a/src/canutil/read.c b/src/canutil/read.c
index 3931721..b662e9b 100644
--- a/src/canutil/read.c
+++ b/src/canutil/read.c
@@ -23,7 +23,7 @@ float bitfield_parse_float(const uint8_t source[], const uint16_t source_length,
return raw * factor + offset;
}
-float bitfield_parse_bool(const uint8_t source[], const uint16_t source_length,
+bool bitfield_parse_bool(const uint8_t source[], const uint16_t source_length,
const uint8_t bit_offset, const uint8_t bit_size, const float factor,
const float offset) {
float value = bitfield_parse_float(source, source_length, bit_offset,
diff --git a/src/canutil/read.h b/src/canutil/read.h
index 733e350..86fea78 100644
--- a/src/canutil/read.h
+++ b/src/canutil/read.h
@@ -70,7 +70,7 @@ bool eightbyte_parse_bool(uint64_t source, uint8_t bit_offset, uint8_t bit_size,
*
* Returns false if the value was 0, otherwise true.
*/
-float bitfield_parse_float(const uint8_t source[], const uint16_t source_size,
+bool bitfield_parse_bool(const uint8_t source[], const uint16_t source_size,
const uint8_t bit_offset, const uint8_t bit_size, const float factor,
const float offset);
diff --git a/tests/read_tests.c b/tests/read_tests.c
index 512d87e..5008cc5 100644
--- a/tests/read_tests.c
+++ b/tests/read_tests.c
@@ -36,11 +36,8 @@ END_TEST
START_TEST (test_bitfield_parse_bool)
{
- bool result = bitfield_parse_bool(ARRAY_TEST_DATA, sizeof(ARRAY_TEST_DATA),
- 0, 1, 1.0, 0);
- bool correctResult = true;
- fail_unless(result == correctResult,
- "parse is incorrect: %d but should be %d", result, correctResult);
+ fail_unless(bitfield_parse_bool(ARRAY_TEST_DATA, sizeof(ARRAY_TEST_DATA),
+ 0, 1, 1.0, 0));
}
END_TEST