Initial commit, pulled from openxc/vi-firmware.
[apps/agl-service-can-low-level.git] / src / canutil / read.c
1 #include <bitfield/bitfield.h>
2
3 float parseFloat(uint64_t data, uint8_t bitPosition, uint8_t bitSize,
4         float factor, float offset) {
5     uint64_t rawValue = getBitField(data, bitPosition,
6             bitSize, true);
7     return rawValue * factor + offset;
8 }
9
10 bool parseBoolean(uint64_t data, uint8_t bitPosition, uint8_t bitSize,
11         float factor, float offset) {
12     float value = parseFloat(data, bitPosition, bitSize, factor, offset);
13     return value == 0.0 ? false : true;
14 }