mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-05 10:49:42 +02:00
Merge pull request #452 from dalathegreat/bugfix/SMA-pairing
Bugfix: SMA pairing reliability
This commit is contained in:
commit
ccb2db87ec
2 changed files with 29 additions and 21 deletions
|
@ -6,7 +6,7 @@
|
||||||
/* TODO: Map error bits in 0x158 */
|
/* TODO: Map error bits in 0x158 */
|
||||||
|
|
||||||
/* Do not change code below unless you are sure what you are doing */
|
/* Do not change code below unless you are sure what you are doing */
|
||||||
static unsigned long previousMillis60s = 0;
|
static unsigned long previousMillis100ms = 0;
|
||||||
|
|
||||||
//Actual content messages
|
//Actual content messages
|
||||||
CAN_frame SMA_358 = {.FD = false,
|
CAN_frame SMA_358 = {.FD = false,
|
||||||
|
@ -51,7 +51,7 @@ CAN_frame SMA_598 = {.FD = false,
|
||||||
.ext_ID = false,
|
.ext_ID = false,
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
.ID = 0x598,
|
.ID = 0x598,
|
||||||
.data = {0x00, 0xD3, 0x00, 0x01, 0x5C, 0x98, 0xB6, 0xEE}};
|
.data = {0x00, 0x01, 0x0F, 0x2C, 0x5C, 0x98, 0xB6, 0xEE}};
|
||||||
CAN_frame SMA_5D8 = {.FD = false,
|
CAN_frame SMA_5D8 = {.FD = false,
|
||||||
.ext_ID = false,
|
.ext_ID = false,
|
||||||
.DLC = 8,
|
.DLC = 8,
|
||||||
|
@ -221,12 +221,14 @@ void receive_can_inverter(CAN_frame rx_frame) {
|
||||||
break;
|
break;
|
||||||
case 0x420: //Message originating from SMA inverter - Timestamp
|
case 0x420: //Message originating from SMA inverter - Timestamp
|
||||||
//Frame0-3 Timestamp
|
//Frame0-3 Timestamp
|
||||||
|
/*
|
||||||
transmit_can(&SMA_158, can_config.inverter);
|
transmit_can(&SMA_158, can_config.inverter);
|
||||||
transmit_can(&SMA_358, can_config.inverter);
|
transmit_can(&SMA_358, can_config.inverter);
|
||||||
transmit_can(&SMA_3D8, can_config.inverter);
|
transmit_can(&SMA_3D8, can_config.inverter);
|
||||||
transmit_can(&SMA_458, can_config.inverter);
|
transmit_can(&SMA_458, can_config.inverter);
|
||||||
transmit_can(&SMA_518, can_config.inverter);
|
transmit_can(&SMA_518, can_config.inverter);
|
||||||
transmit_can(&SMA_4D8, can_config.inverter);
|
transmit_can(&SMA_4D8, can_config.inverter);
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
case 0x5E0: //Message originating from SMA inverter - String
|
case 0x5E0: //Message originating from SMA inverter - String
|
||||||
break;
|
break;
|
||||||
|
@ -254,15 +256,17 @@ void receive_can_inverter(CAN_frame rx_frame) {
|
||||||
void send_can_inverter() {
|
void send_can_inverter() {
|
||||||
unsigned long currentMillis = millis();
|
unsigned long currentMillis = millis();
|
||||||
|
|
||||||
// Send CAN Message every 60s
|
// Send CAN Message every 100ms if we're enabled
|
||||||
if (currentMillis - previousMillis60s >= INTERVAL_60_S) {
|
if (datalayer.system.status.inverter_allows_contactor_closing) {
|
||||||
previousMillis60s = currentMillis;
|
if (currentMillis - previousMillis100ms >= 100) {
|
||||||
transmit_can(&SMA_158, can_config.inverter);
|
previousMillis100ms = currentMillis;
|
||||||
transmit_can(&SMA_358, can_config.inverter);
|
transmit_can(&SMA_158, can_config.inverter);
|
||||||
transmit_can(&SMA_3D8, can_config.inverter);
|
transmit_can(&SMA_358, can_config.inverter);
|
||||||
transmit_can(&SMA_458, can_config.inverter);
|
transmit_can(&SMA_3D8, can_config.inverter);
|
||||||
transmit_can(&SMA_518, can_config.inverter);
|
transmit_can(&SMA_458, can_config.inverter);
|
||||||
transmit_can(&SMA_4D8, can_config.inverter);
|
transmit_can(&SMA_518, can_config.inverter);
|
||||||
|
transmit_can(&SMA_4D8, can_config.inverter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
/* TODO: Map error bits in 0x158 */
|
/* TODO: Map error bits in 0x158 */
|
||||||
|
|
||||||
/* Do not change code below unless you are sure what you are doing */
|
/* Do not change code below unless you are sure what you are doing */
|
||||||
static unsigned long previousMillis60s = 0;
|
static unsigned long previousMillis100ms = 0;
|
||||||
|
|
||||||
//Actual content messages
|
//Actual content messages
|
||||||
CAN_frame SMA_558 = {.FD = false,
|
CAN_frame SMA_558 = {.FD = false,
|
||||||
|
@ -218,12 +218,14 @@ void receive_can_inverter(CAN_frame rx_frame) {
|
||||||
break;
|
break;
|
||||||
case 0x420: //Message originating from SMA inverter - Timestamp
|
case 0x420: //Message originating from SMA inverter - Timestamp
|
||||||
//Frame0-3 Timestamp
|
//Frame0-3 Timestamp
|
||||||
|
/*
|
||||||
transmit_can(&SMA_158, can_config.inverter);
|
transmit_can(&SMA_158, can_config.inverter);
|
||||||
transmit_can(&SMA_358, can_config.inverter);
|
transmit_can(&SMA_358, can_config.inverter);
|
||||||
transmit_can(&SMA_3D8, can_config.inverter);
|
transmit_can(&SMA_3D8, can_config.inverter);
|
||||||
transmit_can(&SMA_458, can_config.inverter);
|
transmit_can(&SMA_458, can_config.inverter);
|
||||||
transmit_can(&SMA_518, can_config.inverter);
|
transmit_can(&SMA_518, can_config.inverter);
|
||||||
transmit_can(&SMA_4D8, can_config.inverter);
|
transmit_can(&SMA_4D8, can_config.inverter);
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
case 0x5E0: //Message originating from SMA inverter - String
|
case 0x5E0: //Message originating from SMA inverter - String
|
||||||
break;
|
break;
|
||||||
|
@ -251,16 +253,18 @@ void receive_can_inverter(CAN_frame rx_frame) {
|
||||||
void send_can_inverter() {
|
void send_can_inverter() {
|
||||||
unsigned long currentMillis = millis();
|
unsigned long currentMillis = millis();
|
||||||
|
|
||||||
// Send CAN Message every 60s
|
// Send CAN Message every 100ms if Enable line is HIGH
|
||||||
if (currentMillis - previousMillis60s >= INTERVAL_60_S) {
|
if (datalayer.system.status.inverter_allows_contactor_closing) {
|
||||||
previousMillis60s = currentMillis;
|
if (currentMillis - previousMillis100ms >= 100) {
|
||||||
|
previousMillis100ms = currentMillis;
|
||||||
|
|
||||||
transmit_can(&SMA_158, can_config.inverter);
|
transmit_can(&SMA_158, can_config.inverter);
|
||||||
transmit_can(&SMA_358, can_config.inverter);
|
transmit_can(&SMA_358, can_config.inverter);
|
||||||
transmit_can(&SMA_3D8, can_config.inverter);
|
transmit_can(&SMA_3D8, can_config.inverter);
|
||||||
transmit_can(&SMA_458, can_config.inverter);
|
transmit_can(&SMA_458, can_config.inverter);
|
||||||
transmit_can(&SMA_518, can_config.inverter);
|
transmit_can(&SMA_518, can_config.inverter);
|
||||||
transmit_can(&SMA_4D8, can_config.inverter);
|
transmit_can(&SMA_4D8, can_config.inverter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue