getBitRangeMsb
This commit is contained in:
parent
461926ef20
commit
9b920bf2fa
|
@ -108,6 +108,19 @@ function getBitRange(data, bitIndex, bitWidth) \n\
|
|||
end \n\
|
||||
"
|
||||
|
||||
#define GET_BIT_RANGE_MSB " \
|
||||
function getBitRangeMsb(data, bitIndex, bitWidth) \n\
|
||||
byteIndex = bitIndex >> 3 \n\
|
||||
shift = bitIndex - byteIndex * 8 \n\
|
||||
value = data[1 + byteIndex] \n\
|
||||
if (shift + bitWidth > 8) then \n\
|
||||
value = value + data[0 + byteIndex] * 256 \
|
||||
end \n\
|
||||
mask = (1 << bitWidth) - 1 \n\
|
||||
return (value >> shift) & mask \n\
|
||||
end \n\
|
||||
"
|
||||
|
||||
#define SET_BIT_RANGE_LSB " \
|
||||
function setBitRange(data, totalBitIndex, bitWidth, value) \
|
||||
local byteIndex = totalBitIndex >> 3 \
|
||||
|
|
|
@ -92,7 +92,18 @@ TEST(LuaE65, gearTorque) {
|
|||
return getBitRange(data, 12, 12)
|
||||
end)";
|
||||
|
||||
EXPECT_NEAR_M3(testLuaReturnsNumberOrNil(realdata).value_or(0), 800);
|
||||
EXPECT_NEAR_M3(testLuaReturnsNumberOrNil(realdata).value_or(0), 0x320);
|
||||
}
|
||||
|
||||
TEST(LuaE65, offtopicTestGetBitRangeMsb) {
|
||||
const char* realdata = GET_BIT_RANGE_MSB R"(
|
||||
|
||||
function testFunc()
|
||||
data = {0x9F, 0x01, 0x32, 0x20, 0x23, 0x30, 0xFF, 0x43}
|
||||
return getBitRangeMsb(data, 12, 12)
|
||||
end)";
|
||||
|
||||
EXPECT_NEAR_M3(testLuaReturnsNumberOrNil(realdata).value_or(0), 0x9F0);
|
||||
}
|
||||
|
||||
TEST(LuaE65, gearTorque2) {
|
||||
|
|
Loading…
Reference in New Issue