mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-06 03:50:13 +02:00
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
This commit is contained in:
parent
cf68489bf8
commit
5c3aaf0a22
4 changed files with 19 additions and 62 deletions
|
@ -8,83 +8,40 @@
|
|||
// Available generic battery commands that are taken into use based on what the selected battery supports.
|
||||
std::vector<BatteryCommand> battery_commands = {
|
||||
{"clearIsolation", "Clear isolation fault", "clear any active isolation fault?",
|
||||
[](Battery* b) { return b && b->supports_clear_isolation(); },
|
||||
[](Battery* b) {
|
||||
b->clear_isolation();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_clear_isolation(); }, [](Battery* b) { b->clear_isolation(); }},
|
||||
{"chademoRestart", "Restart", "restart the V2X session?",
|
||||
[](Battery* b) { return b && b->supports_chademo_restart(); },
|
||||
[](Battery* b) {
|
||||
b->chademo_restart();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_chademo_restart(); }, [](Battery* b) { b->chademo_restart(); }},
|
||||
{"chademoStop", "Stop", "stop V2X?", [](Battery* b) { return b && b->supports_chademo_restart(); },
|
||||
[](Battery* b) {
|
||||
b->chademo_restart();
|
||||
}},
|
||||
[](Battery* b) { b->chademo_restart(); }},
|
||||
{"resetBMS", "BMS reset", "reset the BMS?", [](Battery* b) { return b && b->supports_reset_BMS(); },
|
||||
[](Battery* b) {
|
||||
b->reset_BMS();
|
||||
}},
|
||||
[](Battery* b) { b->reset_BMS(); }},
|
||||
{"resetSOC", "SOC reset", "reset SOC?", [](Battery* b) { return b && b->supports_reset_SOC(); },
|
||||
[](Battery* b) {
|
||||
b->reset_SOC();
|
||||
}},
|
||||
[](Battery* b) { b->reset_SOC(); }},
|
||||
{"resetCrash", "Unlock crashed BMS",
|
||||
"reset crash data? Note this will unlock your BMS and enable contactor closing and SOC calculation.",
|
||||
[](Battery* b) { return b && b->supports_reset_crash(); },
|
||||
[](Battery* b) {
|
||||
b->reset_crash();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_reset_crash(); }, [](Battery* b) { b->reset_crash(); }},
|
||||
{"resetNVROL", "Perform NVROL reset",
|
||||
"trigger an NVROL reset? Battery will be unavailable for 30 seconds while this is active!",
|
||||
[](Battery* b) { return b && b->supports_reset_NVROL(); },
|
||||
[](Battery* b) {
|
||||
b->reset_NVROL();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_reset_NVROL(); }, [](Battery* b) { b->reset_NVROL(); }},
|
||||
{"resetContactor", "Perform contactor reset", "reset contactors?",
|
||||
[](Battery* b) { return b && b->supports_contactor_reset(); },
|
||||
[](Battery* b) {
|
||||
b->reset_contactor();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_contactor_reset(); }, [](Battery* b) { b->reset_contactor(); }},
|
||||
{"resetDTC", "Erase DTC", "erase DTCs?", [](Battery* b) { return b && b->supports_reset_DTC(); },
|
||||
[](Battery* b) {
|
||||
b->reset_DTC();
|
||||
}},
|
||||
[](Battery* b) { b->reset_DTC(); }},
|
||||
{"readDTC", "Read DTC (result must be checked in CANlog)", nullptr,
|
||||
[](Battery* b) { return b && b->supports_read_DTC(); },
|
||||
[](Battery* b) {
|
||||
b->read_DTC();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_read_DTC(); }, [](Battery* b) { b->read_DTC(); }},
|
||||
{"resetBECM", "Restart BECM module", "restart BECM??", [](Battery* b) { return b && b->supports_reset_DTC(); },
|
||||
[](Battery* b) {
|
||||
b->reset_DTC();
|
||||
}},
|
||||
[](Battery* b) { b->reset_DTC(); }},
|
||||
{"contactorClose", "Close Contactors", "a contactor close request?",
|
||||
[](Battery* b) { return b && b->supports_contactor_close(); },
|
||||
[](Battery* b) {
|
||||
b->request_close_contactors();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_contactor_close(); }, [](Battery* b) { b->request_close_contactors(); }},
|
||||
{"contactorOpen", "Open Contactors", "a contactor open request?",
|
||||
[](Battery* b) { return b && b->supports_contactor_close(); },
|
||||
[](Battery* b) {
|
||||
b->request_open_contactors();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_contactor_close(); }, [](Battery* b) { b->request_open_contactors(); }},
|
||||
{"resetSOH", "Reset degradation data", "reset degradation data?",
|
||||
[](Battery* b) { return b && b->supports_reset_SOH(); },
|
||||
[](Battery* b) {
|
||||
b->reset_SOH();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_reset_SOH(); }, [](Battery* b) { b->reset_SOH(); }},
|
||||
{"setFactoryMode", "Set Factory Mode", "set factory mode and disable isolation measurement?",
|
||||
[](Battery* b) { return b && b->supports_factory_mode_method(); },
|
||||
[](Battery* b) {
|
||||
b->set_factory_mode();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_factory_mode_method(); }, [](Battery* b) { b->set_factory_mode(); }},
|
||||
{"toggleSOC", "Toggle SOC method",
|
||||
"toggle SOC method? This will toggle between ESTIMATED and MEASURED SOC methods.",
|
||||
[](Battery* b) { return b && b->supports_toggle_SOC_method(); },
|
||||
[](Battery* b) {
|
||||
b->toggle_SOC_method();
|
||||
}},
|
||||
[](Battery* b) { return b && b->supports_toggle_SOC_method(); }, [](Battery* b) { b->toggle_SOC_method(); }},
|
||||
};
|
||||
|
||||
String advanced_battery_processor(const String& var) {
|
||||
|
|
|
@ -22,7 +22,7 @@ class KostalInverterProtocol : public Rs485InverterProtocol {
|
|||
bool check_kostal_frame_crc(int len);
|
||||
|
||||
// How many value updates we can go without inverter gets reported as missing \
|
||||
// e.g. value set to 12, 12*5sec=60seconds without comm before event is raised
|
||||
// e.g. value set to 12, 12*5sec=60seconds without comm before event is raised
|
||||
const int RS485_HEALTHY = 12;
|
||||
|
||||
const uint8_t KOSTAL_FRAMEHEADER[5] = {0x62, 0xFF, 0x02, 0xFF, 0x29};
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#define SEND_0 //If defined, the messages will have ID ending with 0 (useful for some inverters)
|
||||
//#define SEND_1 //If defined, the messages will have ID ending with 1 (useful for some inverters)
|
||||
#define INVERT_LOW_HIGH_BYTES //If defined, certain frames will have inverted low/high bytes \
|
||||
//useful for some inverters like Sofar that report the voltages incorrect otherwise
|
||||
//useful for some inverters like Sofar that report the voltages incorrect otherwise
|
||||
//#define SET_30K_OFFSET //If defined, current values are sent with a 30k offest (useful for ferroamp)
|
||||
|
||||
void PylonInverter::
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#define SEND_0 //If defined, the messages will have ID ending with 0 (useful for some inverters)
|
||||
//#define SEND_1 //If defined, the messages will have ID ending with 1 (useful for some inverters)
|
||||
#define INVERT_LOW_HIGH_BYTES //If defined, certain frames will have inverted low/high bytes \
|
||||
//useful for some inverters like Sofar that report the voltages incorrect otherwise
|
||||
//useful for some inverters like Sofar that report the voltages incorrect otherwise
|
||||
//#define SET_30K_OFFSET //If defined, current values are sent with a 30k offest (useful for ferroamp)
|
||||
|
||||
void SolxpowInverter::
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue