Skip to content

Commit 3f0ec28

Browse files
committed
Reverted endian little change; somehow there's a difference between how the value was originally built and swapping the bytes
1 parent 601ef66 commit 3f0ec28

File tree

1 file changed

+1
-5
lines changed

1 file changed

+1
-5
lines changed

src/message.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,16 @@ Message::ParseSignalsStatus Message::parse_signals(const std::vector<uint8_t>& d
3737
uint64_t data_little_endian = 0;
3838
uint64_t data_big_endian = 0;
3939
for (std::size_t i = 0; i < size; i++) {
40+
data_little_endian |= ((uint64_t)data[i]) << i * ONE_BYTE;
4041
data_big_endian = (data_big_endian << ONE_BYTE) | (uint64_t)data[i];
4142
}
42-
data_little_endian = Utils::swapEndianness(data_little_endian);
4343

4444
// TODO: does this also work on a big endian machine?
4545

4646
const auto len = size * 8;
4747
uint64_t value = 0;
4848
for (const auto& signal : m_signals) {
4949

50-
if (signal.size > len) {
51-
return ParseSignalsStatus::ErrorInvalidSignalSize;
52-
}
53-
5450
if (signal.is_bigendian) {
5551
uint32_t start_bit = ONE_BYTE * (signal.start_bit / ONE_BYTE) + (SEVEN_BITS - (signal.start_bit % ONE_BYTE)); // Calculation taken from python CAN
5652
value = data_big_endian << start_bit;

0 commit comments

Comments
 (0)