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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@ signals:
|
||||
void valuesSetupReceived(BMS_VALUES values);
|
||||
void pingCanRx(QVector<int> devs, bool isTimeout);
|
||||
void netSettingsReceived(QStringList settings);
|
||||
void faultStateReceived(DataTypes::StateType faultType, QString faultString);
|
||||
|
||||
public slots:
|
||||
void processPacket(QByteArray data);
|
||||
@@ -84,6 +85,7 @@ public slots:
|
||||
void getNetSettings();
|
||||
void getNetDefaultSettings();
|
||||
void setNetSettings(QStringList settings);
|
||||
void getFaultState();
|
||||
void sendTerminalCmd(QString cmd);
|
||||
void setDetect(disp_pos_mode mode);
|
||||
void samplePrint(debug_sampling_mode mode, int sample_len, int dec);
|
||||
@@ -102,7 +104,8 @@ private:
|
||||
void emitData(QByteArray data);
|
||||
void firmwareUploadUpdate(bool isTimeout);
|
||||
QString opStateToStr(OperationalStateTypedef fault);
|
||||
QString faultStateToStr(bms_fault_code fault);
|
||||
QString faultStateToString(bms_fault_code fault);
|
||||
DataTypes::StateType faultStateToType(bms_fault_code fault);
|
||||
|
||||
QTimer *mTimer;
|
||||
bool mSendCan;
|
||||
|
||||
18
datatypes.h
18
datatypes.h
@@ -84,6 +84,8 @@ typedef enum {
|
||||
FAULT_CODE_PRECHARGE_TIMEOUT,
|
||||
FAULT_CODE_DISCHARGE_RETRY,
|
||||
FAULT_CODE_CHARGE_RETRY,
|
||||
FAULT_CODE_CAN_DELAYED_POWER_DOWN,
|
||||
FAULT_CODE_NOT_USED_TIMEOUT,
|
||||
FAULT_CODE_CHARGER_DISCONNECT
|
||||
} bms_fault_code;
|
||||
|
||||
@@ -419,6 +421,7 @@ typedef enum {
|
||||
COMM_GET_BMS_NET_SETTINGS,
|
||||
COMM_GET_BMS_NET_DEFAULT_SETTINGS,
|
||||
COMM_SET_BMS_NET_SETTINGS,
|
||||
COMM_GET_FAULT_STATE,
|
||||
} COMM_PACKET_ID;
|
||||
|
||||
typedef struct {
|
||||
@@ -469,4 +472,19 @@ typedef enum {
|
||||
OP_STATE_FORCEON, // 11
|
||||
} OperationalStateTypedef;
|
||||
|
||||
namespace DataTypes
|
||||
{
|
||||
Q_NAMESPACE
|
||||
|
||||
enum class StateType
|
||||
{
|
||||
Neutral,
|
||||
Info,
|
||||
Good,
|
||||
Warning,
|
||||
Error
|
||||
};
|
||||
Q_ENUM_NS(StateType);
|
||||
}
|
||||
|
||||
#endif // DATATYPES_H
|
||||
|
||||
3
main.cpp
3
main.cpp
@@ -79,6 +79,9 @@ int main(int argc, char *argv[])
|
||||
qmlRegisterType<FirmwareUpdateHelper>("Cubo", 1, 0, "FirmwareUpdateHelper");
|
||||
qmlRegisterType<CurrentTableModel>("Cubo", 1, 0, "CurrentTableModel");
|
||||
|
||||
qmlRegisterUncreatableMetaObject(DataTypes::staticMetaObject, "Cubo", 1, 0, "DataTypes", "Error: only enums");
|
||||
qRegisterMetaType<DataTypes::StateType>("DataTypes::StateType");
|
||||
|
||||
engine.addImportPath(QStringLiteral("qrc:/"));
|
||||
engine.load(QUrl(QStringLiteral("qrc:/MainWindow.qml")));
|
||||
|
||||
|
||||
12
qml/Icons/error-state.svg
Normal file
12
qml/Icons/error-state.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1401_2121)">
|
||||
<circle cx="12" cy="12.5" r="11" stroke="#CF3200" stroke-width="2"/>
|
||||
<path d="M12 6.5L12 14.5" stroke="#CF3200" stroke-width="2"/>
|
||||
<path d="M12 16L12 18" stroke="#CF3200" stroke-width="2" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1401_2121">
|
||||
<rect width="24" height="24" fill="white" transform="translate(0 0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 492 B |
12
qml/Icons/good-state.svg
Normal file
12
qml/Icons/good-state.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1401_2104)">
|
||||
<path d="M6 12.95L9.85714 17L18 8" stroke="#009352" stroke-width="2" stroke-linejoin="round"/>
|
||||
<circle cx="12" cy="12.5" r="11" stroke="#009352" stroke-width="2"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1401_2104">
|
||||
<rect width="24" height="24" fill="white" transform="translate(0 0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
After Width: | Height: | Size: 443 B |
12
qml/Icons/info-state.svg
Normal file
12
qml/Icons/info-state.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1401_2130)">
|
||||
<path d="M12 23.5V24.5V23.5ZM12 1.5V0.5V1.5ZM1 12.5H0H1ZM2.65602 18.3044L3.60879 18.6081C3.69622 18.3338 3.66119 18.0351 3.51265 17.7885L2.65602 18.3044ZM1 23.5L0.0472261 23.1963C-0.0638084 23.5447 0.0241315 23.9259 0.276556 24.1904C0.52898 24.4549 0.905642 24.5606 1.25881 24.4659L1 23.5ZM6.5 22.0263L6.99158 21.1555C6.76354 21.0268 6.49412 20.9926 6.24119 21.0604L6.5 22.0263ZM2.5 18.0453L1.63627 18.5495L1.64336 18.5612L2.5 18.0453ZM6.68517 22.1308L6.19357 23.0017L6.20203 23.0064L6.68517 22.1308ZM12 24.5C15.1826 24.5 18.2348 23.2357 20.4853 20.9853L19.0711 19.5711C17.1957 21.4464 14.6522 22.5 12 22.5V24.5ZM20.4853 20.9853C22.7357 18.7348 24 15.6826 24 12.5H22C22 15.1522 20.9464 17.6957 19.0711 19.5711L20.4853 20.9853ZM24 12.5C24 9.3174 22.7357 6.26516 20.4853 4.01472L19.0711 5.42893C20.9464 7.3043 22 9.84783 22 12.5H24ZM20.4853 4.01472C18.2348 1.76428 15.1826 0.5 12 0.5V2.5C14.6522 2.5 17.1957 3.55357 19.0711 5.42893L20.4853 4.01472ZM12 0.5C8.8174 0.5 5.76516 1.76428 3.51472 4.01472L4.92893 5.42893C6.8043 3.55357 9.34784 2.5 12 2.5V0.5ZM3.51472 4.01472C1.26428 6.26516 0 9.3174 0 12.5H2C2 9.84784 3.05357 7.3043 4.92893 5.42893L3.51472 4.01472ZM1.70324 18.0007L0.0472261 23.1963L1.95277 23.8037L3.60879 18.6081L1.70324 18.0007ZM1.25881 24.4659L6.75881 22.9922L6.24119 21.0604L0.741187 22.5341L1.25881 24.4659ZM0 12.5C0 14.6441 0.573832 16.729 1.63635 18.5494L3.36365 17.5412C2.47814 16.0241 2 14.2867 2 12.5H0ZM6.20203 23.0064C7.96181 23.9775 9.95397 24.5 12 24.5V22.5C10.295 22.5 8.63494 22.0646 7.16831 21.2553L6.20203 23.0064ZM1.64336 18.5612L1.79938 18.8203L3.51265 17.7885L3.35664 17.5294L1.64336 18.5612ZM6.00842 22.8971L6.19359 23.0017L7.17675 21.26L6.99158 21.1555L6.00842 22.8971Z" fill="#0A72BA"/>
|
||||
<path d="M7.25 10.75H16.75" stroke="#0A72BA" stroke-width="2" stroke-linejoin="round"/>
|
||||
<path d="M7.25 14.25H13.75" stroke="#0A72BA" stroke-width="2" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1401_2130">
|
||||
<rect width="24" height="24" fill="white" transform="translate(0 0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
12
qml/Icons/neutral-state.svg
Normal file
12
qml/Icons/neutral-state.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1401_2140)">
|
||||
<circle cx="12" cy="12.5" r="11" stroke="#838D97" stroke-width="2"/>
|
||||
<path d="M12 18L12 10" stroke="#838D97" stroke-width="2"/>
|
||||
<path d="M12 8.5L12 6.5" stroke="#838D97" stroke-width="2" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1401_2140">
|
||||
<rect width="24" height="24" fill="white" transform="translate(0 0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 491 B |
12
qml/Icons/warning-state.svg
Normal file
12
qml/Icons/warning-state.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1401_2112)">
|
||||
<path d="M12 23.5V24.5V23.5ZM12 1.5V0.5V1.5ZM1 12.5H0H1ZM2.65602 18.3044L3.60879 18.6081C3.69622 18.3338 3.66119 18.0351 3.51265 17.7885L2.65602 18.3044ZM1 23.5L0.0472261 23.1963C-0.0638084 23.5447 0.0241315 23.9259 0.276556 24.1904C0.52898 24.4549 0.905642 24.5606 1.25881 24.4659L1 23.5ZM6.5 22.0263L6.99158 21.1555C6.76354 21.0268 6.49412 20.9926 6.24119 21.0604L6.5 22.0263ZM2.5 18.0453L1.63627 18.5495L1.64336 18.5612L2.5 18.0453ZM6.68517 22.1308L6.19357 23.0017L6.20203 23.0064L6.68517 22.1308ZM12 24.5C15.1826 24.5 18.2348 23.2357 20.4853 20.9853L19.0711 19.5711C17.1957 21.4464 14.6522 22.5 12 22.5V24.5ZM20.4853 20.9853C22.7357 18.7348 24 15.6826 24 12.5H22C22 15.1522 20.9464 17.6957 19.0711 19.5711L20.4853 20.9853ZM24 12.5C24 9.3174 22.7357 6.26516 20.4853 4.01472L19.0711 5.42893C20.9464 7.3043 22 9.84783 22 12.5H24ZM20.4853 4.01472C18.2348 1.76428 15.1826 0.5 12 0.5V2.5C14.6522 2.5 17.1957 3.55357 19.0711 5.42893L20.4853 4.01472ZM12 0.5C8.8174 0.5 5.76516 1.76428 3.51472 4.01472L4.92893 5.42893C6.8043 3.55357 9.34784 2.5 12 2.5V0.5ZM3.51472 4.01472C1.26428 6.26516 0 9.3174 0 12.5H2C2 9.84784 3.05357 7.3043 4.92893 5.42893L3.51472 4.01472ZM1.70324 18.0007L0.0472261 23.1963L1.95277 23.8037L3.60879 18.6081L1.70324 18.0007ZM1.25881 24.4659L6.75881 22.9922L6.24119 21.0604L0.741187 22.5341L1.25881 24.4659ZM0 12.5C0 14.6441 0.573832 16.729 1.63635 18.5494L3.36365 17.5412C2.47814 16.0241 2 14.2867 2 12.5H0ZM6.20203 23.0064C7.96181 23.9775 9.95397 24.5 12 24.5V22.5C10.295 22.5 8.63494 22.0646 7.16831 21.2553L6.20203 23.0064ZM1.64336 18.5612L1.79938 18.8203L3.51265 17.7885L3.35664 17.5294L1.64336 18.5612ZM6.00842 22.8971L6.19359 23.0017L7.17675 21.26L6.99158 21.1555L6.00842 22.8971Z" fill="#E6C207"/>
|
||||
<path d="M12 6.5L12 14.5" stroke="#E6C207" stroke-width="2"/>
|
||||
<path d="M12 16L12 18" stroke="#E6C207" stroke-width="2" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1401_2112">
|
||||
<rect width="24" height="24" fill="white" transform="translate(0 0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -353,11 +353,16 @@ ApplicationWindow {
|
||||
onPortConnectedChanged: {
|
||||
connectionStatusLabel.text = Qt.binding(function(){ return BmsInterface.isPortConnected() ? qsTr("Connected") : qsTr("Disconnected") })
|
||||
connectionStatusIndicator.enabled = BmsInterface.isPortConnected()
|
||||
faultStateTimer.running = BmsInterface.isPortConnected()
|
||||
|
||||
if (BmsInterface.isPortConnected()) {
|
||||
BmsInterface.commands().getBMSconf()
|
||||
BmsInterface.commands().getFaultState()
|
||||
} else {
|
||||
serialLabel.text = "-"
|
||||
firmwareLabel.text = "-"
|
||||
statusPopup.queue = []
|
||||
faultStatePopup.lastState = ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,6 +424,17 @@ ApplicationWindow {
|
||||
onFwVersionReceived: {
|
||||
firmwareLabel.text = major + "." + minor
|
||||
}
|
||||
onFaultStateReceived: {
|
||||
if (faultStatePopup.lastState != faultString) {
|
||||
faultStatePopup.close()
|
||||
faultStatePopup.lastState = faultString
|
||||
faultStatePopup.text = faultString
|
||||
faultStatePopup.type = faultType
|
||||
faultStatePopup.open()
|
||||
|
||||
Qt.callLater(debugScreen.printMessage, faultString, faultStatePopup.color)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Screens.ConnectionDialog {
|
||||
@@ -457,13 +473,13 @@ ApplicationWindow {
|
||||
onOpened: {
|
||||
hideStatusTimer.start()
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: hideStatusTimer
|
||||
interval: 3000
|
||||
onTriggered: statusPopup.close()
|
||||
}
|
||||
}
|
||||
|
||||
Popup {
|
||||
id: busyPopup
|
||||
@@ -505,6 +521,12 @@ ApplicationWindow {
|
||||
|
||||
onOpened: hideBusyTimer.start()
|
||||
onClosed: hideBusyTimer.stop()
|
||||
|
||||
Timer {
|
||||
id: hideBusyTimer
|
||||
interval: 30000
|
||||
onTriggered: busyPopup.close()
|
||||
}
|
||||
}
|
||||
|
||||
Popup {
|
||||
@@ -549,10 +571,29 @@ ApplicationWindow {
|
||||
}
|
||||
}
|
||||
|
||||
Screens.StatePopup {
|
||||
id: faultStatePopup
|
||||
x: parent.width - width - 45
|
||||
y: 18
|
||||
|
||||
property var lastState: ""
|
||||
|
||||
onOpened: {
|
||||
hideStateTimer.start()
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: hideBusyTimer
|
||||
interval: 30000
|
||||
onTriggered: busyPopup.close()
|
||||
id: hideStateTimer
|
||||
interval: 3000
|
||||
onTriggered: faultStatePopup.close()
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: faultStateTimer
|
||||
interval: 50000
|
||||
repeat: true
|
||||
onTriggered: BmsInterface.commands().getFaultState()
|
||||
}
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
@@ -561,6 +602,6 @@ ApplicationWindow {
|
||||
|
||||
Component.onCompleted: {
|
||||
connectionDialog.open()
|
||||
Qt.callLater(debugScreen.printMessage, qsTr("Tool started"), true)
|
||||
Qt.callLater(debugScreen.printMessage, qsTr("Tool started"))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,23 +37,15 @@ ColumnLayout {
|
||||
|
||||
Connections {
|
||||
target: BmsInterface
|
||||
onStatusMessage: printMessage(msg, isGood)
|
||||
onPortConnectedChanged: printMessage(BmsInterface.getConnectedPortName(), true)
|
||||
onStatusMessage: printMessage(msg, isGood ? Palette.textColor : Palette.invalidColor)
|
||||
onPortConnectedChanged: printMessage(BmsInterface.getConnectedPortName())
|
||||
}
|
||||
|
||||
function printMessage(msg, isGood) {
|
||||
var message = ""
|
||||
|
||||
if (!isGood) {
|
||||
message += "<font color=\"" + Palette.invalidColor + "\">"
|
||||
}
|
||||
function printMessage(msg, color = Palette.textColor) {
|
||||
var message = "<font color=\"" + color + "\">"
|
||||
|
||||
message += new Date().toLocaleString(Qt.locale("en-US"), "dd.MM.yyyy hh:mm:ss") + ": " + msg
|
||||
|
||||
if (!isGood) {
|
||||
message += "</font>"
|
||||
}
|
||||
|
||||
message += "<br>"
|
||||
|
||||
outputArea.insert(outputArea.length, message)
|
||||
|
||||
97
qml/Screens/StatePopup.qml
Normal file
97
qml/Screens/StatePopup.qml
Normal file
@@ -0,0 +1,97 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12
|
||||
import QtQuick.Layouts 1.12
|
||||
|
||||
import Controls 1.0 as Controls
|
||||
import Cubo 1.0
|
||||
import Utils 1.0
|
||||
|
||||
Popup {
|
||||
id: root
|
||||
closePolicy: Popup.NoAutoClose
|
||||
|
||||
property string text: ""
|
||||
property var type: DataTypes.StateType.Info
|
||||
property color color: switch (type) {
|
||||
case DataTypes.StateType.Info:
|
||||
return "#0A72BA"
|
||||
case DataTypes.StateType.Good:
|
||||
return "#009352"
|
||||
case DataTypes.StateType.Warning:
|
||||
return "#E5C207"
|
||||
case DataTypes.StateType.Error:
|
||||
return "#CF3200"
|
||||
case DataTypes.StateType.Neutral:
|
||||
default:
|
||||
return "#838D97"
|
||||
}
|
||||
|
||||
property var icon: switch (type) {
|
||||
case DataTypes.StateType.Info:
|
||||
return "qrc:/Icons/info-state.svg"
|
||||
case DataTypes.StateType.Good:
|
||||
return "qrc:/Icons/good-state.svg"
|
||||
case DataTypes.StateType.Warning:
|
||||
return "qrc:/Icons/warning-state.svg"
|
||||
case DataTypes.StateType.Error:
|
||||
return "qrc:/Icons/error-state.svg"
|
||||
case DataTypes.StateType.Neutral:
|
||||
default:
|
||||
return "qrc:/Icons/neutral-state.svg"
|
||||
}
|
||||
|
||||
|
||||
|
||||
RowLayout {
|
||||
spacing: 15
|
||||
|
||||
Image {
|
||||
source: root.icon
|
||||
Layout.leftMargin: 5
|
||||
}
|
||||
|
||||
Controls.SubtitleLabel {
|
||||
id: label
|
||||
text: root.text
|
||||
maximumLineCount: 10
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
radius: 6
|
||||
color: "#F7F8FC"
|
||||
|
||||
Rectangle {
|
||||
radius: 6
|
||||
anchors.fill: parent
|
||||
color: Qt.rgba(root.color.r, root.color.g, root.color.b, 0.1)
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
radius: 6
|
||||
width: 4
|
||||
height: parent.height
|
||||
anchors.left: parent.left
|
||||
color: root.color
|
||||
}
|
||||
}
|
||||
|
||||
enter: Transition {
|
||||
NumberAnimation {
|
||||
property: "opacity"
|
||||
from: 0.0
|
||||
to: 1.0
|
||||
duration: 300
|
||||
}
|
||||
}
|
||||
|
||||
exit: Transition {
|
||||
NumberAnimation {
|
||||
property: "opacity"
|
||||
from: 1.0
|
||||
to: 0.0
|
||||
duration: 2500
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,3 +14,4 @@ NetworkSettingsScreen 1.0 NetworkSettingsScreen.qml
|
||||
TimeSettingsScreen 1.0 TimeSettingsScreen.qml
|
||||
CanSettingsScreen 1.0 CanSettingsScreen.qml
|
||||
TemperatureMonitorScreen 1.0 TemperatureMonitorScreen.qml
|
||||
StatePopup 1.0 StatePopup.qml
|
||||
|
||||
@@ -19,5 +19,10 @@
|
||||
<file>Icons/russian-flag.svg</file>
|
||||
<file>Icons/refresh.svg</file>
|
||||
<file>Icons/temperature.svg</file>
|
||||
<file>Icons/error-state.svg</file>
|
||||
<file>Icons/good-state.svg</file>
|
||||
<file>Icons/info-state.svg</file>
|
||||
<file>Icons/neutral-state.svg</file>
|
||||
<file>Icons/warning-state.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -49,5 +49,6 @@
|
||||
<file>Controls/RadioButton.qml</file>
|
||||
<file>Screens/TemperatureMonitorScreen.qml</file>
|
||||
<file>Screens/CanSettingsScreen.qml</file>
|
||||
<file>Screens/StatePopup.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -588,45 +588,166 @@ Wait, please.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="506"/>
|
||||
<location filename="../commands.cpp" line="667"/>
|
||||
<location filename="../commands.cpp" line="519"/>
|
||||
<location filename="../commands.cpp" line="713"/>
|
||||
<source>Buffer erase</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="511"/>
|
||||
<location filename="../commands.cpp" line="524"/>
|
||||
<source>Buffer erase timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="519"/>
|
||||
<location filename="../commands.cpp" line="532"/>
|
||||
<source>CRC/Size write</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="528"/>
|
||||
<location filename="../commands.cpp" line="541"/>
|
||||
<source>CRC/Size write timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="547"/>
|
||||
<location filename="../commands.cpp" line="560"/>
|
||||
<source>Firmware data write</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="556"/>
|
||||
<location filename="../commands.cpp" line="569"/>
|
||||
<source>Firmware data write timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="584"/>
|
||||
<location filename="../commands.cpp" line="597"/>
|
||||
<source>Firmware update completed!
|
||||
|
||||
Reconnect to the board if you want to continue working with it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="704"/>
|
||||
<location filename="../commands.cpp" line="635"/>
|
||||
<source>System ok</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="636"/>
|
||||
<source>Pack overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="637"/>
|
||||
<source>Pack undervoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="638"/>
|
||||
<source>Load overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="639"/>
|
||||
<source>Load undervoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="640"/>
|
||||
<source>Charger overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="641"/>
|
||||
<source>Charger undervoltgae</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="642"/>
|
||||
<source>Cell hard overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="643"/>
|
||||
<source>Cell hard undervoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="644"/>
|
||||
<source>Cell soft overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="645"/>
|
||||
<source>Cell soft undervoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="646"/>
|
||||
<source>Too high or too low voltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="647"/>
|
||||
<source>Too high or too low temperature</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="648"/>
|
||||
<source>Over current</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="649"/>
|
||||
<source>Over temperature BMS</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="650"/>
|
||||
<source>Under temperature BMS</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="651"/>
|
||||
<source>Discharge over temperature cell</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="652"/>
|
||||
<source>Discharge under temperature cell</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="653"/>
|
||||
<source>Charge over temperature cell</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="654"/>
|
||||
<source>Charge under temperature cell</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="655"/>
|
||||
<source>Precharge timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="656"/>
|
||||
<source>Discharge retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="657"/>
|
||||
<location filename="../commands.cpp" line="658"/>
|
||||
<source>Charge retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="659"/>
|
||||
<source>Unknown state</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="750"/>
|
||||
<source>Cancelled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -833,12 +954,12 @@ Reconnect to the board if you want to continue working with it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="403"/>
|
||||
<location filename="../qml/MainWindow.qml" line="408"/>
|
||||
<source>Firmware update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="564"/>
|
||||
<location filename="../qml/MainWindow.qml" line="605"/>
|
||||
<source>Tool started</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -588,45 +588,166 @@ Wait, please.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="506"/>
|
||||
<location filename="../commands.cpp" line="667"/>
|
||||
<location filename="../commands.cpp" line="519"/>
|
||||
<location filename="../commands.cpp" line="713"/>
|
||||
<source>Buffer erase</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="511"/>
|
||||
<location filename="../commands.cpp" line="524"/>
|
||||
<source>Buffer erase timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="519"/>
|
||||
<location filename="../commands.cpp" line="532"/>
|
||||
<source>CRC/Size write</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="528"/>
|
||||
<location filename="../commands.cpp" line="541"/>
|
||||
<source>CRC/Size write timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="547"/>
|
||||
<location filename="../commands.cpp" line="560"/>
|
||||
<source>Firmware data write</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="556"/>
|
||||
<location filename="../commands.cpp" line="569"/>
|
||||
<source>Firmware data write timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="584"/>
|
||||
<location filename="../commands.cpp" line="597"/>
|
||||
<source>Firmware update completed!
|
||||
|
||||
Reconnect to the board if you want to continue working with it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="704"/>
|
||||
<location filename="../commands.cpp" line="635"/>
|
||||
<source>System ok</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="636"/>
|
||||
<source>Pack overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="637"/>
|
||||
<source>Pack undervoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="638"/>
|
||||
<source>Load overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="639"/>
|
||||
<source>Load undervoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="640"/>
|
||||
<source>Charger overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="641"/>
|
||||
<source>Charger undervoltgae</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="642"/>
|
||||
<source>Cell hard overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="643"/>
|
||||
<source>Cell hard undervoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="644"/>
|
||||
<source>Cell soft overvoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="645"/>
|
||||
<source>Cell soft undervoltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="646"/>
|
||||
<source>Too high or too low voltage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="647"/>
|
||||
<source>Too high or too low temperature</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="648"/>
|
||||
<source>Over current</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="649"/>
|
||||
<source>Over temperature BMS</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="650"/>
|
||||
<source>Under temperature BMS</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="651"/>
|
||||
<source>Discharge over temperature cell</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="652"/>
|
||||
<source>Discharge under temperature cell</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="653"/>
|
||||
<source>Charge over temperature cell</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="654"/>
|
||||
<source>Charge under temperature cell</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="655"/>
|
||||
<source>Precharge timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="656"/>
|
||||
<source>Discharge retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="657"/>
|
||||
<location filename="../commands.cpp" line="658"/>
|
||||
<source>Charge retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="659"/>
|
||||
<source>Unknown state</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="750"/>
|
||||
<source>Cancelled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -833,12 +954,12 @@ Reconnect to the board if you want to continue working with it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="403"/>
|
||||
<location filename="../qml/MainWindow.qml" line="408"/>
|
||||
<source>Firmware update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="564"/>
|
||||
<location filename="../qml/MainWindow.qml" line="605"/>
|
||||
<source>Tool started</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
Binary file not shown.
@@ -637,38 +637,38 @@ Wait, please.</source>
|
||||
<translation>Настройки сети успешно применены</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="506"/>
|
||||
<location filename="../commands.cpp" line="667"/>
|
||||
<location filename="../commands.cpp" line="519"/>
|
||||
<location filename="../commands.cpp" line="713"/>
|
||||
<source>Buffer erase</source>
|
||||
<translation>Стирание буфера</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="511"/>
|
||||
<location filename="../commands.cpp" line="524"/>
|
||||
<source>Buffer erase timeout</source>
|
||||
<translation>Таймаут стирания буфера</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="519"/>
|
||||
<location filename="../commands.cpp" line="532"/>
|
||||
<source>CRC/Size write</source>
|
||||
<translation>Запись контрольной суммы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="528"/>
|
||||
<location filename="../commands.cpp" line="541"/>
|
||||
<source>CRC/Size write timeout</source>
|
||||
<translation>Таймаут записи контрольной суммы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="547"/>
|
||||
<location filename="../commands.cpp" line="560"/>
|
||||
<source>Firmware data write</source>
|
||||
<translation>Запись данных прошивки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="556"/>
|
||||
<location filename="../commands.cpp" line="569"/>
|
||||
<source>Firmware data write timeout</source>
|
||||
<translation>Таймаут записи данных прошивки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="584"/>
|
||||
<location filename="../commands.cpp" line="597"/>
|
||||
<source>Firmware update completed!
|
||||
|
||||
Reconnect to the board if you want to continue working with it.</source>
|
||||
@@ -676,12 +676,133 @@ Reconnect to the board if you want to continue working with it.</source>
|
||||
|
||||
Выполните повторное подключение к плате, если хотите продолжить работу с ней.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="635"/>
|
||||
<source>System ok</source>
|
||||
<translation>Система в порядке</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="636"/>
|
||||
<source>Pack overvoltage</source>
|
||||
<translation>Напряжение пакета превышено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="637"/>
|
||||
<source>Pack undervoltage</source>
|
||||
<translation>Напряжение пакета занижено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="638"/>
|
||||
<source>Load overvoltage</source>
|
||||
<translation>Напряжение загрузки превышено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="639"/>
|
||||
<source>Load undervoltage</source>
|
||||
<translation>Напряжение загрузки занижено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="640"/>
|
||||
<source>Charger overvoltage</source>
|
||||
<translation>Напряжение зарядки завышено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="641"/>
|
||||
<source>Charger undervoltgae</source>
|
||||
<translation>Напряжение зарядки занижено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="642"/>
|
||||
<source>Cell hard overvoltage</source>
|
||||
<translation>Напряжение ячейки сильно завышено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="643"/>
|
||||
<source>Cell hard undervoltage</source>
|
||||
<translation>Напряжение ячейки сильно занижено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="644"/>
|
||||
<source>Cell soft overvoltage</source>
|
||||
<translation>Напряжение ячейки завышено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="645"/>
|
||||
<source>Cell soft undervoltage</source>
|
||||
<translation>Напряжение ячейки занижено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="646"/>
|
||||
<source>Too high or too low voltage</source>
|
||||
<translation>Слишком высокий или низкий вольтаж</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="647"/>
|
||||
<source>Too high or too low temperature</source>
|
||||
<translation>Слишком высокая или низкая температура</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="648"/>
|
||||
<source>Over current</source>
|
||||
<translation>Превышен ток</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="649"/>
|
||||
<source>Over temperature BMS</source>
|
||||
<translation>Превышена температура BMS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="650"/>
|
||||
<source>Under temperature BMS</source>
|
||||
<translation>Занижена температура BMS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="651"/>
|
||||
<source>Discharge over temperature cell</source>
|
||||
<translation>Превышена температура разряда ячейки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="652"/>
|
||||
<source>Discharge under temperature cell</source>
|
||||
<translation>Занижена температура разряда ячейки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="653"/>
|
||||
<source>Charge over temperature cell</source>
|
||||
<translation>Превышена температура заряда ячейки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="654"/>
|
||||
<source>Charge under temperature cell</source>
|
||||
<translation>Занижена температура заряда ячейки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="655"/>
|
||||
<source>Precharge timeout</source>
|
||||
<translation>Тайм-аут предварительной зарядки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="656"/>
|
||||
<source>Discharge retry</source>
|
||||
<translation>Попытка рязряда</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="657"/>
|
||||
<location filename="../commands.cpp" line="658"/>
|
||||
<source>Charge retry</source>
|
||||
<translation>Попытка заряда</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="659"/>
|
||||
<source>Unknown state</source>
|
||||
<translation>Неизвестное состояние</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Firmware update completed</source>
|
||||
<translation type="vanished">Обновление прошивки завершено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="704"/>
|
||||
<location filename="../commands.cpp" line="750"/>
|
||||
<source>Cancelled</source>
|
||||
<translation>Отменено</translation>
|
||||
</message>
|
||||
@@ -876,7 +997,7 @@ Reconnect to the board if you want to continue working with it.</source>
|
||||
<translation>Вывод информации</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="403"/>
|
||||
<location filename="../qml/MainWindow.qml" line="408"/>
|
||||
<source>Firmware update</source>
|
||||
<translation>Обновление прошивки</translation>
|
||||
</message>
|
||||
@@ -885,7 +1006,7 @@ Reconnect to the board if you want to continue working with it.</source>
|
||||
<translation type="vanished">Терминал</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="564"/>
|
||||
<location filename="../qml/MainWindow.qml" line="605"/>
|
||||
<source>Tool started</source>
|
||||
<translation>Утилита запущена</translation>
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user