Added reconnection to CAN and some fixes
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
CanController::CanController(QObject* parent)
|
||||
: QObject{parent}
|
||||
, lastPackageDateTime_(QDateTime::fromMSecsSinceEpoch(0))
|
||||
, reconnectTimer_(new QTimer(this))
|
||||
{
|
||||
setupDrivers();
|
||||
setupDefaultParameters();
|
||||
@@ -50,6 +51,9 @@ CanController::CanController(QObject* parent)
|
||||
updateCanStatusTimer->start(1000);
|
||||
connect(updateCanStatusTimer, &QTimer::timeout, this, &CanController::updateCanStatus);
|
||||
|
||||
reconnectTimer_->start(5000);
|
||||
connect(reconnectTimer_, &QTimer::timeout, this, &CanController::tryConnectCan);
|
||||
|
||||
// auto statusTimer = new QTimer(this);
|
||||
// statusTimer->start(1000);
|
||||
// statusTimer->callOnTimeout([this]
|
||||
@@ -95,6 +99,14 @@ void CanController::disconnectCan()
|
||||
Backend::instance().stopMeasurement();
|
||||
}
|
||||
|
||||
void CanController::tryConnectCan()
|
||||
{
|
||||
if (!isConnected_)
|
||||
{
|
||||
connectCan();
|
||||
}
|
||||
}
|
||||
|
||||
void CanController::switchVkuClosure()
|
||||
{
|
||||
setProperty("isVkuClosed", !isVkuClosed_);
|
||||
@@ -172,6 +184,10 @@ void CanController::sendVkuClosure()
|
||||
void CanController::handlePackage(int index)
|
||||
{
|
||||
lastPackageDateTime_ = QDateTime::currentDateTime();
|
||||
if (isFirstCheck_)
|
||||
{
|
||||
updateCanStatus();
|
||||
}
|
||||
|
||||
auto& backend = Backend::instance();
|
||||
auto message = backend.getTrace()->getMessage(index);
|
||||
@@ -222,15 +238,15 @@ void CanController::showStatus(quint32 status)
|
||||
{
|
||||
QMap<quint32, QString> statusDescriptionMap =
|
||||
{
|
||||
{0x00, tr("Reset")},
|
||||
{0x00, tr("Emergency reset")},
|
||||
{0x01, tr("No incoming messages via CAN interface")},
|
||||
{0x02, tr("Pause after breaking")},
|
||||
{0x03, tr("Waiting for a command for closing")},
|
||||
{0x04, tr("Work via CAN")},
|
||||
{0x05, tr("Work via button signal")},
|
||||
{0x06, tr("Work via CAN or button signal")},
|
||||
{0x03, tr("Pause after emergency")},
|
||||
{0x04, tr("Waiting for command for closure")},
|
||||
{0x05, tr("VKU is closed")},
|
||||
{0x18, tr("Exceeding radiator temperature")},
|
||||
{0x20, tr("Exceeding input voltage")},
|
||||
{0x21, tr("Fault signal")},
|
||||
{0x22, tr("Exceeding maximum current")},
|
||||
{0x23, tr("Exceeding switching current")},
|
||||
{0x25, tr("Voltage 5V is not normal")},
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
class QQmlEngine;
|
||||
class QJSEngine;
|
||||
class QTimer;
|
||||
|
||||
class CanMessage;
|
||||
|
||||
@@ -38,6 +39,7 @@ public:
|
||||
public slots:
|
||||
void connectCan();
|
||||
void disconnectCan();
|
||||
void tryConnectCan();
|
||||
|
||||
void switchVkuClosure();
|
||||
void emergencyReset();
|
||||
@@ -78,6 +80,7 @@ private:
|
||||
bool isConnected_ = false;
|
||||
bool isFirstCheck_ = true;
|
||||
QDateTime lastPackageDateTime_;
|
||||
QTimer* reconnectTimer_ = nullptr;
|
||||
|
||||
QString inputVoltage_;
|
||||
QString radiatorTemperature_;
|
||||
|
||||
@@ -132,7 +132,7 @@ QuickControls.ApplicationWindow {
|
||||
indicator: qsTr("A")
|
||||
value.text: CanController.maximumCurrent
|
||||
value.onEditingFinished: CanController.maximumCurrent = value.text
|
||||
value.validator: IntValidator { bottom: 0; top: 255 }
|
||||
value.validator: IntValidator { bottom: 0; top: 95 }
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredWidth: 100
|
||||
}
|
||||
@@ -172,7 +172,7 @@ QuickControls.ApplicationWindow {
|
||||
indicator: qsTr("A")
|
||||
value.text: CanController.breakingCurrent
|
||||
value.onEditingFinished: CanController.breakingCurrent = value.text
|
||||
value.validator: IntValidator { bottom: 0; top: 255 }
|
||||
value.validator: IntValidator { bottom: 0; top: 127 }
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredWidth: 100
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -4,82 +4,102 @@
|
||||
<context>
|
||||
<name>CanController</name>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="225"/>
|
||||
<source>Reset</source>
|
||||
<translation>Сброс</translation>
|
||||
<translation type="vanished">Сброс</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="226"/>
|
||||
<location filename="../cpp/CanController.cpp" line="242"/>
|
||||
<source>No incoming messages via CAN interface</source>
|
||||
<translation>Нет входящих сообщений по CAN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="228"/>
|
||||
<source>Waiting for a command for closing</source>
|
||||
<translation>Ожидание команды на замыкание</translation>
|
||||
<translation type="vanished">Ожидание команды на замыкание</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="229"/>
|
||||
<source>Work via CAN</source>
|
||||
<translation>Работа по CAN</translation>
|
||||
<translation type="vanished">Работа по CAN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="230"/>
|
||||
<source>Work via button signal</source>
|
||||
<translation>Работа по сигналу кнопки</translation>
|
||||
<translation type="vanished">Работа по сигналу кнопки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="231"/>
|
||||
<source>Work via CAN or button signal</source>
|
||||
<translation>Работа по CAN или сигналу кнопки</translation>
|
||||
<translation type="vanished">Работа по CAN или сигналу кнопки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="233"/>
|
||||
<location filename="../cpp/CanController.cpp" line="248"/>
|
||||
<source>Exceeding input voltage</source>
|
||||
<translation>Превышение входного напряжения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="234"/>
|
||||
<location filename="../cpp/CanController.cpp" line="250"/>
|
||||
<source>Exceeding maximum current</source>
|
||||
<translation>Превышение максимального тока</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="232"/>
|
||||
<location filename="../cpp/CanController.cpp" line="247"/>
|
||||
<source>Exceeding radiator temperature</source>
|
||||
<translation>Превышение температуры радиатора</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="227"/>
|
||||
<source>Pause after breaking</source>
|
||||
<translation>Пауза после размыкания</translation>
|
||||
<location filename="../cpp/CanController.cpp" line="241"/>
|
||||
<source>Emergency reset</source>
|
||||
<translation>Сброс аварии</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="235"/>
|
||||
<location filename="../cpp/CanController.cpp" line="243"/>
|
||||
<source>Pause after breaking</source>
|
||||
<translation>Задержка после размыкания</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="244"/>
|
||||
<source>Pause after emergency</source>
|
||||
<translation>Задержка после аварии</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="245"/>
|
||||
<source>Waiting for command for closure</source>
|
||||
<translation>Ожидание команды на замыкание</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="246"/>
|
||||
<source>VKU is closed</source>
|
||||
<translation>ВКУ замкнут</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="249"/>
|
||||
<source>Fault signal</source>
|
||||
<translation>Сигнал Fault</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="251"/>
|
||||
<source>Exceeding switching current</source>
|
||||
<translation>Превышение коммутируемого тока</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="236"/>
|
||||
<location filename="../cpp/CanController.cpp" line="252"/>
|
||||
<source>Voltage 5V is not normal</source>
|
||||
<translation>Напряжение 5В не в норме</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="237"/>
|
||||
<location filename="../cpp/CanController.cpp" line="253"/>
|
||||
<source>Blocking due to emergency</source>
|
||||
<translation>Блокировка по аварии</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="238"/>
|
||||
<location filename="../cpp/CanController.cpp" line="254"/>
|
||||
<source>Can connected</source>
|
||||
<translation>Can подключен</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="239"/>
|
||||
<location filename="../cpp/CanController.cpp" line="255"/>
|
||||
<source>Can disconnected</source>
|
||||
<translation>Can отключен</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cpp/CanController.cpp" line="242"/>
|
||||
<location filename="../cpp/CanController.cpp" line="258"/>
|
||||
<source>Unknown status</source>
|
||||
<translation>Неизвестный статус</translation>
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user