mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 09:49:32 +02:00
Rewrite error handling to stop sending CAN
This commit is contained in:
parent
e2cec23017
commit
af7157e403
1 changed files with 26 additions and 32 deletions
|
@ -87,16 +87,6 @@ void update_values_can_byd()
|
||||||
//Temperature min
|
//Temperature min
|
||||||
BYD_210.data.u8[2] = (temperature_min >> 8);
|
BYD_210.data.u8[2] = (temperature_min >> 8);
|
||||||
BYD_210.data.u8[3] = (temperature_min & 0x00FF);
|
BYD_210.data.u8[3] = (temperature_min & 0x00FF);
|
||||||
|
|
||||||
//Indicate to inverter if BMS has encountered issues
|
|
||||||
if(bms_status == FAULT)
|
|
||||||
{
|
|
||||||
BYD_190.data.u8[2] = 0x00; //We are not sure what this means, but battery control will be stopped for 5minutes if this is sent
|
|
||||||
} //Todo, maybe try other values and see if the inverter stops permanently until next reboot?
|
|
||||||
else
|
|
||||||
{
|
|
||||||
BYD_190.data.u8[2] = 0x03; //Indicates battery is OK to continue
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void receive_can_byd(CAN_frame_t rx_frame)
|
void receive_can_byd(CAN_frame_t rx_frame)
|
||||||
|
@ -123,31 +113,35 @@ void send_can_byd()
|
||||||
send_intial_data();
|
send_intial_data();
|
||||||
initialDataSent = 1;
|
initialDataSent = 1;
|
||||||
}
|
}
|
||||||
// Send 2s CAN Message
|
|
||||||
if (currentMillis - previousMillis2s >= interval2s)
|
|
||||||
{
|
|
||||||
previousMillis2s = currentMillis;
|
|
||||||
|
|
||||||
ESP32Can.CANWriteFrame(&BYD_110);
|
if(bms_status != FAULT)
|
||||||
}
|
{ // Send CAN messages towards inverter if battery is OK
|
||||||
// Send 10s CAN Message
|
// Send 2s CAN Message
|
||||||
if (currentMillis - previousMillis10s >= interval10s)
|
if (currentMillis - previousMillis2s >= interval2s)
|
||||||
{
|
{
|
||||||
previousMillis10s = currentMillis;
|
previousMillis2s = currentMillis;
|
||||||
|
|
||||||
ESP32Can.CANWriteFrame(&BYD_150);
|
ESP32Can.CANWriteFrame(&BYD_110);
|
||||||
ESP32Can.CANWriteFrame(&BYD_1D0);
|
}
|
||||||
ESP32Can.CANWriteFrame(&BYD_210);
|
// Send 10s CAN Message
|
||||||
//Serial.println("CAN 10s done");
|
if (currentMillis - previousMillis10s >= interval10s)
|
||||||
}
|
{
|
||||||
//Send 60s message
|
previousMillis10s = currentMillis;
|
||||||
if (currentMillis - previousMillis60s >= interval60s)
|
|
||||||
{
|
|
||||||
previousMillis60s = currentMillis;
|
|
||||||
|
|
||||||
ESP32Can.CANWriteFrame(&BYD_190);
|
ESP32Can.CANWriteFrame(&BYD_150);
|
||||||
//Serial.println("CAN 60s done");
|
ESP32Can.CANWriteFrame(&BYD_1D0);
|
||||||
}
|
ESP32Can.CANWriteFrame(&BYD_210);
|
||||||
|
//Serial.println("CAN 10s done");
|
||||||
|
}
|
||||||
|
//Send 60s message
|
||||||
|
if (currentMillis - previousMillis60s >= interval60s)
|
||||||
|
{
|
||||||
|
previousMillis60s = currentMillis;
|
||||||
|
|
||||||
|
ESP32Can.CANWriteFrame(&BYD_190);
|
||||||
|
//Serial.println("CAN 60s done");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_intial_data()
|
void send_intial_data()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue