mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-05 19:42:08 +02:00
Add mappings for 2D4, 3B4 and 2F4
This commit is contained in:
parent
b17c9ad106
commit
54f9cb49f3
2 changed files with 47 additions and 3 deletions
|
@ -192,15 +192,42 @@ void EcmpBattery::update_values() {
|
|||
|
||||
void EcmpBattery::handle_incoming_can_frame(CAN_frame rx_frame) {
|
||||
switch (rx_frame.ID) {
|
||||
case 0x2D4: //MysteryVan 50/75kWh platform
|
||||
case 0x2D4: //MysteryVan 50/75kWh platform (TBMU 100ms periodic)
|
||||
datalayer.battery.status.CAN_battery_still_alive = CAN_STILL_ALIVE;
|
||||
MysteryVan = true;
|
||||
SOE_MAX_CURRENT_TEMP = (rx_frame.data.u8[2] << 8) | rx_frame.data.u8[3]; // (Wh, 0-200000)
|
||||
FRONT_MACHINE_POWER_LIMIT = (rx_frame.data.u8[4] << 6) | ((rx_frame.data.u8[5] & 0xFC) >> 2); // (W 0-1000000)
|
||||
REAR_MACHINE_POWER_LIMIT = ((rx_frame.data.u8[5] & 0x03) << 12) | (rx_frame.data.u8[6] << 4) |
|
||||
((rx_frame.data.u8[7] & 0xF0) >> 4); // (W 0-1000000)
|
||||
break;
|
||||
case 0x3B4: //MysteryVan 50/75kWh platform
|
||||
case 0x3B4: //MysteryVan 50/75kWh platform (TBMU 100ms periodic)
|
||||
datalayer.battery.status.CAN_battery_still_alive = CAN_STILL_ALIVE;
|
||||
EVSE_INSTANT_DC_HV_CURRENT =
|
||||
((rx_frame.data.u8[2] & 0x03) << 12) | (rx_frame.data.u8[3] << 2) | ((rx_frame.data.u8[4] & 0xC0) >> 6);
|
||||
EVSE_STATE = ((rx_frame.data.u8[4] & 0x38) >> 3); /*Enumeration below
|
||||
000: NOT CONNECTED
|
||||
001: CONNECTED
|
||||
010: INITIALISATION
|
||||
011: READY
|
||||
100: PRECHARGE IN PROGRESS
|
||||
101: TRANSFER IN PROGRESS
|
||||
110: NOT READY
|
||||
111: Reserved */
|
||||
HV_BATT_SOE_HD = ((rx_frame.data.u8[4] & 0x03) << 12) | (rx_frame.data.u8[5] << 4) |
|
||||
((rx_frame.data.u8[6] & 0xF0) >> 4); // (Wh, 0-200000)
|
||||
HV_BATT_SOE_MAX = ((rx_frame.data.u8[6] & 0x03) << 8) | rx_frame.data.u8[7]; // (Wh, 0-200000)
|
||||
CHECKSUM_FRAME_3B4 = (rx_frame.data.u8[0] & 0xF0) >> 4;
|
||||
COUNTER_NIBBLE_3B4 = (rx_frame.data.u8[0] & 0x0F);
|
||||
break;
|
||||
case 0x2F4: //MysteryVan 50/75kWh platform
|
||||
case 0x2F4: //MysteryVan 50/75kWh platform (Event triggered)
|
||||
datalayer.battery.status.CAN_battery_still_alive = CAN_STILL_ALIVE;
|
||||
TBMU_EVSE_DC_MES_VOLTAGE = (rx_frame.data.u8[0] << 6) | (rx_frame.data.u8[1] >> 2); //V 0-1000
|
||||
TBMU_EVSE_DC_MIN_VOLTAGE = ((rx_frame.data.u8[1] & 0x03) << 8) | rx_frame.data.u8[2]; //V 0-1000
|
||||
TBMU_EVSE_DC_MES_CURRENT = (rx_frame.data.u8[3] << 4) | ((rx_frame.data.u8[4] & 0xF0) >> 4); //A -2000 - 2000
|
||||
TBMU_EVSE_CHRG_REQ = (rx_frame.data.u8[4] & 0x0C) >> 2; //00 No request, 01 Stop request
|
||||
HV_STORAGE_MAX_I = ((rx_frame.data.u8[4] & 0x03) << 12) | (rx_frame.data.u8[5] << 2) |
|
||||
((rx_frame.data.u8[6] & 0xC0) >> 6); //A -2000 - 2000
|
||||
TBMU_EVSE_DC_MAX_POWER = ((rx_frame.data.u8[6] & 0x3F) << 8) | rx_frame.data.u8[7]; //W -1000000 - 0
|
||||
break;
|
||||
case 0x3F4: //MysteryVan 50/75kWh platform
|
||||
datalayer.battery.status.CAN_battery_still_alive = CAN_STILL_ALIVE;
|
||||
|
|
|
@ -133,6 +133,23 @@ class EcmpBattery : public CanBattery {
|
|||
uint32_t pid_date_of_manufacture = NOT_SAMPLED_YET;
|
||||
uint16_t pid_SOH_cell_1 = NOT_SAMPLED_YET;
|
||||
|
||||
//MysteryVan platform
|
||||
uint16_t SOE_MAX_CURRENT_TEMP = 0;
|
||||
uint16_t FRONT_MACHINE_POWER_LIMIT = 0;
|
||||
uint16_t REAR_MACHINE_POWER_LIMIT = 0;
|
||||
uint16_t EVSE_INSTANT_DC_HV_CURRENT = 0;
|
||||
uint8_t EVSE_STATE = 0;
|
||||
uint16_t HV_BATT_SOE_HD = 0;
|
||||
uint16_t HV_BATT_SOE_MAX = 0;
|
||||
uint8_t COUNTER_NIBBLE_3B4 = 0;
|
||||
uint8_t CHECKSUM_FRAME_3B4 = 0;
|
||||
uint16_t TBMU_EVSE_DC_MAX_POWER = 0;
|
||||
uint16_t HV_STORAGE_MAX_I = 0;
|
||||
uint8_t TBMU_EVSE_CHRG_REQ = 0;
|
||||
uint16_t TBMU_EVSE_DC_MES_CURRENT = 0;
|
||||
uint16_t TBMU_EVSE_DC_MIN_VOLTAGE = 0;
|
||||
uint16_t TBMU_EVSE_DC_MES_VOLTAGE = 0;
|
||||
|
||||
unsigned long previousMillis10 = 0; // will store last time a 10ms CAN Message was sent
|
||||
unsigned long previousMillis20 = 0; // will store last time a 20ms CAN Message was sent
|
||||
unsigned long previousMillis50 = 0; // will store last time a 50ms CAN Message was sent
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue