mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 17:59:27 +02:00
Further improve sending
This commit is contained in:
parent
657656b1f5
commit
ff71cadcb2
2 changed files with 63 additions and 0 deletions
|
@ -201,6 +201,8 @@ void FordMachEBattery::transmit_can(unsigned long currentMillis) {
|
||||||
// Byte 3: starts at 0xFC and decrements by 1 each step, wraps every 16 steps
|
// Byte 3: starts at 0xFC and decrements by 1 each step, wraps every 16 steps
|
||||||
FORD_415.data.u8[3] = 0xFC - counter_30ms;
|
FORD_415.data.u8[3] = 0xFC - counter_30ms;
|
||||||
|
|
||||||
|
//TODO: handle FORD_4C properly very odd looping
|
||||||
|
|
||||||
transmit_can_frame(&FORD_77);
|
transmit_can_frame(&FORD_77);
|
||||||
transmit_can_frame(&FORD_7D);
|
transmit_can_frame(&FORD_7D);
|
||||||
transmit_can_frame(&FORD_167);
|
transmit_can_frame(&FORD_167);
|
||||||
|
@ -210,12 +212,17 @@ void FordMachEBattery::transmit_can(unsigned long currentMillis) {
|
||||||
transmit_can_frame(&FORD_47);
|
transmit_can_frame(&FORD_47);
|
||||||
transmit_can_frame(&FORD_230);
|
transmit_can_frame(&FORD_230);
|
||||||
transmit_can_frame(&FORD_415);
|
transmit_can_frame(&FORD_415);
|
||||||
|
transmit_can_frame(&FORD_4C);
|
||||||
|
transmit_can_frame(&FORD_7E);
|
||||||
|
transmit_can_frame(&FORD_48);
|
||||||
|
transmit_can_frame(&FORD_165);
|
||||||
}
|
}
|
||||||
// Send 50ms CAN Message
|
// Send 50ms CAN Message
|
||||||
if (currentMillis - previousMillis50 >= INTERVAL_50_MS) {
|
if (currentMillis - previousMillis50 >= INTERVAL_50_MS) {
|
||||||
previousMillis50 = currentMillis;
|
previousMillis50 = currentMillis;
|
||||||
transmit_can_frame(&FORD_42C);
|
transmit_can_frame(&FORD_42C);
|
||||||
transmit_can_frame(&FORD_42F);
|
transmit_can_frame(&FORD_42F);
|
||||||
|
transmit_can_frame(&FORD_43D);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send 100ms CAN Message
|
// Send 100ms CAN Message
|
||||||
|
@ -227,6 +234,12 @@ void FordMachEBattery::transmit_can(unsigned long currentMillis) {
|
||||||
transmit_can_frame(&FORD_332);
|
transmit_can_frame(&FORD_332);
|
||||||
transmit_can_frame(&FORD_333);
|
transmit_can_frame(&FORD_333);
|
||||||
transmit_can_frame(&FORD_42B);
|
transmit_can_frame(&FORD_42B);
|
||||||
|
transmit_can_frame(&FORD_2EC);
|
||||||
|
transmit_can_frame(&FORD_156);
|
||||||
|
transmit_can_frame(
|
||||||
|
&FORD_5A); //This message actually has checksum/counter, but it seems to close contactors without those
|
||||||
|
transmit_can_frame(&FORD_166);
|
||||||
|
transmit_can_frame(&FORD_175);
|
||||||
}
|
}
|
||||||
// Send 1s CAN Message
|
// Send 1s CAN Message
|
||||||
if (currentMillis - previousMillis1000 >= INTERVAL_1_S) {
|
if (currentMillis - previousMillis1000 >= INTERVAL_1_S) {
|
||||||
|
|
|
@ -40,6 +40,21 @@ class FordMachEBattery : public CanBattery {
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
.ID = 0x047,
|
.ID = 0x047,
|
||||||
.data = {0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
.data = {0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||||
|
CAN_frame FORD_48 = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x048,
|
||||||
|
.data = {0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||||
|
CAN_frame FORD_4C = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x04C,
|
||||||
|
.data = {0x70, 0xAA, 0xBF, 0xDE, 0xCC, 0xEC, 0x00, 0x00}};
|
||||||
|
CAN_frame FORD_5A = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x05A,
|
||||||
|
.data = {0x00, 0x00, 0x00, 0x0B, 0xF2, 0x90, 0x10, 0x00}};
|
||||||
CAN_frame FORD_77 = {.FD = false,
|
CAN_frame FORD_77 = {.FD = false,
|
||||||
.ext_ID = false,
|
.ext_ID = false,
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
|
@ -50,11 +65,36 @@ class FordMachEBattery : public CanBattery {
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
.ID = 0x07D,
|
.ID = 0x07D,
|
||||||
.data = {0x00, 0x00, 0xF0, 0xF0, 0x00, 0x3F, 0xEF, 0xFE}};
|
.data = {0x00, 0x00, 0xF0, 0xF0, 0x00, 0x3F, 0xEF, 0xFE}};
|
||||||
|
CAN_frame FORD_7E = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x07E,
|
||||||
|
.data = {0x00, 0x00, 0x3E, 0x80, 0x00, 0x04, 0x00, 0x00}};
|
||||||
|
CAN_frame FORD_156 = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x156,
|
||||||
|
.data = {0x4B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00}};
|
||||||
|
CAN_frame FORD_165 = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x165,
|
||||||
|
.data = {0x10, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||||
|
CAN_frame FORD_166 = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x166,
|
||||||
|
.data = {0x00, 0x00, 0x00, 0x01, 0x5C, 0x89, 0x00, 0x00}};
|
||||||
CAN_frame FORD_167 = {.FD = false,
|
CAN_frame FORD_167 = {.FD = false,
|
||||||
.ext_ID = false,
|
.ext_ID = false,
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
.ID = 0x167,
|
.ID = 0x167,
|
||||||
.data = {0x00, 0x80, 0x00, 0x11, 0xFF, 0xE0, 0x00, 0x00}};
|
.data = {0x00, 0x80, 0x00, 0x11, 0xFF, 0xE0, 0x00, 0x00}};
|
||||||
|
CAN_frame FORD_175 = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x175,
|
||||||
|
.data = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||||
CAN_frame FORD_12F = {.FD = false,
|
CAN_frame FORD_12F = {.FD = false,
|
||||||
.ext_ID = false,
|
.ext_ID = false,
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
|
@ -80,6 +120,11 @@ class FordMachEBattery : public CanBattery {
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
.ID = 0x25B,
|
.ID = 0x25B,
|
||||||
.data = {0x01, 0xF4, 0x09, 0xF4, 0xE0, 0x00, 0x80, 0x00}};
|
.data = {0x01, 0xF4, 0x09, 0xF4, 0xE0, 0x00, 0x80, 0x00}};
|
||||||
|
CAN_frame FORD_2EC = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x2EC,
|
||||||
|
.data = {0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}};
|
||||||
CAN_frame FORD_332 = {.FD = false,
|
CAN_frame FORD_332 = {.FD = false,
|
||||||
.ext_ID = false,
|
.ext_ID = false,
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
|
@ -115,6 +160,11 @@ class FordMachEBattery : public CanBattery {
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
.ID = 0x42F,
|
.ID = 0x42F,
|
||||||
.data = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
.data = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||||
|
CAN_frame FORD_43D = {.FD = false,
|
||||||
|
.ext_ID = false,
|
||||||
|
.DLC = 8,
|
||||||
|
.ID = 0x43D,
|
||||||
|
.data = {0x00, 0x00, 0xDC, 0x00, 0x00, 0x77, 0x00, 0x00}};
|
||||||
CAN_frame FORD_442 = {.FD = false,
|
CAN_frame FORD_442 = {.FD = false,
|
||||||
.ext_ID = false,
|
.ext_ID = false,
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue