Added fault state popup
This commit is contained in:
102
commands.cpp
102
commands.cpp
@@ -161,7 +161,7 @@ void Commands::processPacket(QByteArray data)
|
||||
|
||||
values.opState = opStateToStr((OperationalStateTypedef)vb.vbPopFrontUint8());
|
||||
values.balanceActive = vb.vbPopFrontUint8();
|
||||
values.faultState = faultStateToStr((bms_fault_code)vb.vbPopFrontUint8());
|
||||
values.faultState = faultStateToString((bms_fault_code)vb.vbPopFrontUint8());
|
||||
emit valuesReceived(values);
|
||||
} break;
|
||||
|
||||
@@ -271,6 +271,12 @@ void Commands::processPacket(QByteArray data)
|
||||
emit ackReceived(tr("Network settings applied successfully"));
|
||||
break;
|
||||
}
|
||||
case COMM_GET_FAULT_STATE:
|
||||
{
|
||||
const auto state = static_cast<bms_fault_code>(vb.vbPopFrontUint16());
|
||||
emit faultStateReceived(faultStateToType(state), faultStateToString(state));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -367,6 +373,13 @@ void Commands::setNetSettings(QStringList settings)
|
||||
emitData(vb);
|
||||
}
|
||||
|
||||
void Commands::getFaultState()
|
||||
{
|
||||
VByteArray vb;
|
||||
vb.vbAppendInt8(COMM_GET_FAULT_STATE);
|
||||
emitData(vb);
|
||||
}
|
||||
|
||||
void Commands::sendTerminalCmd(QString cmd)
|
||||
{
|
||||
VByteArray vb;
|
||||
@@ -615,34 +628,67 @@ QString Commands::opStateToStr(OperationalStateTypedef fault)
|
||||
}
|
||||
}
|
||||
|
||||
QString Commands::faultStateToStr(bms_fault_code fault)
|
||||
QString Commands::faultStateToString(bms_fault_code fault)
|
||||
{
|
||||
switch (fault) {
|
||||
case FAULT_CODE_NONE: return "System OK";
|
||||
case FAULT_CODE_PACK_OVER_VOLTAGE: return "Pack overvoltage";
|
||||
case FAULT_CODE_PACK_UNDER_VOLTAGE: return "Pack undervoltage";
|
||||
case FAULT_CODE_LOAD_OVER_VOLTAGE: return "Load overvoltage";
|
||||
case FAULT_CODE_LOAD_UNDER_VOLTAGE: return "Load undervoltage";
|
||||
case FAULT_CODE_CHARGER_OVER_VOLTAGE: return "Charger overvoltage";
|
||||
case FAULT_CODE_CHARGER_UNDER_VOLTAGE: return "Charger undervoltgae";
|
||||
case FAULT_CODE_CELL_HARD_OVER_VOLTAGE: return "Cell hard overvoltage";
|
||||
case FAULT_CODE_CELL_HARD_UNDER_VOLTAGE: return "Cell hard undervoltage";
|
||||
case FAULT_CODE_CELL_SOFT_OVER_VOLTAGE: return "Cell soft overvoltage";
|
||||
case FAULT_CODE_CELL_SOFT_UNDER_VOLTAGE: return "Cell soft undervoltage";
|
||||
case FAULT_CODE_MAX_UVP_OVP_ERRORS: return "MAX OVP/UVP errors";
|
||||
case FAULT_CODE_MAX_UVT_OVT_ERRORS: return "MAX OVT/UVT errors";
|
||||
case FAULT_CODE_OVER_CURRENT: return "Over current";
|
||||
case FAULT_CODE_OVER_TEMP_BMS: return "Over temp BMS";
|
||||
case FAULT_CODE_UNDER_TEMP_BMS: return "Under temp BMS";
|
||||
case FAULT_CODE_DISCHARGE_OVER_TEMP_CELLS: return "Discharge over temp cell";
|
||||
case FAULT_CODE_DISCHARGE_UNDER_TEMP_CELLS: return "Discharge under temp cell";
|
||||
case FAULT_CODE_CHARGE_OVER_TEMP_CELLS: return "Charge over temp cell";
|
||||
case FAULT_CODE_CHARGE_UNDER_TEMP_CELLS: return "Charge under temp cell";
|
||||
case FAULT_CODE_PRECHARGE_TIMEOUT: return "Precharge timeout";
|
||||
case FAULT_CODE_DISCHARGE_RETRY: return "Discharge retry";
|
||||
case FAULT_CODE_CHARGE_RETRY: return "Charge retry";
|
||||
case FAULT_CODE_CHARGER_DISCONNECT: return "Charge retry";
|
||||
default: return "Unknown fault";
|
||||
switch (fault)
|
||||
{
|
||||
case FAULT_CODE_NONE: return tr("System ok");
|
||||
case FAULT_CODE_PACK_OVER_VOLTAGE: return tr("Pack overvoltage");
|
||||
case FAULT_CODE_PACK_UNDER_VOLTAGE: return tr("Pack undervoltage");
|
||||
case FAULT_CODE_LOAD_OVER_VOLTAGE: return tr("Load overvoltage");
|
||||
case FAULT_CODE_LOAD_UNDER_VOLTAGE: return tr("Load undervoltage");
|
||||
case FAULT_CODE_CHARGER_OVER_VOLTAGE: return tr("Charger overvoltage");
|
||||
case FAULT_CODE_CHARGER_UNDER_VOLTAGE: return tr("Charger undervoltgae");
|
||||
case FAULT_CODE_CELL_HARD_OVER_VOLTAGE: return tr("Cell hard overvoltage");
|
||||
case FAULT_CODE_CELL_HARD_UNDER_VOLTAGE: return tr("Cell hard undervoltage");
|
||||
case FAULT_CODE_CELL_SOFT_OVER_VOLTAGE: return tr("Cell soft overvoltage");
|
||||
case FAULT_CODE_CELL_SOFT_UNDER_VOLTAGE: return tr("Cell soft undervoltage");
|
||||
case FAULT_CODE_MAX_UVP_OVP_ERRORS: return tr("Too high or too low voltage");
|
||||
case FAULT_CODE_MAX_UVT_OVT_ERRORS: return tr("Too high or too low temperature");
|
||||
case FAULT_CODE_OVER_CURRENT: return tr("Over current");
|
||||
case FAULT_CODE_OVER_TEMP_BMS: return tr("Over temperature BMS");
|
||||
case FAULT_CODE_UNDER_TEMP_BMS: return tr("Under temperature BMS");
|
||||
case FAULT_CODE_DISCHARGE_OVER_TEMP_CELLS: return tr("Discharge over temperature cell");
|
||||
case FAULT_CODE_DISCHARGE_UNDER_TEMP_CELLS: return tr("Discharge under temperature cell");
|
||||
case FAULT_CODE_CHARGE_OVER_TEMP_CELLS: return tr("Charge over temperature cell");
|
||||
case FAULT_CODE_CHARGE_UNDER_TEMP_CELLS: return tr("Charge under temperature cell");
|
||||
case FAULT_CODE_PRECHARGE_TIMEOUT: return tr("Precharge timeout");
|
||||
case FAULT_CODE_DISCHARGE_RETRY: return tr("Discharge retry");
|
||||
case FAULT_CODE_CHARGE_RETRY: return tr("Charge retry");
|
||||
case FAULT_CODE_CHARGER_DISCONNECT: return tr("Charge retry");
|
||||
default: return tr("Unknown state");
|
||||
}
|
||||
}
|
||||
|
||||
DataTypes::StateType Commands::faultStateToType(bms_fault_code fault)
|
||||
{
|
||||
switch (fault)
|
||||
{
|
||||
case FAULT_CODE_NONE: return DataTypes::StateType::Good;
|
||||
case FAULT_CODE_PACK_OVER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_PACK_UNDER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_LOAD_OVER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_LOAD_UNDER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_CHARGER_OVER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_CHARGER_UNDER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_CELL_HARD_OVER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_CELL_HARD_UNDER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_CELL_SOFT_OVER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_CELL_SOFT_UNDER_VOLTAGE: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_MAX_UVP_OVP_ERRORS: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_MAX_UVT_OVT_ERRORS: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_OVER_CURRENT: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_OVER_TEMP_BMS: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_UNDER_TEMP_BMS: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_DISCHARGE_OVER_TEMP_CELLS: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_DISCHARGE_UNDER_TEMP_CELLS: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_CHARGE_OVER_TEMP_CELLS: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_CHARGE_UNDER_TEMP_CELLS: return DataTypes::StateType::Error;
|
||||
case FAULT_CODE_PRECHARGE_TIMEOUT: return DataTypes::StateType::Warning;
|
||||
case FAULT_CODE_DISCHARGE_RETRY: return DataTypes::StateType::Info;
|
||||
case FAULT_CODE_CHARGE_RETRY: return DataTypes::StateType::Info;
|
||||
case FAULT_CODE_CHARGER_DISCONNECT: return DataTypes::StateType::Info;
|
||||
default: return DataTypes::StateType::Info;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user