diff --git a/firmware/Core/Src/main.c b/firmware/Core/Src/main.c index e8ef623..c20f764 100644 --- a/firmware/Core/Src/main.c +++ b/firmware/Core/Src/main.c @@ -1271,8 +1271,7 @@ void transmitCan2Packet() uint8_t buffer[8] = {0}; // sending heartbeat command - const uint32_t rtr = 1; - memcpy(buffer, &rtr, sizeof(rtr)); + memset(buffer, 0xFF, sizeof(buffer)); CAN_Transmit(0x500, buffer, 8, &hcan2); // sending common current and voltage command @@ -1308,16 +1307,14 @@ void transmitCan2Packet() CAN_Transmit(0x504, buffer, 8, &hcan2); // sending charge permission, charge ending and charge/discharge state command - const bool chargeAllowed = packState.chargeAllowed; - const bool chargeEnding = packState.SoC > 95; - const bool chargeSwitchState = charge_switch_state; - - uint32_t data = chargeAllowed; - data |= (chargeEnding << 1); - data |= (chargeSwitchState << 2); + const uint8_t chargeAllowed = packState.chargeAllowed ? 0xFF : 0x00; + const uint8_t chargeEnding = packState.SoC > 95 ? 0xFF : 0x00; + const uint8_t chargeSwitchState = charge_switch_state ? 0xFF : 0x00; memset(buffer, '\0', sizeof(buffer)); - memcpy(buffer, &data, sizeof(data)); + memcpy(buffer + 0, &chargeAllowed, sizeof(chargeAllowed)); + memcpy(buffer + 1, &chargeEnding, sizeof(chargeEnding)); + memcpy(buffer + 2, &chargeSwitchState, sizeof(chargeSwitchState)); CAN_Transmit(0x505, buffer, 8, &hcan2); }