Added board firmware update functionality
This commit is contained in:
@@ -70,9 +70,9 @@ release_android {
|
||||
UI_DIR = build/android/obj
|
||||
}
|
||||
|
||||
build_mobile {
|
||||
DEFINES += USE_MOBILE
|
||||
}
|
||||
#build_mobile {
|
||||
# DEFINES += USE_MOBILE
|
||||
#}
|
||||
|
||||
SOURCES += main.cpp\
|
||||
# akbmonitorpage.cpp \
|
||||
@@ -104,6 +104,7 @@ SOURCES += main.cpp\
|
||||
utility.cpp \
|
||||
bmsinterface.cpp \
|
||||
translator.cpp \
|
||||
firmwareupdatehelper.cpp \
|
||||
# visualizationchart.cpp \
|
||||
# visualizationpage.cpp
|
||||
|
||||
@@ -138,6 +139,7 @@ HEADERS += \ #mainwindow.h \
|
||||
utility.h \
|
||||
bmsinterface.h \
|
||||
translator.h \
|
||||
firmwareupdatehelper.h \
|
||||
# visualizationchart.h \
|
||||
# visualizationpage.h
|
||||
|
||||
|
||||
@@ -113,8 +113,8 @@ BMSInterface::BMSInterface(QObject *parent) : QObject(parent)
|
||||
connect(mCommands, SIGNAL(dataToSend(QByteArray&)),this, SLOT(cmdDataToSend(QByteArray&)));
|
||||
connect(mCommands, SIGNAL(fwVersionReceived(int,int,QString,QByteArray)),this, SLOT(fwVersionReceived(int,int,QString,QByteArray)));
|
||||
connect(mCommands, SIGNAL(ackReceived(QString)), this, SLOT(ackReceived(QString)));
|
||||
connect(mbmsConfig, SIGNAL(updated()), this, SLOT(bmsconfUpdated()));
|
||||
connect(mbmsConfig, SIGNAL(stored()), this, SLOT(bmsconfStored()));
|
||||
connect(mbmsConfig, SIGNAL(updated()), this, SLOT(bmsConfUpdated()));
|
||||
connect(mbmsConfig, SIGNAL(stored()), this, SLOT(bmsConfStored()));
|
||||
}
|
||||
|
||||
BMSInterface::~BMSInterface()
|
||||
@@ -628,7 +628,6 @@ void BMSInterface::ignoreCanChange(bool ignore)
|
||||
#ifdef HAS_SERIALPORT
|
||||
void BMSInterface::serialDataAvailable()
|
||||
{
|
||||
bool b = true;
|
||||
while (mSerialPort->bytesAvailable() > 0) {
|
||||
mPacket->processData(mSerialPort->readAll());
|
||||
}
|
||||
@@ -660,7 +659,6 @@ void BMSInterface::serialPortError(QSerialPort::SerialPortError error)
|
||||
|
||||
void BMSInterface::tcpInputConnected()
|
||||
{
|
||||
bool b = true;
|
||||
mTcpConnected = true;
|
||||
updateFwRx(false);
|
||||
}
|
||||
@@ -673,7 +671,6 @@ void BMSInterface::tcpInputDisconnected()
|
||||
|
||||
void BMSInterface::tcpInputDataAvailable()
|
||||
{
|
||||
bool b = true;
|
||||
while (mTcpSocket->bytesAvailable() > 0) {
|
||||
mPacket->processData(mTcpSocket->readAll());
|
||||
}
|
||||
@@ -748,9 +745,13 @@ void BMSInterface::timerSlot()
|
||||
if (mIsUploadingFw) {
|
||||
updateFwRx(false);
|
||||
mFwRetries = 0;
|
||||
if (fwStatus.compare("FW Upload Done") == 0) {
|
||||
if (mCommands->getFirmwareUploadSuccess())
|
||||
{
|
||||
disconnectPort();
|
||||
emit fwUploadStatus(fwStatus, 1.0, false);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
emit fwUploadStatus(fwStatus, 0.0, false);
|
||||
}
|
||||
}
|
||||
@@ -796,7 +797,7 @@ void BMSInterface::fwVersionReceived(int major, int minor, QString hw, QByteArra
|
||||
{
|
||||
QList<QPair<int, int> > fwPairs = getSupportedFirmwarePairs();
|
||||
|
||||
QString strUuid = Utility::uuid2Str(uuid, true);
|
||||
QString strUuid = uuid.toHex().toUpper();
|
||||
|
||||
if (fwPairs.isEmpty()) {
|
||||
emit messageDialog(tr("Not Supported Firmwares"),
|
||||
@@ -862,17 +863,6 @@ void BMSInterface::fwVersionReceived(int major, int minor, QString hw, QByteArra
|
||||
}
|
||||
|
||||
auto fwStr = tr("Firmware version: %1.%2, Hardware: %3, UUID: %4").arg(major).arg(minor).arg(hw).arg(strUuid);
|
||||
|
||||
// QString fwStr;
|
||||
// fwStr.sprintf("ENNOID-BMS Firmware Version %d.%d", major, minor);
|
||||
// if (!hw.isEmpty()) {
|
||||
// fwStr += ", Hardware: " + hw;
|
||||
// }
|
||||
|
||||
// if (!strUuid.isEmpty()) {
|
||||
// fwStr += ", UUID: " + strUuid;
|
||||
// }
|
||||
|
||||
emit statusMessage(fwStr, true);
|
||||
#if 0
|
||||
}
|
||||
@@ -891,13 +881,15 @@ void BMSInterface::fwVersionReceived(int major, int minor, QString hw, QByteArra
|
||||
}
|
||||
}
|
||||
|
||||
void BMSInterface::bmsconfUpdated()
|
||||
void BMSInterface::bmsConfUpdated()
|
||||
{
|
||||
emit statusMessage(tr("BMS configuration updated"), true);
|
||||
emit bmsConfigurationUpdated();
|
||||
}
|
||||
|
||||
void BMSInterface::bmsconfStored() {
|
||||
void BMSInterface::bmsConfStored() {
|
||||
emit statusMessage(tr("BMS configuration stored to Flash"), true);
|
||||
emit bmsConfigurationStored();
|
||||
}
|
||||
|
||||
void BMSInterface::ackReceived(QString ackType)
|
||||
|
||||
@@ -127,6 +127,8 @@ signals:
|
||||
void autoConnectProgressUpdated(double progress, bool isOngoing);
|
||||
void autoConnectFinished();
|
||||
void pairingListUpdated();
|
||||
void bmsConfigurationUpdated();
|
||||
void bmsConfigurationStored();
|
||||
|
||||
public slots:
|
||||
|
||||
@@ -150,8 +152,8 @@ private slots:
|
||||
void packetReceived(QByteArray &data);
|
||||
void cmdDataToSend(QByteArray &data);
|
||||
void fwVersionReceived(int major, int minor, QString hw, QByteArray uuid);
|
||||
void bmsconfUpdated();
|
||||
void bmsconfStored();
|
||||
void bmsConfUpdated();
|
||||
void bmsConfStored();
|
||||
void ackReceived(QString ackType);
|
||||
|
||||
private:
|
||||
|
||||
31
commands.cpp
31
commands.cpp
@@ -39,6 +39,8 @@ Commands::Commands(QObject *parent) : QObject(parent)
|
||||
mFimwarePtr = 0;
|
||||
mFirmwareTimer = 0;
|
||||
mFirmwareRetries = 0;
|
||||
mFirmwareIsBootloader = false;
|
||||
mFirmwareUploadSuccess = false;
|
||||
mFirmwareUploadStatus = "FW Upload Status";
|
||||
mCheckNextbmsConfig = false;
|
||||
|
||||
@@ -457,12 +459,12 @@ void Commands::firmwareUploadUpdate(bool isTimeout)
|
||||
const int timeout = 350;
|
||||
|
||||
if (mFirmwareState == 0) {
|
||||
mFirmwareUploadStatus = "Buffer Erase";
|
||||
mFirmwareUploadStatus = tr("Buffer erase");
|
||||
if (isTimeout) {
|
||||
// Erase timed out, abort.
|
||||
mFirmwareIsUploading = false;
|
||||
mFimwarePtr = 0;
|
||||
mFirmwareUploadStatus = "Buffer Erase Timeout";
|
||||
mFirmwareUploadStatus = tr("Buffer erase timeout");
|
||||
} else {
|
||||
mFirmwareState++;
|
||||
mFirmwareRetries = retries;
|
||||
@@ -470,7 +472,7 @@ void Commands::firmwareUploadUpdate(bool isTimeout)
|
||||
firmwareUploadUpdate(true);
|
||||
}
|
||||
} else if (mFirmwareState == 1) {
|
||||
mFirmwareUploadStatus = "CRC/Size Write";
|
||||
mFirmwareUploadStatus = tr("CRC/Size write");
|
||||
if (isTimeout) {
|
||||
if (mFirmwareRetries > 0) {
|
||||
mFirmwareRetries--;
|
||||
@@ -479,7 +481,7 @@ void Commands::firmwareUploadUpdate(bool isTimeout)
|
||||
mFirmwareIsUploading = false;
|
||||
mFimwarePtr = 0;
|
||||
mFirmwareState = 0;
|
||||
mFirmwareUploadStatus = "CRC/Size Write Timeout";
|
||||
mFirmwareUploadStatus = tr("CRC/Size write timeout");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -498,7 +500,7 @@ void Commands::firmwareUploadUpdate(bool isTimeout)
|
||||
firmwareUploadUpdate(true);
|
||||
}
|
||||
} else if (mFirmwareState == 2) {
|
||||
mFirmwareUploadStatus = "FW Data Write";
|
||||
mFirmwareUploadStatus = tr("Firmware data write");
|
||||
if (isTimeout) {
|
||||
if (mFirmwareRetries > 0) {
|
||||
mFirmwareRetries--;
|
||||
@@ -507,7 +509,7 @@ void Commands::firmwareUploadUpdate(bool isTimeout)
|
||||
mFirmwareIsUploading = false;
|
||||
mFimwarePtr = 0;
|
||||
mFirmwareState = 0;
|
||||
mFirmwareUploadStatus = "FW Data Write Timeout";
|
||||
mFirmwareUploadStatus = tr("Firmware data write timeout");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -534,7 +536,8 @@ void Commands::firmwareUploadUpdate(bool isTimeout)
|
||||
mFirmwareIsUploading = false;
|
||||
mFimwarePtr = 0;
|
||||
mFirmwareState = 0;
|
||||
mFirmwareUploadStatus = "FW Upload Done";
|
||||
mFirmwareUploadSuccess = true;
|
||||
mFirmwareUploadStatus = tr("Firmware update completed!\n\nReconnect to the board if you want to continue working with it.");
|
||||
|
||||
// Upload done. Enter bootloader!
|
||||
if (!mFirmwareIsBootloader) {
|
||||
@@ -616,7 +619,8 @@ void Commands::startFirmwareUpload(QByteArray &newFirmware, bool isBootloader)
|
||||
mFirmwareRetries = 5;
|
||||
mNewFirmware.clear();
|
||||
mNewFirmware.append(newFirmware);
|
||||
mFirmwareUploadStatus = "Buffer Erase";
|
||||
mFirmwareUploadSuccess = false;
|
||||
mFirmwareUploadStatus = tr("Buffer erase");
|
||||
|
||||
if (mFirmwareIsBootloader) {
|
||||
firmwareUploadUpdate(true);
|
||||
@@ -628,7 +632,12 @@ void Commands::startFirmwareUpload(QByteArray &newFirmware, bool isBootloader)
|
||||
}
|
||||
}
|
||||
|
||||
double Commands::getFirmwareUploadProgress()
|
||||
bool Commands::getFirmwareUploadSuccess() const
|
||||
{
|
||||
return mFirmwareUploadSuccess;
|
||||
}
|
||||
|
||||
double Commands::getFirmwareUploadProgress() const
|
||||
{
|
||||
if (mFirmwareIsUploading) {
|
||||
return (double)mFimwarePtr / (double)mNewFirmware.size();
|
||||
@@ -637,7 +646,7 @@ double Commands::getFirmwareUploadProgress()
|
||||
}
|
||||
}
|
||||
|
||||
QString Commands::getFirmwareUploadStatus()
|
||||
QString Commands::getFirmwareUploadStatus() const
|
||||
{
|
||||
return mFirmwareUploadStatus;
|
||||
}
|
||||
@@ -648,7 +657,7 @@ void Commands::cancelFirmwareUpload()
|
||||
mFirmwareIsUploading = false;
|
||||
mFimwarePtr = 0;
|
||||
mFirmwareState = 0;
|
||||
mFirmwareUploadStatus = "Cancelled";
|
||||
mFirmwareUploadStatus = tr("Cancelled");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,8 +47,9 @@ public:
|
||||
Q_INVOKABLE int getCanSendId();
|
||||
void setbmsConfig(ConfigParams *bmsConfig);
|
||||
Q_INVOKABLE void startFirmwareUpload(QByteArray &newFirmware, bool isBootloader = false);
|
||||
Q_INVOKABLE double getFirmwareUploadProgress();
|
||||
Q_INVOKABLE QString getFirmwareUploadStatus();
|
||||
Q_INVOKABLE double getFirmwareUploadProgress() const;
|
||||
Q_INVOKABLE QString getFirmwareUploadStatus() const;
|
||||
Q_INVOKABLE bool getFirmwareUploadSuccess() const;
|
||||
Q_INVOKABLE void cancelFirmwareUpload();
|
||||
void checkbmsConfig();
|
||||
Q_INVOKABLE void storeBMSConfig();
|
||||
@@ -112,6 +113,7 @@ private:
|
||||
int mFirmwareTimer;
|
||||
int mFirmwareRetries;
|
||||
bool mFirmwareIsBootloader;
|
||||
bool mFirmwareUploadSuccess;
|
||||
QString mFirmwareUploadStatus;
|
||||
|
||||
ConfigParams *mbmsConfig;
|
||||
|
||||
29
firmwareupdatehelper.cpp
Normal file
29
firmwareupdatehelper.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
#include "firmwareupdatehelper.h"
|
||||
|
||||
#include "bmsinterface.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QByteArray>
|
||||
|
||||
|
||||
FirmwareUpdateHelper::FirmwareUpdateHelper(QObject *parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
bool FirmwareUpdateHelper::uploadFirmware(QString filename, BMSInterface *interface)
|
||||
{
|
||||
QFile file(filename);
|
||||
|
||||
if (!file.open(QIODevice::ReadOnly))
|
||||
{
|
||||
interface->emitMessageDialog(tr("Upload error"),
|
||||
tr("Could not open file. Make sure that the path is valid."),
|
||||
false);
|
||||
return false;
|
||||
}
|
||||
|
||||
auto data = file.readAll();
|
||||
interface->commands()->startFirmwareUpload(data, false);
|
||||
|
||||
return true;
|
||||
}
|
||||
17
firmwareupdatehelper.h
Normal file
17
firmwareupdatehelper.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#ifndef FIRMWAREUPDATEHELPER_H
|
||||
#define FIRMWAREUPDATEHELPER_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class BMSInterface;
|
||||
|
||||
class FirmwareUpdateHelper : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit FirmwareUpdateHelper(QObject *parent = nullptr);
|
||||
Q_INVOKABLE bool uploadFirmware(QString filename, BMSInterface *interface);
|
||||
};
|
||||
|
||||
#endif // FIRMWAREUPDATEHELPER_H
|
||||
2
main.cpp
2
main.cpp
@@ -21,6 +21,7 @@
|
||||
#include "bmsinterface.h"
|
||||
#include "utility.h"
|
||||
#include "translator.h"
|
||||
#include "firmwareupdatehelper.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QFontDatabase>
|
||||
@@ -73,6 +74,7 @@ int main(int argc, char *argv[])
|
||||
qmlRegisterSingletonType<Translator>("Cubo", 1, 0, "Translator", translatorSingletontypeProvider);
|
||||
qmlRegisterType<Commands>("Cubo", 1, 0, "Commands");
|
||||
qmlRegisterType<ConfigParams>("Cubo", 1, 0, "ConfigParams");
|
||||
qmlRegisterType<FirmwareUpdateHelper>("Cubo", 1, 0, "FirmwareUpdateHelper");
|
||||
|
||||
engine.addImportPath(QStringLiteral("qrc:/"));
|
||||
engine.load(QUrl(QStringLiteral("qrc:/MainWindow.qml")));
|
||||
|
||||
38
qml/Controls/ProgressBar.qml
Normal file
38
qml/Controls/ProgressBar.qml
Normal file
@@ -0,0 +1,38 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12
|
||||
|
||||
import Utils 1.0
|
||||
|
||||
ProgressBar {
|
||||
id: control
|
||||
padding: 2
|
||||
|
||||
background: Rectangle {
|
||||
implicitWidth: 250
|
||||
implicitHeight: 26
|
||||
border.width: 1
|
||||
border.color: Palette.borderColor
|
||||
color: Palette.screenBackgroundColor
|
||||
radius: 5
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
implicitWidth: 250
|
||||
implicitHeight: 24
|
||||
|
||||
Rectangle {
|
||||
width: control.visualPosition * parent.width
|
||||
height: parent.height
|
||||
radius: 5
|
||||
color: Palette.alternativeBackgroundColor
|
||||
}
|
||||
|
||||
Text {
|
||||
text: Math.floor((control.value / control.to) * 100) + '%'
|
||||
anchors.centerIn: parent
|
||||
color: Palette.textColor
|
||||
font.pixelSize: 18
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,3 +25,4 @@ MenuItemDelegate 1.0 MenuItemDelegate.qml
|
||||
ScrollIndicator 1.0 ScrollIndicator.qml
|
||||
OutlineImageButton 1.0 OutlineImageButton.qml
|
||||
ImageButton 1.0 ImageButton.qml
|
||||
ProgressBar 1.0 ProgressBar.qml
|
||||
|
||||
@@ -131,17 +131,8 @@ ApplicationWindow {
|
||||
RowLayout {
|
||||
id: topBar
|
||||
|
||||
property var labels: [
|
||||
qsTr("AKB monitor"),
|
||||
qsTr("Cell monitor"),
|
||||
qsTr("BMS settings"),
|
||||
qsTr("Visualization"),
|
||||
qsTr("Information output"),
|
||||
qsTr("Terminal"),
|
||||
]
|
||||
|
||||
Label {
|
||||
text: topBar.labels[stack.currentIndex]
|
||||
text: stack.itemAt(stack.currentIndex).title
|
||||
font.pixelSize: 38
|
||||
font.weight: Font.Bold
|
||||
color: Palette.textColor
|
||||
@@ -316,12 +307,15 @@ ApplicationWindow {
|
||||
Layout.bottomMargin: 30
|
||||
|
||||
Screens.AkbMonitorScreen {
|
||||
property string title: qsTr("AKB monitor")
|
||||
}
|
||||
|
||||
Screens.CellMonitorScreen {
|
||||
property string title: qsTr("Cell monitor")
|
||||
}
|
||||
|
||||
Screens.BmsSettingsScreen {
|
||||
property string title: qsTr("BMS settings")
|
||||
onNeedWait: {
|
||||
if (active) {
|
||||
busyPopup.text = text
|
||||
@@ -333,10 +327,12 @@ ApplicationWindow {
|
||||
}
|
||||
|
||||
Screens.VisualizationScreen {
|
||||
property string title: qsTr("Visualization")
|
||||
}
|
||||
|
||||
Screens.DebugInformationScreen {
|
||||
id: debugScreen
|
||||
property string title: qsTr("Information output")
|
||||
}
|
||||
|
||||
Screens.BmsServiceScreen {
|
||||
@@ -357,8 +353,6 @@ ApplicationWindow {
|
||||
serialLabel.text = "-"
|
||||
firmwareLabel.text = "-"
|
||||
}
|
||||
|
||||
debugScreen.printMessage(BmsInterface.getConnectedPortName(), true)
|
||||
}
|
||||
|
||||
onMessageDialog: {
|
||||
@@ -389,6 +383,22 @@ ApplicationWindow {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onFwUploadStatus: {
|
||||
if (isOngoing) {
|
||||
if (!progressPopup.opened) {
|
||||
progressPopup.open()
|
||||
}
|
||||
|
||||
progressPopup.text = status
|
||||
progressPopup.progress = progress
|
||||
} else {
|
||||
progressPopup.close()
|
||||
BmsInterface.emitMessageDialog(qsTr("Firmware update"), status, true)
|
||||
}
|
||||
}
|
||||
|
||||
onBmsConfigurationStored: busyPopup.close()
|
||||
}
|
||||
|
||||
Connections {
|
||||
@@ -440,7 +450,6 @@ ApplicationWindow {
|
||||
|
||||
onOpened: {
|
||||
hideStatusTimer.start()
|
||||
busyPopup.close()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -477,6 +486,8 @@ ApplicationWindow {
|
||||
font.pixelSize: 20
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
leftPadding: 10
|
||||
rightPadding: 10
|
||||
|
||||
background: Rectangle {
|
||||
color: Palette.textColor
|
||||
@@ -490,6 +501,48 @@ ApplicationWindow {
|
||||
onClosed: hideBusyTimer.stop()
|
||||
}
|
||||
|
||||
Popup {
|
||||
id: progressPopup
|
||||
x: (parent.width - width) / 2
|
||||
y: (parent.height - height) / 2
|
||||
modal: true
|
||||
closePolicy: Popup.NoAutoClose
|
||||
|
||||
property alias text: progressText.text
|
||||
property alias progress: progressBar.value
|
||||
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Controls.ProgressBar {
|
||||
id: progressBar
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
Layout.preferredWidth: 500
|
||||
}
|
||||
|
||||
Controls.SubtitleLabel {
|
||||
text: "asdfzasdf"
|
||||
id: progressText
|
||||
color: Palette.alternativeTextColor
|
||||
maximumLineCount: 3
|
||||
wrapMode: Text.Wrap
|
||||
font.pixelSize: 20
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
leftPadding: 10
|
||||
rightPadding: 10
|
||||
|
||||
background: Rectangle {
|
||||
color: Palette.textColor
|
||||
opacity: 0.3
|
||||
radius: 6
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: hideBusyTimer
|
||||
interval: 30000
|
||||
|
||||
@@ -1,74 +1,46 @@
|
||||
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 Screens 1.0 as Screens
|
||||
|
||||
ColumnLayout {
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
|
||||
Keys.onReturnPressed: sendButton.clicked()
|
||||
Keys.onEnterPressed: sendButton.clicked()
|
||||
property string title: stack.itemAt(stack.currentIndex).title
|
||||
|
||||
Controls.Frame {
|
||||
Flickable {
|
||||
id: outputFlickable
|
||||
clip: true
|
||||
anchors.fill: parent
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
StackLayout {
|
||||
id: stack
|
||||
|
||||
TextArea.flickable: Controls.TextArea {
|
||||
id: outputArea
|
||||
}
|
||||
Screens.TerminalScreen {
|
||||
id: terminalScreen
|
||||
property string title: qsTr("Terminal")
|
||||
}
|
||||
|
||||
ScrollBar.horizontal: Controls.ScrollBar {}
|
||||
ScrollBar.vertical: Controls.ScrollBar {}
|
||||
Screens.FirmwareUpdateScreen {
|
||||
id: firmwareUpdateScreen
|
||||
property string title: qsTr("Firmware update")
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
ColumnLayout {
|
||||
spacing: 20
|
||||
|
||||
Controls.Button {
|
||||
text: qsTr("Clear")
|
||||
Layout.preferredWidth: 120
|
||||
onClicked: outputArea.clear()
|
||||
}
|
||||
|
||||
Controls.TextField {
|
||||
id: commandField
|
||||
implicitHeight: 52
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.Button {
|
||||
id: sendButton
|
||||
text: qsTr("Send")
|
||||
Layout.preferredWidth: 120
|
||||
onClicked: {
|
||||
BmsInterface.commands().sendTerminalCmd(commandField.text)
|
||||
commandField.clear()
|
||||
Repeater {
|
||||
model: [terminalScreen.title, firmwareUpdateScreen.title]
|
||||
delegate: Controls.LinkLabel {
|
||||
text: modelData
|
||||
onClicked: stack.currentIndex = index
|
||||
}
|
||||
}
|
||||
|
||||
Controls.Button {
|
||||
text: qsTr("Help")
|
||||
Layout.preferredWidth: 120
|
||||
onClicked: BmsInterface.commands().sendTerminalCmd("help")
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: BmsInterface.commands()
|
||||
onPrintReceived: {
|
||||
outputArea.append(str)
|
||||
outputArea.cursorPosition = outputArea.length
|
||||
}
|
||||
Layout.preferredWidth: 180
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ ColumnLayout {
|
||||
Connections {
|
||||
target: BmsInterface
|
||||
onStatusMessage: printMessage(msg, isGood)
|
||||
onPortConnectedChanged: printMessage(BmsInterface.getConnectedPortName(), true)
|
||||
}
|
||||
|
||||
function printMessage(msg, isGood) {
|
||||
|
||||
126
qml/Screens/FirmwareUpdateScreen.qml
Normal file
126
qml/Screens/FirmwareUpdateScreen.qml
Normal file
@@ -0,0 +1,126 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Layouts 1.12
|
||||
import QtQuick.Dialogs 1.2
|
||||
import Qt.labs.settings 1.1
|
||||
|
||||
import Controls 1.0 as Controls
|
||||
import Cubo 1.0
|
||||
|
||||
ColumnLayout {
|
||||
spacing: 20
|
||||
|
||||
Controls.Frame {
|
||||
padding: 35
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 20
|
||||
|
||||
Controls.TitleLabel {
|
||||
text: qsTr("Board information")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 10
|
||||
|
||||
Controls.ContentLabel {
|
||||
text: qsTr("Firmware")
|
||||
}
|
||||
|
||||
Controls.DotSeparator {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.ContentLabel {
|
||||
id: firmwareLabel
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 10
|
||||
|
||||
Controls.ContentLabel {
|
||||
text: qsTr("Hardware")
|
||||
}
|
||||
|
||||
Controls.DotSeparator {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.ContentLabel {
|
||||
id: hardwareLabel
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 10
|
||||
|
||||
Controls.ContentLabel {
|
||||
text: qsTr("UUID")
|
||||
}
|
||||
|
||||
Controls.DotSeparator {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.ContentLabel {
|
||||
id: uuidLabel
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.Button {
|
||||
text: qsTr("Upload firmware")
|
||||
onClicked: firmwareFileDialog.open()
|
||||
|
||||
FileDialog {
|
||||
id: firmwareFileDialog
|
||||
title: qsTr("Select firmware file")
|
||||
folder: shortcuts.documents
|
||||
nameFilters: [ qsTr("Firmware files (*.bin)"), qsTr("All files (*)") ]
|
||||
onAccepted: {
|
||||
if (BmsInterface.isPortConnected()) {
|
||||
updateHelper.uploadFirmware(firmwareFileDialog.fileUrl.toString().replace(/^(file:\/{3})/, ""), BmsInterface)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Settings {
|
||||
category: "firmwareUpdate"
|
||||
property alias folder: firmwareFileDialog.folder
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
FirmwareUpdateHelper {
|
||||
id: updateHelper
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: BmsInterface.commands()
|
||||
onFwVersionReceived: {
|
||||
firmwareLabel.text = major + "." + minor
|
||||
hardwareLabel.text = hw
|
||||
uuidLabel.text = bufferToHex(uuid)
|
||||
}
|
||||
}
|
||||
|
||||
function bufferToHex(buffer) {
|
||||
return [...new Uint8Array(buffer)]
|
||||
.map(b => b.toString(16).padStart(2, "0"))
|
||||
.join("").toUpperCase();
|
||||
}
|
||||
}
|
||||
74
qml/Screens/TerminalScreen.qml
Normal file
74
qml/Screens/TerminalScreen.qml
Normal file
@@ -0,0 +1,74 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12
|
||||
import QtQuick.Layouts 1.12
|
||||
|
||||
import Controls 1.0 as Controls
|
||||
import Cubo 1.0
|
||||
|
||||
ColumnLayout {
|
||||
spacing: 20
|
||||
|
||||
Keys.onReturnPressed: sendButton.clicked()
|
||||
Keys.onEnterPressed: sendButton.clicked()
|
||||
|
||||
Controls.Frame {
|
||||
Flickable {
|
||||
id: outputFlickable
|
||||
clip: true
|
||||
anchors.fill: parent
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
|
||||
TextArea.flickable: Controls.TextArea {
|
||||
id: outputArea
|
||||
}
|
||||
|
||||
ScrollBar.horizontal: Controls.ScrollBar {}
|
||||
ScrollBar.vertical: Controls.ScrollBar {}
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
|
||||
Controls.Button {
|
||||
text: qsTr("Clear")
|
||||
Layout.preferredWidth: 120
|
||||
onClicked: outputArea.clear()
|
||||
}
|
||||
|
||||
Controls.TextField {
|
||||
id: commandField
|
||||
implicitHeight: 52
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.Button {
|
||||
id: sendButton
|
||||
text: qsTr("Send")
|
||||
Layout.preferredWidth: 120
|
||||
onClicked: {
|
||||
BmsInterface.commands().sendTerminalCmd(commandField.text)
|
||||
commandField.clear()
|
||||
}
|
||||
}
|
||||
|
||||
Controls.Button {
|
||||
text: qsTr("Help")
|
||||
Layout.preferredWidth: 120
|
||||
onClicked: BmsInterface.commands().sendTerminalCmd("help")
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: BmsInterface.commands()
|
||||
onPrintReceived: {
|
||||
outputArea.append(str)
|
||||
outputArea.cursorPosition = outputArea.length
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,3 +8,5 @@ DebugInformationScreen 1.0 DebugInformationScreen.qml
|
||||
ConnectionDialog 1.0 ConnectionDialog.qml
|
||||
MessageDialog 1.0 MessageDialog.qml
|
||||
StatusPopup 1.0 StatusPopup.qml
|
||||
TerminalScreen 1.0 TerminalScreen.qml
|
||||
FirmwareUpdateScreen 1.0 FirmwareUpdateScreen.qml
|
||||
|
||||
@@ -41,5 +41,8 @@
|
||||
<file>Controls/ScrollIndicator.qml</file>
|
||||
<file>Controls/OutlineImageButton.qml</file>
|
||||
<file>Controls/ImageButton.qml</file>
|
||||
<file>Screens/TerminalScreen.qml</file>
|
||||
<file>Screens/FirmwareUpdateScreen.qml</file>
|
||||
<file>Controls/ProgressBar.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -128,80 +128,80 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="645"/>
|
||||
<location filename="../bmsinterface.cpp" line="644"/>
|
||||
<source>Serial port error: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="687"/>
|
||||
<location filename="../bmsinterface.cpp" line="684"/>
|
||||
<source>TCP Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="724"/>
|
||||
<location filename="../bmsinterface.cpp" line="721"/>
|
||||
<source>No firmware read response</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="725"/>
|
||||
<location filename="../bmsinterface.cpp" line="722"/>
|
||||
<source>Read Firmware Version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="726"/>
|
||||
<location filename="../bmsinterface.cpp" line="723"/>
|
||||
<source>Could not read firmware version. Make sure that selected port really belongs to the ENNOID-BMS. </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="802"/>
|
||||
<location filename="../bmsinterface.cpp" line="803"/>
|
||||
<source>Not Supported Firmwares</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="803"/>
|
||||
<location filename="../bmsinterface.cpp" line="804"/>
|
||||
<source>This version of ENNOID-BMS Tool does not seem to have any supported firmwares. Something is probably wrong with the BMS configuration file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="823"/>
|
||||
<location filename="../bmsinterface.cpp" line="851"/>
|
||||
<location filename="../bmsinterface.cpp" line="824"/>
|
||||
<location filename="../bmsinterface.cpp" line="852"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="823"/>
|
||||
<location filename="../bmsinterface.cpp" line="851"/>
|
||||
<location filename="../bmsinterface.cpp" line="824"/>
|
||||
<location filename="../bmsinterface.cpp" line="852"/>
|
||||
<source>The firmware on the connected ENNOID-BMS is too old. Please update it using a programmer.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="828"/>
|
||||
<location filename="../bmsinterface.cpp" line="840"/>
|
||||
<location filename="../bmsinterface.cpp" line="829"/>
|
||||
<location filename="../bmsinterface.cpp" line="841"/>
|
||||
<source>Warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="828"/>
|
||||
<location filename="../bmsinterface.cpp" line="829"/>
|
||||
<source>The connected ENNOID-BMS has newer firmware than this version of the ENNOID-BMS Tool supports. It is recommended that you update the ENNOID-BMS Tool to the latest version. Alternatively, the firmware on the connected ENNOID-BMS can be downgraded in the firmware page. Until then, limited communication mode will be used where only the firmware can be changed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="840"/>
|
||||
<location filename="../bmsinterface.cpp" line="841"/>
|
||||
<source>The connected ENNOID-BMS has too old firmware. Since the connected ENNOID-BMS has firmware with bootloader support, it can be updated from the Firmware page. Until then, limited communication mode will be used where only the firmware can be changed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="864"/>
|
||||
<location filename="../bmsinterface.cpp" line="865"/>
|
||||
<source>Firmware version: %1.%2, Hardware: %3, UUID: %4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="896"/>
|
||||
<location filename="../bmsinterface.cpp" line="886"/>
|
||||
<source>BMS configuration updated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="900"/>
|
||||
<location filename="../bmsinterface.cpp" line="891"/>
|
||||
<source>BMS configuration stored to Flash</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -209,18 +209,13 @@
|
||||
<context>
|
||||
<name>BmsServiceScreen</name>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="37"/>
|
||||
<source>Clear</source>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="17"/>
|
||||
<source>Terminal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="50"/>
|
||||
<source>Send</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="59"/>
|
||||
<source>Help</source>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="22"/>
|
||||
<source>Firmware update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -482,10 +477,53 @@ Wait, please.</source>
|
||||
<context>
|
||||
<name>Commands</name>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="237"/>
|
||||
<location filename="../commands.cpp" line="239"/>
|
||||
<source>BMS configuration is set</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="462"/>
|
||||
<location filename="../commands.cpp" line="623"/>
|
||||
<source>Buffer erase</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="467"/>
|
||||
<source>Buffer erase timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="475"/>
|
||||
<source>CRC/Size write</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="484"/>
|
||||
<source>CRC/Size write timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="503"/>
|
||||
<source>Firmware data write</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="512"/>
|
||||
<source>Firmware data write timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="540"/>
|
||||
<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="660"/>
|
||||
<source>Cancelled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigParams</name>
|
||||
@@ -550,6 +588,62 @@ Wait, please.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FirmwareUpdateHelper</name>
|
||||
<message>
|
||||
<location filename="../firmwareupdatehelper.cpp" line="19"/>
|
||||
<source>Upload error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../firmwareupdatehelper.cpp" line="20"/>
|
||||
<source>Could not open file. Make sure that the path is valid.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FirmwareUpdateScreen</name>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="20"/>
|
||||
<source>Board information</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="28"/>
|
||||
<source>Firmware</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="46"/>
|
||||
<source>Hardware</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="64"/>
|
||||
<source>UUID</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="83"/>
|
||||
<source>Upload firmware</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="88"/>
|
||||
<source>Select firmware file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="90"/>
|
||||
<source>Firmware files (*.bin)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="90"/>
|
||||
<source>All files (*)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
@@ -564,13 +658,13 @@ Wait, please.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="79"/>
|
||||
<location filename="../qml/MainWindow.qml" line="135"/>
|
||||
<location filename="../qml/MainWindow.qml" line="310"/>
|
||||
<source>AKB monitor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="80"/>
|
||||
<location filename="../qml/MainWindow.qml" line="136"/>
|
||||
<location filename="../qml/MainWindow.qml" line="314"/>
|
||||
<source>Cell monitor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -581,7 +675,7 @@ Wait, please.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="82"/>
|
||||
<location filename="../qml/MainWindow.qml" line="138"/>
|
||||
<location filename="../qml/MainWindow.qml" line="330"/>
|
||||
<source>Visualization</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -601,38 +695,38 @@ Wait, please.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="137"/>
|
||||
<location filename="../qml/MainWindow.qml" line="318"/>
|
||||
<source>BMS settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="139"/>
|
||||
<location filename="../qml/MainWindow.qml" line="335"/>
|
||||
<source>Information output</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="140"/>
|
||||
<source>Terminal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="165"/>
|
||||
<location filename="../qml/MainWindow.qml" line="352"/>
|
||||
<location filename="../qml/MainWindow.qml" line="156"/>
|
||||
<location filename="../qml/MainWindow.qml" line="348"/>
|
||||
<source>Disconnected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="189"/>
|
||||
<location filename="../qml/MainWindow.qml" line="180"/>
|
||||
<source>Serial number</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="352"/>
|
||||
<location filename="../qml/MainWindow.qml" line="348"/>
|
||||
<source>Connected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="505"/>
|
||||
<location filename="../qml/MainWindow.qml" line="397"/>
|
||||
<source>Firmware update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="558"/>
|
||||
<source>Tool started</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -658,6 +752,24 @@ Wait, please.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TerminalScreen</name>
|
||||
<message>
|
||||
<location filename="../qml/Screens/TerminalScreen.qml" line="37"/>
|
||||
<source>Clear</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/TerminalScreen.qml" line="50"/>
|
||||
<source>Send</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/TerminalScreen.qml" line="59"/>
|
||||
<source>Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Translator</name>
|
||||
<message>
|
||||
|
||||
@@ -128,80 +128,80 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="645"/>
|
||||
<location filename="../bmsinterface.cpp" line="644"/>
|
||||
<source>Serial port error: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="687"/>
|
||||
<location filename="../bmsinterface.cpp" line="684"/>
|
||||
<source>TCP Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="724"/>
|
||||
<location filename="../bmsinterface.cpp" line="721"/>
|
||||
<source>No firmware read response</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="725"/>
|
||||
<location filename="../bmsinterface.cpp" line="722"/>
|
||||
<source>Read Firmware Version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="726"/>
|
||||
<location filename="../bmsinterface.cpp" line="723"/>
|
||||
<source>Could not read firmware version. Make sure that selected port really belongs to the ENNOID-BMS. </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="802"/>
|
||||
<location filename="../bmsinterface.cpp" line="803"/>
|
||||
<source>Not Supported Firmwares</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="803"/>
|
||||
<location filename="../bmsinterface.cpp" line="804"/>
|
||||
<source>This version of ENNOID-BMS Tool does not seem to have any supported firmwares. Something is probably wrong with the BMS configuration file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="823"/>
|
||||
<location filename="../bmsinterface.cpp" line="851"/>
|
||||
<location filename="../bmsinterface.cpp" line="824"/>
|
||||
<location filename="../bmsinterface.cpp" line="852"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="823"/>
|
||||
<location filename="../bmsinterface.cpp" line="851"/>
|
||||
<location filename="../bmsinterface.cpp" line="824"/>
|
||||
<location filename="../bmsinterface.cpp" line="852"/>
|
||||
<source>The firmware on the connected ENNOID-BMS is too old. Please update it using a programmer.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="828"/>
|
||||
<location filename="../bmsinterface.cpp" line="840"/>
|
||||
<location filename="../bmsinterface.cpp" line="829"/>
|
||||
<location filename="../bmsinterface.cpp" line="841"/>
|
||||
<source>Warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="828"/>
|
||||
<location filename="../bmsinterface.cpp" line="829"/>
|
||||
<source>The connected ENNOID-BMS has newer firmware than this version of the ENNOID-BMS Tool supports. It is recommended that you update the ENNOID-BMS Tool to the latest version. Alternatively, the firmware on the connected ENNOID-BMS can be downgraded in the firmware page. Until then, limited communication mode will be used where only the firmware can be changed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="840"/>
|
||||
<location filename="../bmsinterface.cpp" line="841"/>
|
||||
<source>The connected ENNOID-BMS has too old firmware. Since the connected ENNOID-BMS has firmware with bootloader support, it can be updated from the Firmware page. Until then, limited communication mode will be used where only the firmware can be changed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="864"/>
|
||||
<location filename="../bmsinterface.cpp" line="865"/>
|
||||
<source>Firmware version: %1.%2, Hardware: %3, UUID: %4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="896"/>
|
||||
<location filename="../bmsinterface.cpp" line="886"/>
|
||||
<source>BMS configuration updated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="900"/>
|
||||
<location filename="../bmsinterface.cpp" line="891"/>
|
||||
<source>BMS configuration stored to Flash</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -209,18 +209,13 @@
|
||||
<context>
|
||||
<name>BmsServiceScreen</name>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="37"/>
|
||||
<source>Clear</source>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="17"/>
|
||||
<source>Terminal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="50"/>
|
||||
<source>Send</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="59"/>
|
||||
<source>Help</source>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="22"/>
|
||||
<source>Firmware update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -482,10 +477,53 @@ Wait, please.</source>
|
||||
<context>
|
||||
<name>Commands</name>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="237"/>
|
||||
<location filename="../commands.cpp" line="239"/>
|
||||
<source>BMS configuration is set</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="462"/>
|
||||
<location filename="../commands.cpp" line="623"/>
|
||||
<source>Buffer erase</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="467"/>
|
||||
<source>Buffer erase timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="475"/>
|
||||
<source>CRC/Size write</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="484"/>
|
||||
<source>CRC/Size write timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="503"/>
|
||||
<source>Firmware data write</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="512"/>
|
||||
<source>Firmware data write timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="540"/>
|
||||
<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="660"/>
|
||||
<source>Cancelled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigParams</name>
|
||||
@@ -550,6 +588,62 @@ Wait, please.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FirmwareUpdateHelper</name>
|
||||
<message>
|
||||
<location filename="../firmwareupdatehelper.cpp" line="19"/>
|
||||
<source>Upload error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../firmwareupdatehelper.cpp" line="20"/>
|
||||
<source>Could not open file. Make sure that the path is valid.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FirmwareUpdateScreen</name>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="20"/>
|
||||
<source>Board information</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="28"/>
|
||||
<source>Firmware</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="46"/>
|
||||
<source>Hardware</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="64"/>
|
||||
<source>UUID</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="83"/>
|
||||
<source>Upload firmware</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="88"/>
|
||||
<source>Select firmware file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="90"/>
|
||||
<source>Firmware files (*.bin)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="90"/>
|
||||
<source>All files (*)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
@@ -564,13 +658,13 @@ Wait, please.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="79"/>
|
||||
<location filename="../qml/MainWindow.qml" line="135"/>
|
||||
<location filename="../qml/MainWindow.qml" line="310"/>
|
||||
<source>AKB monitor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="80"/>
|
||||
<location filename="../qml/MainWindow.qml" line="136"/>
|
||||
<location filename="../qml/MainWindow.qml" line="314"/>
|
||||
<source>Cell monitor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -581,7 +675,7 @@ Wait, please.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="82"/>
|
||||
<location filename="../qml/MainWindow.qml" line="138"/>
|
||||
<location filename="../qml/MainWindow.qml" line="330"/>
|
||||
<source>Visualization</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -601,38 +695,38 @@ Wait, please.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="137"/>
|
||||
<location filename="../qml/MainWindow.qml" line="318"/>
|
||||
<source>BMS settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="139"/>
|
||||
<location filename="../qml/MainWindow.qml" line="335"/>
|
||||
<source>Information output</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="140"/>
|
||||
<source>Terminal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="165"/>
|
||||
<location filename="../qml/MainWindow.qml" line="352"/>
|
||||
<location filename="../qml/MainWindow.qml" line="156"/>
|
||||
<location filename="../qml/MainWindow.qml" line="348"/>
|
||||
<source>Disconnected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="189"/>
|
||||
<location filename="../qml/MainWindow.qml" line="180"/>
|
||||
<source>Serial number</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="352"/>
|
||||
<location filename="../qml/MainWindow.qml" line="348"/>
|
||||
<source>Connected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="505"/>
|
||||
<location filename="../qml/MainWindow.qml" line="397"/>
|
||||
<source>Firmware update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="558"/>
|
||||
<source>Tool started</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -658,6 +752,24 @@ Wait, please.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TerminalScreen</name>
|
||||
<message>
|
||||
<location filename="../qml/Screens/TerminalScreen.qml" line="37"/>
|
||||
<source>Clear</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/TerminalScreen.qml" line="50"/>
|
||||
<source>Send</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/TerminalScreen.qml" line="59"/>
|
||||
<source>Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Translator</name>
|
||||
<message>
|
||||
|
||||
Binary file not shown.
@@ -128,80 +128,80 @@
|
||||
<translation>Поддержка последовательного порта не включена в этой сборке утилиты.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="645"/>
|
||||
<location filename="../bmsinterface.cpp" line="644"/>
|
||||
<source>Serial port error: </source>
|
||||
<translation>Ошибка последовательного порта: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="687"/>
|
||||
<location filename="../bmsinterface.cpp" line="684"/>
|
||||
<source>TCP Error</source>
|
||||
<translation>Ошибка TCP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="724"/>
|
||||
<location filename="../bmsinterface.cpp" line="721"/>
|
||||
<source>No firmware read response</source>
|
||||
<translation>Нет ответа на чтение прошивки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="725"/>
|
||||
<location filename="../bmsinterface.cpp" line="722"/>
|
||||
<source>Read Firmware Version</source>
|
||||
<translation>Чтение версии прошивки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="726"/>
|
||||
<location filename="../bmsinterface.cpp" line="723"/>
|
||||
<source>Could not read firmware version. Make sure that selected port really belongs to the ENNOID-BMS. </source>
|
||||
<translation>Не удалось прочитать версию прошивки. Убедитесь, что выбранный порт действительно принадлежит ENNOID-BMS. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="802"/>
|
||||
<location filename="../bmsinterface.cpp" line="803"/>
|
||||
<source>Not Supported Firmwares</source>
|
||||
<translation>Не поддерживаемые прошивки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="803"/>
|
||||
<location filename="../bmsinterface.cpp" line="804"/>
|
||||
<source>This version of ENNOID-BMS Tool does not seem to have any supported firmwares. Something is probably wrong with the BMS configuration file.</source>
|
||||
<translation>Эта версия утилиты не имеет поддерживаемых прошивок. Вероятно, что-то не так с файлом конфигурации BMS.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="823"/>
|
||||
<location filename="../bmsinterface.cpp" line="851"/>
|
||||
<location filename="../bmsinterface.cpp" line="824"/>
|
||||
<location filename="../bmsinterface.cpp" line="852"/>
|
||||
<source>Error</source>
|
||||
<translation>Ошибка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="823"/>
|
||||
<location filename="../bmsinterface.cpp" line="851"/>
|
||||
<location filename="../bmsinterface.cpp" line="824"/>
|
||||
<location filename="../bmsinterface.cpp" line="852"/>
|
||||
<source>The firmware on the connected ENNOID-BMS is too old. Please update it using a programmer.</source>
|
||||
<translation>Прошивка подключенного ENNOID-BMS устарела. Пожалуйста, обновите его с помощью программатора.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="828"/>
|
||||
<location filename="../bmsinterface.cpp" line="840"/>
|
||||
<location filename="../bmsinterface.cpp" line="829"/>
|
||||
<location filename="../bmsinterface.cpp" line="841"/>
|
||||
<source>Warning</source>
|
||||
<translation>Внимание</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="828"/>
|
||||
<location filename="../bmsinterface.cpp" line="829"/>
|
||||
<source>The connected ENNOID-BMS has newer firmware than this version of the ENNOID-BMS Tool supports. It is recommended that you update the ENNOID-BMS Tool to the latest version. Alternatively, the firmware on the connected ENNOID-BMS can be downgraded in the firmware page. Until then, limited communication mode will be used where only the firmware can be changed.</source>
|
||||
<translation>Подключенный ENNOID-BMS имеет более новую прошивку, чем поддерживает эта версия инструмента ENNOID-BMS. Рекомендуется обновить инструмент ENNOID-BMS до последней версии. Кроме того, прошивку подключенного ENNOID-BMS можно понизить на странице прошивки. До тех пор будет использоваться ограниченный режим связи, при котором можно будет изменить только прошивку.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="840"/>
|
||||
<location filename="../bmsinterface.cpp" line="841"/>
|
||||
<source>The connected ENNOID-BMS has too old firmware. Since the connected ENNOID-BMS has firmware with bootloader support, it can be updated from the Firmware page. Until then, limited communication mode will be used where only the firmware can be changed.</source>
|
||||
<translation>Подключенный ENNOID-BMS имеет слишком старую прошивку. Поскольку подключенный ENNOID-BMS имеет встроенное ПО с поддержкой загрузчика, его можно обновить со страницы встроенного ПО. До тех пор будет использоваться ограниченный режим связи, при котором можно будет изменить только прошивку.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="864"/>
|
||||
<location filename="../bmsinterface.cpp" line="865"/>
|
||||
<source>Firmware version: %1.%2, Hardware: %3, UUID: %4</source>
|
||||
<translation>Версия прошивки: %1.%2, Оборудование: %3, UUID: %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="896"/>
|
||||
<location filename="../bmsinterface.cpp" line="886"/>
|
||||
<source>BMS configuration updated</source>
|
||||
<translation>Конфигурация BMS обновлена</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../bmsinterface.cpp" line="900"/>
|
||||
<location filename="../bmsinterface.cpp" line="891"/>
|
||||
<source>BMS configuration stored to Flash</source>
|
||||
<translation>Конфигурация BMS сохранена во флэш-памяти</translation>
|
||||
</message>
|
||||
@@ -209,19 +209,26 @@
|
||||
<context>
|
||||
<name>BmsServiceScreen</name>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="37"/>
|
||||
<source>Clear</source>
|
||||
<translation>Очистить</translation>
|
||||
<translation type="vanished">Очистить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="50"/>
|
||||
<source>Send</source>
|
||||
<translation>Отправить</translation>
|
||||
<translation type="vanished">Отправить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="59"/>
|
||||
<source>Help</source>
|
||||
<translation>Помощь</translation>
|
||||
<translation type="vanished">Помощь</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="17"/>
|
||||
<source>Terminal</source>
|
||||
<translation>Терминал</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/BmsServiceScreen.qml" line="22"/>
|
||||
<source>Firmware update</source>
|
||||
<translation>Обновление прошивки</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -487,10 +494,59 @@ Wait, please.</source>
|
||||
<context>
|
||||
<name>Commands</name>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="237"/>
|
||||
<location filename="../commands.cpp" line="239"/>
|
||||
<source>BMS configuration is set</source>
|
||||
<translation>Конфигурация BMS установлена</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="462"/>
|
||||
<location filename="../commands.cpp" line="623"/>
|
||||
<source>Buffer erase</source>
|
||||
<translation>Стирание буфера</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="467"/>
|
||||
<source>Buffer erase timeout</source>
|
||||
<translation>Таймаут стирания буфера</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="475"/>
|
||||
<source>CRC/Size write</source>
|
||||
<translation>Запись контрольной суммы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="484"/>
|
||||
<source>CRC/Size write timeout</source>
|
||||
<translation>Таймаут записи контрольной суммы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="503"/>
|
||||
<source>Firmware data write</source>
|
||||
<translation>Запись данных прошивки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="512"/>
|
||||
<source>Firmware data write timeout</source>
|
||||
<translation>Таймаут записи данных прошивки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="540"/>
|
||||
<source>Firmware update completed!
|
||||
|
||||
Reconnect to the board if you want to continue working with it.</source>
|
||||
<translation>Обновление прошивки завершено!
|
||||
|
||||
Выполните повторное подключение к плате, если хотите продолжить работу с ней.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Firmware update completed</source>
|
||||
<translation type="vanished">Обновление прошивки завершено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commands.cpp" line="660"/>
|
||||
<source>Cancelled</source>
|
||||
<translation>Отменено</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigParams</name>
|
||||
@@ -555,6 +611,62 @@ Wait, please.</source>
|
||||
<translation>Очистить</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FirmwareUpdateHelper</name>
|
||||
<message>
|
||||
<location filename="../firmwareupdatehelper.cpp" line="19"/>
|
||||
<source>Upload error</source>
|
||||
<translation>Ошибка загрузки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../firmwareupdatehelper.cpp" line="20"/>
|
||||
<source>Could not open file. Make sure that the path is valid.</source>
|
||||
<translation>Не удалось открыть файл. Убедитесь что путь валидный.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FirmwareUpdateScreen</name>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="20"/>
|
||||
<source>Board information</source>
|
||||
<translation>Информация о плате</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="28"/>
|
||||
<source>Firmware</source>
|
||||
<translation>Прошивка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="46"/>
|
||||
<source>Hardware</source>
|
||||
<translation>Оборудование</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="64"/>
|
||||
<source>UUID</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="83"/>
|
||||
<source>Upload firmware</source>
|
||||
<translation>Загрузить прошивку</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="88"/>
|
||||
<source>Select firmware file</source>
|
||||
<translation>Выберите файл прошивки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="90"/>
|
||||
<source>Firmware files (*.bin)</source>
|
||||
<translation>Файлы прошивок (*.bin)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/FirmwareUpdateScreen.qml" line="90"/>
|
||||
<source>All files (*)</source>
|
||||
<translation>Все файлы (*)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
@@ -573,13 +685,13 @@ Wait, please.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="79"/>
|
||||
<location filename="../qml/MainWindow.qml" line="135"/>
|
||||
<location filename="../qml/MainWindow.qml" line="310"/>
|
||||
<source>AKB monitor</source>
|
||||
<translation>Монитор АКБ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="80"/>
|
||||
<location filename="../qml/MainWindow.qml" line="136"/>
|
||||
<location filename="../qml/MainWindow.qml" line="314"/>
|
||||
<source>Cell monitor</source>
|
||||
<translation>Монитор ячеек</translation>
|
||||
</message>
|
||||
@@ -590,7 +702,7 @@ Wait, please.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="82"/>
|
||||
<location filename="../qml/MainWindow.qml" line="138"/>
|
||||
<location filename="../qml/MainWindow.qml" line="330"/>
|
||||
<source>Visualization</source>
|
||||
<translation>Визуализация</translation>
|
||||
</message>
|
||||
@@ -610,22 +722,26 @@ Wait, please.</source>
|
||||
<translation>Подключение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="137"/>
|
||||
<location filename="../qml/MainWindow.qml" line="318"/>
|
||||
<source>BMS settings</source>
|
||||
<translation>Настройка BMS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="139"/>
|
||||
<location filename="../qml/MainWindow.qml" line="335"/>
|
||||
<source>Information output</source>
|
||||
<translation>Вывод информации</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="140"/>
|
||||
<source>Terminal</source>
|
||||
<translation>Терминал</translation>
|
||||
<location filename="../qml/MainWindow.qml" line="397"/>
|
||||
<source>Firmware update</source>
|
||||
<translation>Обновление прошивки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="505"/>
|
||||
<source>Terminal</source>
|
||||
<translation type="vanished">Терминал</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="558"/>
|
||||
<source>Tool started</source>
|
||||
<translation>Утилита запущена</translation>
|
||||
</message>
|
||||
@@ -634,18 +750,18 @@ Wait, please.</source>
|
||||
<translation type="vanished">Выход</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="165"/>
|
||||
<location filename="../qml/MainWindow.qml" line="352"/>
|
||||
<location filename="../qml/MainWindow.qml" line="156"/>
|
||||
<location filename="../qml/MainWindow.qml" line="348"/>
|
||||
<source>Disconnected</source>
|
||||
<translation>Отключено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="189"/>
|
||||
<location filename="../qml/MainWindow.qml" line="180"/>
|
||||
<source>Serial number</source>
|
||||
<translation>Серийный номер</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/MainWindow.qml" line="352"/>
|
||||
<location filename="../qml/MainWindow.qml" line="348"/>
|
||||
<source>Connected</source>
|
||||
<translation>Подключено</translation>
|
||||
</message>
|
||||
@@ -671,6 +787,24 @@ Wait, please.</source>
|
||||
<translation>Не удалось автоматически подключиться. Убедитесь, что USB-кабель подключен и ENNOID-BMS включен.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TerminalScreen</name>
|
||||
<message>
|
||||
<location filename="../qml/Screens/TerminalScreen.qml" line="37"/>
|
||||
<source>Clear</source>
|
||||
<translation>Очистить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/TerminalScreen.qml" line="50"/>
|
||||
<source>Send</source>
|
||||
<translation>Отправить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Screens/TerminalScreen.qml" line="59"/>
|
||||
<source>Help</source>
|
||||
<translation>Помощь</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Translator</name>
|
||||
<message>
|
||||
|
||||
Reference in New Issue
Block a user