import QtQuick 1.1 import com.victron.velib 1.0 import "utils.js" as Utils MbPage { id: root function bind(path) { return Utils.path(bindPrefix, path) } property variant service property string bindPrefix : service.path("") property string slaveAddress : "" property bool isAggregatedBattery : false property VBusItem dcVoltage: VBusItem { bind: root.bind("/Dc/0/Voltage") } property VBusItem dcCurrent: VBusItem { bind: root.bind("/Dc/0/Current") } property VBusItem power: VBusItem { bind: root.bind("/Dc/0/Power") } property VBusItem resetBatteries: VBusItem { bind: root.bind("/ResetBatteries") } property VBusItem numberOfAlarms : VBusItem { bind: root.bind("/NumberOfAlarmFlags") } property VBusItem numberOfWarnings: VBusItem { bind: root.bind("/NumberOfWarningFlags") } title: service ? service.description : ("Battery " + root.slaveAddress) property VBusItem bmsVersion: VBusItem { bind: root.bind("/BmsVersion") } model: VisualItemModel { MbItemRow { description: qsTr("Battery") values: [ MbTextBlock { item: dcVoltage; width: 90; height: 25 }, MbTextBlock { item: dcCurrent; width: 90; height: 25 }, MbTextBlock { item: power; width: 90; height: 25 } ] } MbItemValue { id: soc description: qsTr("State of charge") item.bind: bind("/Soc") item.unit: "%" item.decimals: 1 } MbItemValue { description: qsTr("Battery temperature") item { bind: bind("/Dc/0/Temperature") unit: "°C" } show: item.valid } MbItemValue { description: qsTr("Bus voltage") item.bind: bind("/BusVoltage") show: item.valid } MbItemValue { description: qsTr("Bus voltage") item.bind: bind("/BussVoltage") show: item.valid } MbSubMenu { item: numberOfWarnings description: qsTr("Warnings") subpage: Component { PageBatteryWarnings { title: qsTr("Warnings") bindPrefix: root.bindPrefix } } } MbSubMenu { item: numberOfAlarms description: qsTr("Alarms") subpage: Component { PageBatteryAlarms { title: qsTr("Alarms") bindPrefix: root.bindPrefix } } } MbSubMenu { description: qsTr("Diagnostics") subpage: Component { Page48TlDiagnostics { title: qsTr("Diagnostics") bindPrefix: root.bindPrefix } } } MbSubMenu { description: qsTr("Individual batteries") show: root.isAggregatedBattery!==true subpage: Component { PageBatteryContainer { bindPrefix: root.bindPrefix } } } MbSubMenu { description: qsTr("Device") show: root.isAggregatedBattery!==true subpage: Component { PageDeviceInfo { title: qsTr("Device") bindPrefix: root.bindPrefix } } } MbSubMenu { property VBusItem maxChargeCurrent: VBusItem { bind: root.bind("/Info/MaxChargeCurrent") } description: qsTr("Parameters") show: maxChargeCurrent.valid subpage: Component { PageBatteryParameters { title: qsTr("Parameters") //bindPrefix: root.bindPrefix } } } MbOK { id: restartBatteries description: qsTr("Reset batteries?") value: qsTr("Press here") show: userHasWriteAccess && root.isAggregatedBattery!==true && resetBatteries.value==0 onClicked: { resetBatteries.setValue(1) toast.createToast(qsTr("Resetting batteries!"), 5000) } } } }