Cell balancing calculation added. Fixed rounding of real numbers to the second decimal place
This commit is contained in:
@@ -3,6 +3,7 @@ import QtQuick.Layouts 1.12
|
|||||||
|
|
||||||
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 {
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
@@ -299,27 +300,27 @@ Item {
|
|||||||
target: BmsInterface.commands()
|
target: BmsInterface.commands()
|
||||||
onValuesReceived: {
|
onValuesReceived: {
|
||||||
batteryChargeLevelLabel.text = values.soC
|
batteryChargeLevelLabel.text = values.soC
|
||||||
batteryVoltageLabel.text = values.packVoltage
|
batteryVoltageLabel.text = MathHelper.roundDouble(values.packVoltage)
|
||||||
|
|
||||||
batteryTemperatureLabel.text = values.tempBattHigh
|
batteryTemperatureLabel.text = MathHelper.roundDouble(values.tempBattHigh)
|
||||||
bmsTemperatureLabel.text = values.tempBMSHigh
|
bmsTemperatureLabel.text = MathHelper.roundDouble(values.tempBMSHigh)
|
||||||
|
|
||||||
maximumCellVoltageLabel.text = values.cVHigh
|
maximumCellVoltageLabel.text = MathHelper.roundDouble(values.cVHigh)
|
||||||
minimumCellVoltageLabel.text = values.cVLow
|
minimumCellVoltageLabel.text = MathHelper.roundDouble(values.cVLow)
|
||||||
|
|
||||||
currentLabel.text = values.packCurrent
|
currentLabel.text = MathHelper.roundDouble(values.packCurrent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: BmsInterface.bmsConfig()
|
target: BmsInterface.bmsConfig()
|
||||||
onUpdated: {
|
onUpdated: {
|
||||||
serialNumberField.text = BmsInterface.bmsConfig().getParamDouble("notUsedCurrentThreshold") // TODO
|
serialNumberField.text = MathHelper.roundDouble(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 = MathHelper.roundDouble(BmsInterface.bmsConfig().getParamDouble("batteryCapacity"))
|
||||||
actualCapacityLabel.text = nominalCapacityLabel.text // TODO
|
actualCapacityLabel.text = nominalCapacityLabel.text // TODO
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Controls.SubtitleLabel {
|
Controls.SubtitleLabel {
|
||||||
text: index + 1
|
id: indexLabel
|
||||||
color: Palette.tableHeaderTextColor
|
color: Palette.tableHeaderTextColor
|
||||||
Layout.preferredWidth: 25
|
Layout.preferredWidth: 25
|
||||||
Layout.alignment: Qt.AlignCenter
|
Layout.alignment: Qt.AlignCenter
|
||||||
@@ -97,6 +97,10 @@ Item {
|
|||||||
Item {
|
Item {
|
||||||
Layout.preferredWidth: parent.width / 6 - 20
|
Layout.preferredWidth: parent.width / 6 - 20
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
indexLabel.text = index + ListView.view.indexOffset
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,6 +117,9 @@ Item {
|
|||||||
clip: true
|
clip: true
|
||||||
model: []
|
model: []
|
||||||
spacing: 0
|
spacing: 0
|
||||||
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
|
|
||||||
|
property int indexOffset: 1
|
||||||
|
|
||||||
header: cellListHeader
|
header: cellListHeader
|
||||||
delegate: cellListDelegate
|
delegate: cellListDelegate
|
||||||
@@ -132,6 +139,9 @@ Item {
|
|||||||
clip: true
|
clip: true
|
||||||
model: []
|
model: []
|
||||||
spacing: 0
|
spacing: 0
|
||||||
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
|
|
||||||
|
property int indexOffset: 17
|
||||||
|
|
||||||
header: cellListHeader
|
header: cellListHeader
|
||||||
delegate: cellListDelegate
|
delegate: cellListDelegate
|
||||||
@@ -149,7 +159,7 @@ Item {
|
|||||||
var firstModel = []
|
var firstModel = []
|
||||||
|
|
||||||
for (var i = 0; i < Math.min(cellCount, 16); ++i) {
|
for (var i = 0; i < Math.min(cellCount, 16); ++i) {
|
||||||
firstModel.push({"voltage": cellVoltageArray[i], "balancing": true})
|
firstModel.push({"voltage": MathHelper.roundDouble(cellVoltageArray[i]), "balancing": cellVoltageArray[i] < 0})
|
||||||
}
|
}
|
||||||
firstCellGroup.model = firstModel
|
firstCellGroup.model = firstModel
|
||||||
|
|
||||||
@@ -158,7 +168,7 @@ Item {
|
|||||||
var secondModel = []
|
var secondModel = []
|
||||||
|
|
||||||
for (var j = 16; j < Math.min(cellCount, 32); ++j) {
|
for (var j = 16; j < Math.min(cellCount, 32); ++j) {
|
||||||
secondModel.push({"voltage": cellVoltageArray[j], "balancing": true})
|
secondModel.push({"voltage": MathHelper.roundDouble(cellVoltageArray[j]), "balancing": cellVoltageArray[i] < 0})
|
||||||
}
|
}
|
||||||
secondCellGroup.model = secondModel
|
secondCellGroup.model = secondModel
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,9 +23,7 @@ Popup {
|
|||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
radius: 6
|
radius: 6
|
||||||
color: good ? Palette.alternativeBackgroundColor : Palette.invalidColor
|
color: good ? Palette.informationColor : Palette.invalidColor
|
||||||
border.width: 1
|
|
||||||
border.color: Palette.borderColor
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enter: Transition {
|
enter: Transition {
|
||||||
|
|||||||
8
qml/Utils/MathHelper.qml
Normal file
8
qml/Utils/MathHelper.qml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
pragma Singleton
|
||||||
|
import QtQuick 2.12
|
||||||
|
|
||||||
|
QtObject {
|
||||||
|
function roundDouble(value) {
|
||||||
|
return Math.round((value + Number.EPSILON) * 100) / 100
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,5 +22,6 @@ QtObject {
|
|||||||
property color hoveredButtonColor: "#03AC61"
|
property color hoveredButtonColor: "#03AC61"
|
||||||
property color pressedButtonColor: "#057845"
|
property color pressedButtonColor: "#057845"
|
||||||
|
|
||||||
|
property color informationColor: "#4C68ED"
|
||||||
property color invalidColor: "#A31C00"
|
property color invalidColor: "#A31C00"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
module utils
|
module utils
|
||||||
singleton Palette 1.0 Palette.qml
|
singleton Palette 1.0 Palette.qml
|
||||||
|
singleton MathHelper 1.0 MathHelper.qml
|
||||||
|
|||||||
@@ -37,5 +37,6 @@
|
|||||||
<file>Controls/DialogBackground.qml</file>
|
<file>Controls/DialogBackground.qml</file>
|
||||||
<file>Screens/MessageDialog.qml</file>
|
<file>Screens/MessageDialog.qml</file>
|
||||||
<file>Screens/StatusPopup.qml</file>
|
<file>Screens/StatusPopup.qml</file>
|
||||||
|
<file>Utils/MathHelper.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|||||||
Reference in New Issue
Block a user