|
@ -22,8 +22,26 @@ typedef enum { |
|
|
kptv2_event = 3, |
|
|
kptv2_event = 3, |
|
|
} zcan_cmd_packet_type_t; |
|
|
} zcan_cmd_packet_type_t; |
|
|
|
|
|
|
|
|
|
|
|
static inline bool zcr_cmd_checkpacket(const zcr_cmd_header_t* header, int len) { |
|
|
|
|
|
if (len < sizeof(zcr_cmd_header_t)) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
if ((header->datalen + sizeof(zcr_cmd_header_t) + 1) != len) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} // namespace zcr
|
|
|
|
|
|
} // namespace iflytop
|
|
|
|
|
|
|
|
|
uint8_t* rawpacket = (uint8_t*)header; |
|
|
|
|
|
uint8_t checksum = 0; |
|
|
|
|
|
for (int i = 0; i < len - 1; i++) { |
|
|
|
|
|
checksum += rawpacket[i]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (checksum != rawpacket[len - 1]) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} // namespace zcr
|
|
|
|
|
|
} // namespace iflytop
|