Update PYLON-CAN.cpp

Update to Dala PR #284
This commit is contained in:
LevinSwe 2024-05-03 09:41:42 +02:00 committed by GitHub
parent 1d094709ab
commit 902ee44cca
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -230,6 +230,24 @@ void update_values_can_inverter() { //This function maps all the values fetched
PYLON_4221.data.u8[3] = (datalayer.battery.info.max_design_voltage_dV & 0x00FF); PYLON_4221.data.u8[3] = (datalayer.battery.info.max_design_voltage_dV & 0x00FF);
#endif #endif
//Max/Min cell voltage
PYLON_4230.data.u8[0] = (datalayer.battery.status.cell_max_voltage_mV >> 8);
PYLON_4230.data.u8[1] = (datalayer.battery.status.cell_max_voltage_mV & 0x00FF);
PYLON_4230.data.u8[2] = (datalayer.battery.status.cell_min_voltage_mV >> 8);
PYLON_4230.data.u8[3] = (datalayer.battery.status.cell_min_voltage_mV & 0x00FF);
//Max/Min temperature per cell
PYLON_4240.data.u8[0] = (datalayer.battery.status.temperature_max_dC >> 8);
PYLON_4240.data.u8[1] = (datalayer.battery.status.temperature_max_dC & 0x00FF);
PYLON_4240.data.u8[2] = (datalayer.battery.status.temperature_min_dC >> 8);
PYLON_4240.data.u8[3] = (datalayer.battery.status.temperature_min_dC & 0x00FF);
//Max/Min temperature per module
PYLON_4270.data.u8[0] = (datalayer.battery.status.temperature_max_dC >> 8);
PYLON_4270.data.u8[1] = (datalayer.battery.status.temperature_max_dC & 0x00FF);
PYLON_4270.data.u8[2] = (datalayer.battery.status.temperature_min_dC >> 8);
PYLON_4270.data.u8[3] = (datalayer.battery.status.temperature_min_dC & 0x00FF);
//In case we run into any errors/faults, we can set charge / discharge forbidden //In case we run into any errors/faults, we can set charge / discharge forbidden
if (datalayer.battery.status.bms_status == FAULT) { if (datalayer.battery.status.bms_status == FAULT) {
PYLON_4280.data.u8[0] = 0xAA; PYLON_4280.data.u8[0] = 0xAA;
@ -263,6 +281,15 @@ void send_can_inverter() {
} }
void send_setup_info() { //Ensemble information void send_setup_info() { //Ensemble information
//Amount of cells
PYLON_7320.data.u8[0] = datalayer.battery.info.number_of_cells;
//Modules in series (not really how EV packs work, but let's map it to a reasonable Pylon value)
PYLON_7320.data.u8[2] = (datalayer.battery.info.number_of_cells / 15);
//Capacity in AH
if(datalayer.battery.status.voltage_dV > 10){ //div0 safeguard
PYLON_7320.data.u8[6] = (datalayer.battery.info.total_capacity_Wh / (datalayer.battery.status.voltage_dV / 10));
}
#ifdef SEND_0 #ifdef SEND_0
ESP32Can.CANWriteFrame(&PYLON_7310); ESP32Can.CANWriteFrame(&PYLON_7310);
ESP32Can.CANWriteFrame(&PYLON_7320); ESP32Can.CANWriteFrame(&PYLON_7320);