Line data Source code
1 : #include "can_common_declarations.h"
2 :
3 5595298 : uint8_t calculate_checksum(const uint8_t *dat, uint32_t len) {
4 5595298 : uint8_t checksum = 0U;
5 93043989 : for (uint32_t i = 0U; i < len; i++) {
6 87448691 : checksum ^= dat[i];
7 : }
8 5595298 : return checksum;
9 : }
10 :
11 5595298 : void can_set_checksum(CANPacket_t *packet) {
12 5595298 : packet->checksum = 0U;
13 5595298 : packet->checksum = calculate_checksum((uint8_t *) packet, CANPACKET_HEAD_SIZE + GET_LEN(packet));
14 5595298 : }
15 :
16 0 : bool can_check_checksum(CANPacket_t *packet) {
17 0 : return (calculate_checksum((uint8_t *) packet, CANPACKET_HEAD_SIZE + GET_LEN(packet)) == 0U);
18 : }
|