Implemented cell monitor screen

This commit is contained in:
Yury Shuvakin
2022-08-17 05:30:25 +03:00
parent a4196df821
commit 4a5a0bcb3a
8 changed files with 188 additions and 4 deletions

View File

@@ -0,0 +1,12 @@
import QtQuick 2.12
import Utils 1.0
Rectangle {
property bool enabled: false
implicitWidth: 18
implicitHeight: 18
radius: implicitWidth / 2
color: enabled ? Palette.alternativeBackgroundColor : Palette.borderColor
}

View File

@@ -10,7 +10,7 @@ TextField {
selectionColor: Palette.alternativeBackgroundColor selectionColor: Palette.alternativeBackgroundColor
background: Rectangle { background: Rectangle {
color: Palette.backgroundColor color: enabled ? Palette.backgroundColor : Palette.hoveredBackgroundColor
border.color: Palette.borderColor border.color: Palette.borderColor
border.width: 1 border.width: 1
radius: 8 radius: 8

View File

@@ -11,3 +11,4 @@ TitleLabel 1.0 TitleLabel.qml
SubtitleLabel 1.0 SubtitleLabel.qml SubtitleLabel 1.0 SubtitleLabel.qml
ContentLabel 1.0 ContentLabel.qml ContentLabel 1.0 ContentLabel.qml
DotSeparator 1.0 DotSeparator.qml DotSeparator 1.0 DotSeparator.qml
AvailabilityIndicator 1.0 AvailabilityIndicator.qml

View File

@@ -199,6 +199,7 @@ ApplicationWindow {
Layout.fillHeight: true Layout.fillHeight: true
Layout.leftMargin: 45 Layout.leftMargin: 45
Layout.rightMargin: 45 Layout.rightMargin: 45
Layout.bottomMargin: 30
Screens.AkbMonitorScreen { Screens.AkbMonitorScreen {
} }

View File

@@ -314,13 +314,13 @@ Item {
Connections { Connections {
target: BmsInterface.bmsConfig() target: BmsInterface.bmsConfig()
onUpdated: { onUpdated: {
serialField.text = BmsInterface.bmsConfig().getParamDouble("notUsedCurrentThreshold") serialField.text = BmsInterface.bmsConfig().getParamDouble("notUsedCurrentThreshold") // TODO
numberOfModulesLabel.text = BmsInterface.bmsConfig().getParamInt("cellMonitorICCount") numberOfModulesLabel.text = BmsInterface.bmsConfig().getParamInt("cellMonitorICCount")
numberOfCellsLabel.text = BmsInterface.bmsConfig().getParamInt("noOfCellsSeries") numberOfCellsLabel.text = BmsInterface.bmsConfig().getParamInt("noOfCellsSeries")
nominalCapacityLabel.text = BmsInterface.bmsConfig().getParamDouble("batteryCapacity") nominalCapacityLabel.text = BmsInterface.bmsConfig().getParamDouble("batteryCapacity")
actualCapacityLabel.text = nominalCapacityLabel.text actualCapacityLabel.text = nominalCapacityLabel.text // TODO
} }
} }

View File

@@ -1,13 +1,180 @@
import QtQuick 2.12 import QtQuick 2.12
import QtQuick.Layouts 1.12 import QtQuick.Layouts 1.12
import QtGraphicalEffects 1.0
import Controls 1.0 as Controls import Controls 1.0 as Controls
import Cubo 1.0 import Cubo 1.0
import Utils 1.0
Item { Item {
Controls.Frame { Component {
id: cellListHeader
RowLayout {
spacing: 0
width: ListView.view.width
Rectangle {
id: numberTab
color: Palette.tableHeaderBackgroundColor
Layout.preferredHeight: 60
Layout.fillWidth: true
Controls.SubtitleLabel {
text: qsTr("№")
color: Palette.tableHeaderTextColor
anchors.centerIn: parent
}
}
Rectangle {
id: voltageTab
color: Palette.tableHeaderBackgroundColor
Layout.preferredHeight: 60
Layout.fillWidth: true
Controls.SubtitleLabel {
text: qsTr("Voltage")
color: Palette.tableHeaderTextColor
anchors.centerIn: parent
}
}
Rectangle {
id: balancingTab
color: Palette.tableHeaderBackgroundColor
Layout.preferredHeight: 60
Layout.fillWidth: true
Controls.SubtitleLabel {
text: qsTr("Balancing")
color: Palette.tableHeaderTextColor
anchors.centerIn: parent
}
}
Layout.fillWidth: true
}
}
Component {
id: cellListDelegate
RowLayout {
spacing: 10
width: ListView.view.width
height: 36
Item {
Layout.preferredWidth: parent.width / 6 - 20
}
Controls.SubtitleLabel {
text: index
color: Palette.tableHeaderTextColor
Layout.preferredWidth: 25
Layout.alignment: Qt.AlignCenter
}
Controls.DotSeparator {
Layout.fillWidth: true
}
Controls.SubtitleLabel {
text: modelData.voltage + " " + qsTr("V")
color: Palette.tableHeaderTextColor
}
Controls.DotSeparator {
Layout.fillWidth: true
}
Controls.AvailabilityIndicator {
enabled: modelData.balancing
Layout.alignment: Qt.AlignCenter
}
Item {
Layout.preferredWidth: parent.width / 6 - 20
}
}
}
RowLayout {
anchors.fill: parent anchors.fill: parent
spacing: 20
Controls.Frame {
padding: 1
ListView {
id: firstCellGroup
anchors.fill: parent
clip: true
model: []
spacing: 2
header: cellListHeader
delegate: cellListDelegate
}
Layout.fillWidth: true
Layout.fillHeight: true
}
Controls.Frame {
padding: 1
visible: secondCellGroup.model.length > 0
ListView {
id: secondCellGroup
anchors.fill: parent
clip: true
model: []
spacing: 2
header: cellListHeader
delegate: cellListDelegate
}
Layout.fillWidth: true
Layout.fillHeight: true
}
}
Connections {
target: BmsInterface.commands()
onCellsReceived: {
firstCellGroup.model = []
var firstModel = []
for (var i = 0; i < Math.min(cellCount, 16); ++i) {
firstModel.push({"voltage": cellVoltageArray[i], "balancing": true})
}
firstCellGroup.model = firstModel
if (cellCount > 16) {
secondCellGroup.model = []
var secondModel = []
for (var j = 16; j < Math.min(cellCount, 32); ++j) {
secondModel.push({"voltage": cellVoltageArray[j], "balancing": true})
}
secondCellGroup.model = secondModel
}
}
}
Connections {
target: BmsInterface
onPortConnectedChanged: getValues()
}
onVisibleChanged: getValues()
function getValues() {
if (BmsInterface.isPortConnected() && visible) {
BmsInterface.commands().getCells()
}
} }
} }

View File

@@ -6,12 +6,14 @@ QtObject {
property color selectedTextColor: "#009352" property color selectedTextColor: "#009352"
property color contentTextColor: "#869098" property color contentTextColor: "#869098"
property color alternativeTextColor: "#FFFFFF" property color alternativeTextColor: "#FFFFFF"
property color tableHeaderTextColor: "#838D97"
property color backgroundColor: "#FFFFFF" property color backgroundColor: "#FFFFFF"
property color hoveredBackgroundColor: "#F0F1F4" property color hoveredBackgroundColor: "#F0F1F4"
property color selectedBackgroundColor: "#CCE9DC" property color selectedBackgroundColor: "#CCE9DC"
property color alternativeBackgroundColor: "#009352" property color alternativeBackgroundColor: "#009352"
property color screenBackgroundColor: "#F7F8FC" property color screenBackgroundColor: "#F7F8FC"
property color tableHeaderBackgroundColor: "#F0F1F4"
property color borderColor: "#DFE0EB" property color borderColor: "#DFE0EB"

View File

@@ -20,5 +20,6 @@
<file>Controls/SubtitleLabel.qml</file> <file>Controls/SubtitleLabel.qml</file>
<file>Controls/ContentLabel.qml</file> <file>Controls/ContentLabel.qml</file>
<file>Controls/DotSeparator.qml</file> <file>Controls/DotSeparator.qml</file>
<file>Controls/AvailabilityIndicator.qml</file>
</qresource> </qresource>
</RCC> </RCC>