From fbfdc35e0f7b1745e3fa67e67c4d460f8862f0db Mon Sep 17 00:00:00 2001 From: Yury Shuvakin Date: Fri, 21 Nov 2025 14:42:03 +0300 Subject: [PATCH] Added new statuses --- BatteryController.cpp | 16 +++++++++------- CanController.h | 4 ++-- Qml/Battery.qml | 17 ++++++++++++++++- Qml/Controls/Button.qml | 2 +- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/BatteryController.cpp b/BatteryController.cpp index 9a3cc34..4dcca76 100644 --- a/BatteryController.cpp +++ b/BatteryController.cpp @@ -193,7 +193,7 @@ void BatteryController::addStatus(const quint32 status) QMap statusBitDescriptions = { - {0, {"Ошибка Т датчика КП", StatusSeverity::Error}}, + {0, {"Ошибка Т датчика БК", StatusSeverity::Error}}, {1, {"Глубокий разряд АКБ", StatusSeverity::Error}}, {2, {"Заряд выполнен", StatusSeverity::Info}}, {3, {"Ошибка Т датчика УКПБ", StatusSeverity::Info}}, @@ -201,12 +201,12 @@ void BatteryController::addStatus(const quint32 status) {4, {"Ток долго не снижается", StatusSeverity::Error}}, {5, {"Ошибка БПС3000", StatusSeverity::Error}}, {6, {"U менее 61.25 В", StatusSeverity::Error}}, - {7, {"U выше нормы по КП", StatusSeverity::Error}}, + {7, {"U выше нормы", StatusSeverity::Error}}, - {8, {"Останов первого заряда", StatusSeverity::Info}}, - {9, {"Останов разряда", StatusSeverity::Info}}, - {10, {"Останов повторного заряда", StatusSeverity::Info}}, - {11, {"Более 45 градусов", StatusSeverity::Warning}}, + {8, {"Первичный подзаряд завершен", StatusSeverity::Info}}, + {9, {"Разряд завершен", StatusSeverity::Info}}, + {10, {"Повторный заряд завершен", StatusSeverity::Info}}, + {11, {"Более 45 гр. °С", StatusSeverity::Warning}}, {12, {"Разночтение в токах", StatusSeverity::Error}}, {13, {"Разночтение в напряжениях", StatusSeverity::Error}}, @@ -215,6 +215,8 @@ void BatteryController::addStatus(const quint32 status) {16, {"Низкий разряд АКБ", StatusSeverity::Info}}, {17, {"Ошибка контрольного заряда", StatusSeverity::Error}}, + {18, {"УКПБ не подключен", StatusSeverity::Warning}}, + {19, {"БК не подключен", StatusSeverity::Warning}} }; for (auto it = statusBitDescriptions.constBegin(); it != statusBitDescriptions.constEnd(); ++it) @@ -242,7 +244,7 @@ void BatteryController::addStatus(const quint32 status) QVariantMap statusMap; statusMap.insert("time", QDateTime::currentDateTime().toString("hh:mm:ss dd-MM-yyyy")); - statusMap.insert("status", "0x" + QString::number(status, 16).toUpper().rightJustified(2, '0')); + statusMap.insert("status", "0x" + QString::number(status, 16).toUpper().rightJustified(8, '0')); statusMap.insert("description", statusDescription.at(0)); statusMap.insert("severity", statusDescription.at(1)); diff --git a/CanController.h b/CanController.h index 020d260..6b2c724 100644 --- a/CanController.h +++ b/CanController.h @@ -73,9 +73,9 @@ private: } template - static bool isParameterEmpty(T /*parameter*/) + static bool isParameterEmpty(T parameter) { - return std::numeric_limits::max(); + return parameter == std::numeric_limits::max(); } private: diff --git a/Qml/Battery.qml b/Qml/Battery.qml index e0d6785..fd159ea 100644 --- a/Qml/Battery.qml +++ b/Qml/Battery.qml @@ -33,10 +33,25 @@ Rectangle { } CustomControls.Button { + id: modeButton + text: chargeTypeToString(battery ? battery.chargeType : 0) backgroundColor: workingModeToColor(battery ? battery.workingMode : 0) Layout.preferredWidth: 180 - onClicked: battery ? battery.actionButtonClicked() : null + + onClicked: { + battery ? battery.actionButtonClicked() : null + enabled = false + enableTimer.start() + } + + Timer { + id: enableTimer + interval: 2000 + onTriggered: { + modeButton.enabled = true + } + } } } diff --git a/Qml/Controls/Button.qml b/Qml/Controls/Button.qml index 25072a4..bdb8cae 100644 --- a/Qml/Controls/Button.qml +++ b/Qml/Controls/Button.qml @@ -20,7 +20,7 @@ Controls.Button { contentItem: Text { text: control.text font: control.font - opacity: enabled ? 1.0 : 0.3 + opacity: enabled ? 1.0 : 0.5 color: Palette.alternativeTextColor horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter