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) {
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,
*
* 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);
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