Fix crash when AC charger is enabled but initialization fails

This commit is contained in:
Bernhard Kaszt 2023-04-02 10:46:07 +02:00
parent c86c5133f0
commit 4de043f3d4
2 changed files with 9 additions and 5 deletions

View File

@ -89,6 +89,7 @@ private:
MCP_CAN *CAN;
uint8_t _huawei_irq;
uint8_t _huawei_power;
bool initialized = false;
};
extern HuaweiCanClass HuaweiCan;

View File

@ -14,6 +14,8 @@ HuaweiCanClass HuaweiCan;
void HuaweiCanClass::init(uint8_t huawei_miso, uint8_t huawei_mosi, uint8_t huawei_clk, uint8_t huawei_irq, uint8_t huawei_cs, uint8_t huawei_power)
{
initialized = false;
const CONFIG_T& config = Configuration.get();
if (!config.Huawei_Enabled) {
@ -29,13 +31,14 @@ void HuaweiCanClass::init(uint8_t huawei_miso, uint8_t huawei_mosi, uint8_t huaw
_huawei_irq = huawei_irq;
CAN = new MCP_CAN(spi, huawei_cs);
if(CAN->begin(MCP_ANY, CAN_125KBPS, MCP_8MHZ) == CAN_OK) {
MessageOutput.println("MCP2515 Initialized Successfully!");
}
else {
if (!CAN->begin(MCP_ANY, CAN_125KBPS, MCP_8MHZ) == CAN_OK) {
MessageOutput.println("Error Initializing MCP2515...");
return;
}
MessageOutput.println("MCP2515 Initialized Successfully!");
initialized = true;
// Change to normal mode to allow messages to be transmitted
CAN->setMode(MCP_NORMAL);
@ -154,7 +157,7 @@ void HuaweiCanClass::loop()
const CONFIG_T& config = Configuration.get();
if (!config.Huawei_Enabled) {
if (!config.Huawei_Enabled || !initialized) {
return;
}