This needs to be tested on hardware, but it should fix #26
There are two changes: CRC's returned value is now anded with 0xFF to ensure it's one byte only.
The second change is from the CRC Polynomial, which was 0x131 and is now 0x31. The datasheet and other Sensirion sensors all use 0x31, however if you go through the Sensirion download center to download sample c++ code, the sample code uses 0x131. Given the Sensirion github is more likely to be up to date, and given they now use a helper library for the CRC which sets the polynomial to 0x31I think 0x31 is the correct option.
But because that's a large enough change, I need that to be tested to be sure it fixes #26
This needs to be tested on hardware, but it should fix #26
There are two changes: CRC's returned value is now anded with
0xFF
to ensure it's one byte only.The second change is from the CRC Polynomial, which was
0x131
and is now0x31
. The datasheet and other Sensirion sensors all use0x31
, however if you go through the Sensirion download center to download sample c++ code, the sample code uses0x131
. Given the Sensirion github is more likely to be up to date, and given they now use a helper library for the CRC which sets the polynomial to0x31
I think0x31
is the correct option.But because that's a large enough change, I need that to be tested to be sure it fixes #26