diff --git a/libraries/AP_Generator/AP_Generator_RichenPower.cpp b/libraries/AP_Generator/AP_Generator_RichenPower.cpp index 2d0dc41a29..fd9a1b248f 100644 --- a/libraries/AP_Generator/AP_Generator_RichenPower.cpp +++ b/libraries/AP_Generator/AP_Generator_RichenPower.cpp @@ -112,8 +112,9 @@ bool AP_Generator_RichenPower::get_reading() // calculate checksum.... uint16_t checksum = 0; + const uint8_t *checksum_buffer = &u.parse_buffer[2]; for (uint8_t i=0; i<5; i++) { - checksum += be16toh(checksum_buffer[i]); + checksum += be16toh_ptr(&checksum_buffer[2*i]); } if (checksum != be16toh(u.packet.checksum)) { diff --git a/libraries/AP_Generator/AP_Generator_RichenPower.h b/libraries/AP_Generator/AP_Generator_RichenPower.h index 53e944679b..ef1d2f62d0 100644 --- a/libraries/AP_Generator/AP_Generator_RichenPower.h +++ b/libraries/AP_Generator/AP_Generator_RichenPower.h @@ -156,7 +156,6 @@ private: struct RichenPacket packet; }; RichenUnion u; - uint16_t *checksum_buffer = (uint16_t*)&u.parse_buffer[2]; uint8_t body_length;