Implemented cell monitor screen
This commit is contained in:
12
qml/Controls/AvailabilityIndicator.qml
Normal file
12
qml/Controls/AvailabilityIndicator.qml
Normal 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
|
||||
}
|
||||
@@ -10,7 +10,7 @@ TextField {
|
||||
selectionColor: Palette.alternativeBackgroundColor
|
||||
|
||||
background: Rectangle {
|
||||
color: Palette.backgroundColor
|
||||
color: enabled ? Palette.backgroundColor : Palette.hoveredBackgroundColor
|
||||
border.color: Palette.borderColor
|
||||
border.width: 1
|
||||
radius: 8
|
||||
|
||||
@@ -11,3 +11,4 @@ TitleLabel 1.0 TitleLabel.qml
|
||||
SubtitleLabel 1.0 SubtitleLabel.qml
|
||||
ContentLabel 1.0 ContentLabel.qml
|
||||
DotSeparator 1.0 DotSeparator.qml
|
||||
AvailabilityIndicator 1.0 AvailabilityIndicator.qml
|
||||
|
||||
@@ -199,6 +199,7 @@ ApplicationWindow {
|
||||
Layout.fillHeight: true
|
||||
Layout.leftMargin: 45
|
||||
Layout.rightMargin: 45
|
||||
Layout.bottomMargin: 30
|
||||
|
||||
Screens.AkbMonitorScreen {
|
||||
}
|
||||
|
||||
@@ -314,13 +314,13 @@ Item {
|
||||
Connections {
|
||||
target: BmsInterface.bmsConfig()
|
||||
onUpdated: {
|
||||
serialField.text = BmsInterface.bmsConfig().getParamDouble("notUsedCurrentThreshold")
|
||||
serialField.text = BmsInterface.bmsConfig().getParamDouble("notUsedCurrentThreshold") // TODO
|
||||
|
||||
numberOfModulesLabel.text = BmsInterface.bmsConfig().getParamInt("cellMonitorICCount")
|
||||
numberOfCellsLabel.text = BmsInterface.bmsConfig().getParamInt("noOfCellsSeries")
|
||||
|
||||
nominalCapacityLabel.text = BmsInterface.bmsConfig().getParamDouble("batteryCapacity")
|
||||
actualCapacityLabel.text = nominalCapacityLabel.text
|
||||
actualCapacityLabel.text = nominalCapacityLabel.text // TODO
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,180 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Layouts 1.12
|
||||
import QtGraphicalEffects 1.0
|
||||
|
||||
import Controls 1.0 as Controls
|
||||
import Cubo 1.0
|
||||
import Utils 1.0
|
||||
|
||||
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
|
||||
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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,12 +6,14 @@ QtObject {
|
||||
property color selectedTextColor: "#009352"
|
||||
property color contentTextColor: "#869098"
|
||||
property color alternativeTextColor: "#FFFFFF"
|
||||
property color tableHeaderTextColor: "#838D97"
|
||||
|
||||
property color backgroundColor: "#FFFFFF"
|
||||
property color hoveredBackgroundColor: "#F0F1F4"
|
||||
property color selectedBackgroundColor: "#CCE9DC"
|
||||
property color alternativeBackgroundColor: "#009352"
|
||||
property color screenBackgroundColor: "#F7F8FC"
|
||||
property color tableHeaderBackgroundColor: "#F0F1F4"
|
||||
|
||||
property color borderColor: "#DFE0EB"
|
||||
|
||||
|
||||
@@ -20,5 +20,6 @@
|
||||
<file>Controls/SubtitleLabel.qml</file>
|
||||
<file>Controls/ContentLabel.qml</file>
|
||||
<file>Controls/DotSeparator.qml</file>
|
||||
<file>Controls/AvailabilityIndicator.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
Reference in New Issue
Block a user