corrected checksum element ordering
This commit is contained in:
parent
6c7d62ca6b
commit
3882af3659
|
@ -252,14 +252,13 @@ void Message::nak(uint16_t reason)
|
|||
uint16_t Message::checksum() const
|
||||
{
|
||||
uint16_t sum = 0;
|
||||
|
||||
addSum_(sum, SC_RDM);
|
||||
addSum_(sum, SC_SUB_MESSAGE);
|
||||
addSum_(sum, 24 + mdb.pdl());
|
||||
addSum_(sum, source.manufacturer);
|
||||
addSum_(sum, source.device);
|
||||
addSum_(sum, MESSAGE_MINIMUM_LENGTH+mdb.pdl());
|
||||
addSum_(sum, destination.manufacturer);
|
||||
addSum_(sum, destination.device);
|
||||
addSum_(sum, source.manufacturer);
|
||||
addSum_(sum, source.device);
|
||||
addSum_(sum, tn);
|
||||
addSum_(sum, portID);
|
||||
addSum_(sum, messageCount);
|
||||
|
@ -267,8 +266,8 @@ uint16_t Message::checksum() const
|
|||
addSum_(sum, mdb.cc);
|
||||
addSum_(sum, mdb.pid);
|
||||
addSum_(sum, mdb.pdl());
|
||||
for (const auto &val : mdb.pd)
|
||||
addSum_(sum, val);
|
||||
for (const auto &byte : mdb.pd)
|
||||
addSum_(sum, byte);
|
||||
return sum;
|
||||
}
|
||||
|
||||
|
|
|
@ -148,9 +148,9 @@ private: // templates
|
|||
uint8_t byte;
|
||||
uint16_t carry;
|
||||
auto data = reinterpret_cast<const uint8_t*>(&val);
|
||||
for (int i = sizeof(T); --i >= 0; )
|
||||
for (int i = 0; i < sizeof(T); i++)
|
||||
{
|
||||
byte = data[i];
|
||||
byte = data[sizeof(T)-1-i];
|
||||
while (byte != 0)
|
||||
{
|
||||
carry = sum & byte;
|
||||
|
|
Loading…
Reference in New Issue