Remove high and low byte union for message length
This commit is contained in:
+1
-7
@@ -11,13 +11,7 @@ struct PACKED Header {
|
||||
uint8_t preamble;
|
||||
|
||||
// The length of the message includes the preamble and CRC16 at the end
|
||||
union {
|
||||
uint16_t length;
|
||||
struct {
|
||||
uint8_t length_l;
|
||||
uint8_t length_h;
|
||||
};
|
||||
};
|
||||
uint16_t length;
|
||||
|
||||
// This is a CRC8 checksum for the preamble and length together
|
||||
uint8_t crc;
|
||||
|
||||
+2
-2
@@ -127,8 +127,8 @@ void
|
||||
req_finalize(struct Client* client, uint8_t cmdset, uint8_t cmdid, uint8_t hostbyte, bool need_ack, size_t length, union Request* req) {
|
||||
|
||||
req->header.preamble = 0x55;
|
||||
req->header.length_l = length & 0xFF;
|
||||
req->header.length_h = ((length >> 8) & 0x3) | 4;
|
||||
//req->header.length = length & 0x1FFF | 0x400;
|
||||
req->header.length = length;
|
||||
req->header.crc = crc8(req, 3);
|
||||
req->header.seq_id = client->seq++;
|
||||
req->header.sender = client->hostbyte;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
enum MESSAGEERR
|
||||
message_validate(const union Message* message) {
|
||||
|
||||
uint16_t length = (message->header.length_h & 0x3) * 0xFF + message->header.length_l;
|
||||
uint16_t length = message->header.length;
|
||||
|
||||
if(message->header.crc != crc8(message, 3))
|
||||
return MESSAGEERR_HEADERCRC;
|
||||
|
||||
Reference in New Issue
Block a user