Index: denali.pro.user =================================================================== diff -u -rdd6c876521e397ff990f81e7363b4f007fe3e2d9 -r6c5b5292ae3b3ebf979175dcb1256c88b1baf90c --- denali.pro.user (.../denali.pro.user) (revision dd6c876521e397ff990f81e7363b4f007fe3e2d9) +++ denali.pro.user (.../denali.pro.user) (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -1,6 +1,6 @@ - + EnvironmentId Index: denali.qrc =================================================================== diff -u -r8a5dbf556a66524fbe4b60ac1573182a0bd27617 -r6c5b5292ae3b3ebf979175dcb1256c88b1baf90c --- denali.qrc (.../denali.qrc) (revision 8a5dbf556a66524fbe4b60ac1573182a0bd27617) +++ denali.qrc (.../denali.qrc) (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -12,6 +12,7 @@ sources/gui/qml/pages/settings/SettingsHome.qml sources/gui/qml/pages/settings/SettingsDateTime.qml sources/gui/qml/pages/settings/SettingsWiFi.qml + sources/gui/qml/pages/settings/SettingsDG.qml sources/gui/qml/dialogs/PowerOff.qml @@ -113,6 +114,8 @@ sources/gui/qml/components/ScrollBar.qml sources/gui/qml/compounds/Fader.qml sources/gui/qml/components/FooterStatic.qml + sources/gui/qml/components/TimeEntry.qml + sources/gui/qml/components/Label.qml sources/gui/qml/compounds/PressureRangeSlider.qml Fisheye: Tag 6816b783f50e08267aa016d64350bc020080d901 refers to a dead (removed) revision in file `resources/settings/Instructions/Instructions.conf'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c refers to a dead (removed) revision in file `resources/settings/Instructions/instructions.conf'. Fisheye: No comparison available. Pass `N' to diff? Index: resources/settings/readme.md =================================================================== diff -u -r2216ac6ac7f77437a7c29ac8b4043be01bc4609e -r6c5b5292ae3b3ebf979175dcb1256c88b1baf90c --- resources/settings/readme.md (.../readme.md) (revision 2216ac6ac7f77437a7c29ac8b4043be01bc4609e) +++ resources/settings/readme.md (.../readme.md) (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -3,7 +3,7 @@ When running on the VM, it has to be in the application project under the resources. To meet the instruction requirement, application needs to have a configuration file named: - - instructions.conf + - Instructions.conf which is the file that has the mapping of the image:description set for each instruction-based screen. Each instruction-based screen in the map file shall have a section with the format of: Index: scripts/copy.sh =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6c5b5292ae3b3ebf979175dcb1256c88b1baf90c --- scripts/copy.sh (.../copy.sh) (revision 7077e38c74db9cccb5496ffefcf8936c0916de76) +++ scripts/copy.sh (.../copy.sh) (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -169,7 +169,7 @@ done } -# copy the wifi settings scripts +# copy the settings scripts function setupSettingsScripts() { ssh $SSHUSER@$IPADDR "mkdir $SCRIPTSPATH;" copyDateTimeScripts Index: sources/gui/qml/components/Label.qml =================================================================== diff -u --- sources/gui/qml/components/Label.qml (revision 0) +++ sources/gui/qml/components/Label.qml (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -0,0 +1,33 @@ +/*! + * + * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file Label.qml + * \author (last) Behrouz NematiPour + * \date (last) 20-May-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-May-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" + +/*! + * \brief The simple standard Text to be used in combination with other components. + */ +Text { id : _root + property int labelWidth : 275 + + width : labelWidth + text : "" + color : Colors.textMain + font.pixelSize : Fonts.fontPixelTextRectExtra +} Index: sources/gui/qml/components/TextEntry.qml =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6c5b5292ae3b3ebf979175dcb1256c88b1baf90c --- sources/gui/qml/components/TextEntry.qml (.../TextEntry.qml) (revision 7077e38c74db9cccb5496ffefcf8936c0916de76) +++ sources/gui/qml/components/TextEntry.qml (.../TextEntry.qml) (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -27,12 +27,15 @@ InputWidth = 100 } - property alias textInput : _input - property alias line : _line - property alias label : _label - property alias validator : _input.validator - property var nextInput : undefined + property alias textInput : _input + property alias line : _line + property alias label : _label + property alias validator : _input.validator + property var nextInput : undefined + property alias text : _input.text + readonly property alias isValid : _input.acceptableInput + signal enterPressed() width : _label.width + _input.width Index: sources/gui/qml/components/TimeEntry.qml =================================================================== diff -u --- sources/gui/qml/components/TimeEntry.qml (revision 0) +++ sources/gui/qml/components/TimeEntry.qml (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -0,0 +1,79 @@ +/*! + * + * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file TimeEntry.qml + * \author (last) Behrouz NematiPour + * \date (last) 20-Mar-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Mar-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +import Gui.Actions 0.1; + +// Qml imports +import "qrc:/globals" +import "qrc:/components" + +/*! + * \brief The Time entry that contains Hour:Minunte + */ +Row { id: _root + property int entryWidth : 100 + + property alias firstInput : _hour + property alias nextInput : _minute.nextInput + property alias labelWidth : _label.width + property string label : qsTr("Time") + property string format : "(HH:MM)" + property alias hour : _hour.text + property alias minute : _minute.text + + readonly property bool isValid : + _hour .isValid && + _minute.isValid + + + Label { id : _label + text : _root.label + " " + _root.format + } + + TextEntry { id : _hour + text : _root.hour + nextInput : _minute + label.visible : false + width : entryWidth + height : parent.height + validator : IntValidator { + bottom : 0 + top : 23 + } + } + + Text { id : _colon + height : parent.height + text : " " + qsTr(":") + " " + color : Colors.textMain + font.pixelSize : Fonts.fontPixelTextRectExtra + } + + TextEntry { id : _minute + text : _root.minute + label.visible : false + width : entryWidth + height : parent.height + validator : IntValidator { + bottom : 0 + top : 59 + } + } +} + Index: sources/gui/qml/pages/settings/SettingsBase.qml =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6c5b5292ae3b3ebf979175dcb1256c88b1baf90c --- sources/gui/qml/pages/settings/SettingsBase.qml (.../SettingsBase.qml) (revision 7077e38c74db9cccb5496ffefcf8936c0916de76) +++ sources/gui/qml/pages/settings/SettingsBase.qml (.../SettingsBase.qml) (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -101,7 +101,7 @@ textColor : Colors.white imageSource : "" text : "" - anchors.bottomMargin: Variables.mainMenuHeight + Variables.minVGap + // anchors.bottomMargin: Variables.mainMenuHeight + Variables.minVGap } onVisibleChanged: { Index: sources/gui/qml/pages/settings/SettingsDG.qml =================================================================== diff -u --- sources/gui/qml/pages/settings/SettingsDG.qml (revision 0) +++ sources/gui/qml/pages/settings/SettingsDG.qml (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -0,0 +1,139 @@ +/*! + * + * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file SettingsDateTimeSet.qml + * \author (last) Peter Lucia + * \date (last) 14-Mar-2021 + * \author (original) Peter Lucia + * \date (original) 14-Mar-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +import Gui.Actions 0.1; + +// Qml imports +import "qrc:/globals" +import "qrc:/components" + +/*! + * \brief SettingsDateTimeSet is used to adjust the + * date and time on the device + */ +SettingsBase { id: _root + QtObject { id: vSettingsDG + property string status: "Initial Status" + function doConfirm(vWaterFlushScheduleTimeHour , + vWaterFlushScheduleTimeMinute , + vWaterFlushScheduleCycle , + vHeatDisinfectionScheduleTimeHour , + vHeatDisinfectionScheduleTimeMinute , + vHeatDisinfectionScheduleCycle ) { + console.debug(vWaterFlushScheduleTimeHour , ":" , + vWaterFlushScheduleTimeMinute , " - ", + vWaterFlushScheduleCycle , " | ", + vHeatDisinfectionScheduleTimeHour , ":" , + vHeatDisinfectionScheduleTimeMinute , " - ", + vHeatDisinfectionScheduleCycle ) + } + } + + property int labelWidth : 200 + property int entryWidth : 100 + + property int titleIndent : 25 + + readonly property bool isValid : + _waterFlushScheduleTime .isValid && + _waterFlushScheduleCycle .isValid && + _heatDisinfectionScheduleTime .isValid && + _heatDisinfectionScheduleCycle .isValid + + confirmVisible : true + confirmEnabled : _root.isValid + firstFocusInput : _waterFlushScheduleTime + notificationText: vSettingsDG.status + onConfirmClicked: { + vSettingsDG.doConfirm( + _waterFlushScheduleTime .hour , + _waterFlushScheduleTime .minute , + _waterFlushScheduleCycle .text , + _heatDisinfectionScheduleTime .hour , + _heatDisinfectionScheduleTime .minute , + _heatDisinfectionScheduleCycle .text ) + } + + Row { id: _container + spacing: 25 + y : Qt.inputMethod.visible && _keyboard.visible ? topMarginContent : ( (_root.height - _container.height) / 2 ) + Behavior on y { NumberAnimation { duration: Variables.keybardAnimationDuration } } + anchors.horizontalCenter: parent.horizontalCenter + + Column { + spacing : 25 + leftPadding : titleIndent + Label { + leftPadding : -titleIndent + text : qsTr("Water Flush") + } + Line { x : -titleIndent; width : 500 } + TimeEntry { id : _waterFlushScheduleTime + hour : "02" // TODO: Settings Manufacturing + minute : "00" // TODO: Settings Manufacturing + labelWidth : _root.labelWidth + nextInput : _waterFlushScheduleCycle + } + TextEntry { id : _waterFlushScheduleCycle + nextInput : _heatDisinfectionScheduleTime.firstInput + text : "1" // TODO: Settings Manufacturing + label.text : qsTr("Cycle (Days)") + label.width : _root.labelWidth + validator : IntValidator { bottom: 0; top : 7 } // TODO: Settings Manufacturing + } + } + + Column { + spacing : 25 + leftPadding : titleIndent + Label { + leftPadding : -titleIndent + text : qsTr("Heat Disinfection") + } + Line { x : -titleIndent; width : 500 } + TimeEntry { id : _heatDisinfectionScheduleTime + hour : "02" // TODO: Settings Manufacturing + minute : "00" // TODO: Settings Manufacturing + labelWidth : _root.labelWidth + nextInput : _heatDisinfectionScheduleCycle + } + TextEntry { id : _heatDisinfectionScheduleCycle + text : "21" // TODO: Settings Manufacturing + label.text : qsTr("Cycle (Days)") + label.width : _root.labelWidth + validator : IntValidator { bottom: 0; top : 60 } // TODO: Settings Manufacturing + } + } + } + + Footer { + childrenWidth: 300 + children: [ + TouchRect { + text.text: qsTr("Water Flush") + }, + TouchRect { + text.text: qsTr("Heat Disinfection") + }, + TouchRect { + text.text: qsTr("Chemical Disinfection") + } + ] + } +} Index: sources/gui/qml/pages/settings/SettingsStack.qml =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6c5b5292ae3b3ebf979175dcb1256c88b1baf90c --- sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision 7077e38c74db9cccb5496ffefcf8936c0916de76) +++ sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -37,37 +37,45 @@ SetDateTime , WiFi , Bluetooth , - EmptySep , + DGSettings , Services } - property var itemsText : [ - qsTr("Set Date And Time"), - qsTr("Wi-Fi" ), - qsTr("Bluetooth" ), - "" , - qsTr("Services" ), - ] - - SettingsDateTime { id: _settingsDateTime + SettingsDateTime { id: _settingsDateTime itemIndex : SettingsStack.SetDateTime } - SettingsWiFi { id: _settingsWiFi + SettingsWiFi { id: _settingsWiFi itemIndex : SettingsStack.WiFi } + SettingsBase { id: _settingsBluetooth + itemIndex : SettingsStack.Bluetooth + } + + SettingsDG { id: _settingsDGSettings + itemIndex : SettingsStack.DGSettings + } + UserConfirmation { id: _servicePassword itemIndex : SettingsStack.Services title : qsTr("Please Enter The Service Password") isPassword: true } + property var itemsText : [ + qsTr("Set Date And Time" ), + qsTr("Wi-Fi" ), + qsTr("Bluetooth" ), + qsTr("Dialysate Generator Settings" ), + qsTr("Services" ), + ] + SettingsHome { id : _settingsHome backVisible : false confirmVisible : false itemsText : _root.itemsText - itemsEnabled : [ 1,1,0,0,1,0,0,0,0 ] + itemsEnabled : [ 1,1,1,1,1,0,0,0,0,0 ] onItemClicked : { switch (vIndex) { case SettingsStack.SetDateTime: @@ -78,14 +86,20 @@ case SettingsStack.WiFi: vNetwork.doInit() push( _settingsWiFi ) - // _settingsWiFi.setFocus() + // _settingsWiFi.setFocus() // No keyboard popup. break + case SettingsStack.Bluetooth: + push( _settingsBluetooth ) + break + case SettingsStack.DGSettings: + push( _settingsDGSettings ) + break case SettingsStack.Services: push(_servicePassword) _servicePassword.setFocus() break default: - console.debug(vIndex) + console.debug("Unknown Index", vIndex) break } } Index: sources/storage/TreatmentLog.cpp =================================================================== diff -u -r6816b783f50e08267aa016d64350bc020080d901 -r6c5b5292ae3b3ebf979175dcb1256c88b1baf90c --- sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) +++ sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision 6c5b5292ae3b3ebf979175dcb1256c88b1baf90c) @@ -291,9 +291,9 @@ ADDALINE(""); QString mDateTime = _values[eTreatmentDateTime]; - mDateTime.replace("/", "" ); // remove date separator - mDateTime.replace(":", "" ); // remove time separator - mDateTime.replace(" ", "_"); // remove spaces + mDateTime.replace("/", "" ); // remove date separator + mDateTime.replace(":", "" ); // remove time separator + mDateTime.replace(" ", "_"); // replace spaces QString mDeviceID = _values[eDeviceID]; QString mFileName = QString("%1_%2.log")