Index: denali.pro =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- denali.pro (.../denali.pro) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ denali.pro (.../denali.pro) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -119,6 +119,7 @@ sources/model/hd/data/MTreatmentRecirculateData.h \ sources/model/hd/data/MTreatmentBloodPrimeData.h \ sources/model/hd/data/MPrimingData.h \ + sources/model/hd/data/MAlarmVolumeData.h \ \ # ---------- Models - DG - Adjustment sources/model/dg/adjustment/MTreatmentAdjustDGVersionsResponse.h \ sources/model/dg/adjustment/MAdjustDGDateTimeResponse.h \ @@ -166,6 +167,8 @@ sources/view/VDateTime.h \ sources/view/VServiceMode.h \ sources/view/VDeviceInformation.h \ + sources/view/VAlarmVolume.h \ + sources/view/VBrightness.h \ \ # ---------- Views - Alarm sources/view/hd/alarm/VAlarmStatus.h \ \ # ---------- Views - HD - Adjustment @@ -249,7 +252,7 @@ sources/model/hd/alarm/MAlarmTriggered.cpp \ sources/model/hd/alarm/MAlarmCleared.cpp \ sources/model/hd/alarm/MAlarmClearedCondition.cpp \ - \ # ---------- Models - HD - Adjustment - In-Treatment + \ # ---------- Models - HD - Adjustment sources/model/hd/adjustment/MTreatmentAdjustHDVersionsResponse.cpp \ sources/model/hd/adjustment/MAdjustHDDateTimeResponse.cpp \ \ # ---------- Models - HD - Adjustment - In-Treatment @@ -281,6 +284,7 @@ sources/model/hd/data/MTreatmentRecirculateData.cpp \ sources/model/hd/data/MTreatmentBloodPrimeData.cpp \ sources/model/hd/data/MPrimingData.cpp \ + sources/model/hd/data/MAlarmVolumeData.cpp \ \ # ---------- Models - DG - Adjustment sources/model/dg/adjustment/MTreatmentAdjustDGVersionsResponse.cpp \ sources/model/dg/adjustment/MAdjustDGDateTimeResponse.cpp \ @@ -325,6 +329,8 @@ sources/view/VDateTime.cpp \ sources/view/VServiceMode.cpp \ sources/view/VDeviceInformation.cpp \ + sources/view/VAlarmVolume.cpp \ + sources/view/VBrightness.cpp \ \ # ---------- Views - Alarm sources/view/hd/alarm/VAlarmStatus.cpp \ \ # ---------- Views - HD - Adjustment Index: denali.pro.user =================================================================== diff -u -r21e68ccf5594b0ca3e0a8c7986e405260d273899 -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- denali.pro.user (.../denali.pro.user) (revision 21e68ccf5594b0ca3e0a8c7986e405260d273899) +++ denali.pro.user (.../denali.pro.user) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -1,6 +1,6 @@ - + EnvironmentId Index: denali.qrc =================================================================== diff -u -r21e68ccf5594b0ca3e0a8c7986e405260d273899 -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- denali.qrc (.../denali.qrc) (revision 21e68ccf5594b0ca3e0a8c7986e405260d273899) +++ denali.qrc (.../denali.qrc) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -8,6 +8,8 @@ sources/gui/qml/pages/SettingsBluetooth.qml sources/gui/qml/pages/SettingsWifi.qml sources/gui/qml/pages/SettingsDateTimeSet.qml + sources/gui/qml/pages/SettingsBrightness.qml + sources/gui/qml/pages/SettingsAlarmVolume.qml sources/gui/qml/dialogs/PowerOff.qml Index: scripts/brightness_set.sh =================================================================== diff -u --- scripts/brightness_set.sh (revision 0) +++ scripts/brightness_set.sh (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -0,0 +1,10 @@ +#!/bin/sh + +if [ $# -eq 0 ]; then + currentFile=$(basename "$0") + echo "Usage: ./$currentFile ''" + exit 0 +fi + + echo $1 | tee /sys/class/backlight/backlight-mipi/brightness + Index: scripts/setup.sh =================================================================== diff -u -rd1a6830c486a9ee9c388a80b570aa8141a8366c9 -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- scripts/setup.sh (.../setup.sh) (revision d1a6830c486a9ee9c388a80b570aa8141a8366c9) +++ scripts/setup.sh (.../setup.sh) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -47,6 +47,9 @@ echo "Syncing file system updates" sync +echo "Making UI scripts executable" +chmod +x /home/root/*.sh + read -p "ready to reboot? [y,n]" -n 1 -r CONFIRM if [ "$CONFIRM" == "y" ]; then reboot Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -rb5a7852d2637f7969680fbd3d2c821a6a74a8ccd -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision b5a7852d2637f7969680fbd3d2c821a6a74a8ccd) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -510,6 +510,19 @@ } /*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the request to set the alarm volume. + * \param vData - Data model contains the alarm volume + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustAlarmVolumeRequestData &vData) +{ + QVariantList mData; + mData += vData.volume ; + onActionTransmit(GuiActionType::ID_AlarmVolumeSetReq, mData); +} + +/*! * \brief MessageDispatcher::actionTransmit * \details This method is called by slot MessageDispatcher::onActionTransmit * which emits didFrameTransmit on successful interpretation of the requested message Index: sources/canbus/MessageDispatcher.h =================================================================== diff -u -rb5a7852d2637f7969680fbd3d2c821a6a74a8ccd -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision b5a7852d2637f7969680fbd3d2c821a6a74a8ccd) +++ sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -126,6 +126,7 @@ GuiActionType::ID_AlarmUserActionReq , GuiActionType::ID_AlarmSilenceReq , GuiActionType::ID_AlarmClearedConditionReq , + GuiActionType::ID_AlarmVolumeSetReq , }; public slots: Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -257,6 +257,7 @@ // alarms case Gui::GuiActionType::ID_AlarmSilenceReq : INTERPRET_RECEIVED_MESSAGE(AlarmSilenceRequestData ); break; case Gui::GuiActionType::ID_AlarmUserActionReq : INTERPRET_RECEIVED_MESSAGE(AlarmUserActionRequestData ); break; + case Gui::GuiActionType::ID_AlarmVolumeSetReq : INTERPRET_RECEIVED_MESSAGE(AdjustAlarmVolumeRequestData ); break; // coco begin validated: Manually tested. This model class is a placeholder for the message 63(0x3F00) and there is no use case for this now. case Gui::GuiActionType::ID_AlarmClearedConditionReq : INTERPRET_RECEIVED_MESSAGE(AlarmClearedConditionRequestData ); break; // coco end Index: sources/gui/GuiGlobals.cpp =================================================================== diff -u -r21e68ccf5594b0ca3e0a8c7986e405260d273899 -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 21e68ccf5594b0ca3e0a8c7986e405260d273899) +++ sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -79,6 +79,8 @@ #include "VDateTime.h" #include "VServiceMode.h" #include "VDeviceInformation.h" +#include "VAlarmVolume.h" +#include "VBrightness.h" namespace Gui { MainView *_viewer = nullptr; Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -92,6 +92,7 @@ ID_Recirculate = 0x5A00, // 90 ID_BloodPrime = 0x5900, // 89 ID_HDAccelerometerData = 0x3300, // 51 + ID_AlarmVolumeData = 0x7D00, // 125 // Alarm Messages ID_AlarmStatus = 0x0200, @@ -101,6 +102,7 @@ ID_AlarmClearedConditionRsp = 0x3F00, // 63 // the same code is used for every unit to send and receive over the CANBus ID_AlarmSilenceReq = 0x3200, // 50 ID_AlarmUserActionReq = 0x4000, // 64 // there is no response since it is kind of the response to the ID_AlarmStatus from UI to HD + ID_AlarmVolumeSetReq = 0x8A00, // 138 // Pre-Treatment Parameters ID_TreatmentCreateReq = 0x3500, // 53 Index: sources/gui/qml/components/pretreatment/SliderCreateTreatment.qml =================================================================== diff -u -rdf74454a7a75eb63ac577739c1fd0f179e479f44 -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/gui/qml/components/pretreatment/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision df74454a7a75eb63ac577739c1fd0f179e479f44) +++ sources/gui/qml/components/pretreatment/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -29,6 +29,7 @@ property alias text: _text.text property var units: "" + property alias slider: _slider property alias min: _slider.minimum property alias max: _slider.maximum property alias value: _slider.value @@ -76,7 +77,6 @@ text: "__ " + _root.units font.pixelSize: Fonts.fontPixelFluidUnit color: Colors.textDisableButton; - } Slider { id : _slider Index: sources/gui/qml/main.qml =================================================================== diff -u -r21e68ccf5594b0ca3e0a8c7986e405260d273899 -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/gui/qml/main.qml (.../main.qml) (revision 21e68ccf5594b0ca3e0a8c7986e405260d273899) +++ sources/gui/qml/main.qml (.../main.qml) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -74,6 +74,8 @@ import VDateTime 0.1; import VServiceMode 0.1; import VDeviceInformation 0.1; +import VAlarmVolume 0.1; +import VBrightness 0.1; // Qml imports import "qrc:/globals" @@ -144,6 +146,8 @@ VDateTime { id: vDateTime } VServiceMode { id: vServiceMode } VDeviceInformation { id: vDeviceInformation } + VAlarmVolume { id: vAlarmVolume } + VBrightness { id: vBrightness } VHDTreatmentStates { id: vHDTreatmentStates } Index: sources/gui/qml/pages/SettingsAlarmVolume.qml =================================================================== diff -u --- sources/gui/qml/pages/SettingsAlarmVolume.qml (revision 0) +++ sources/gui/qml/pages/SettingsAlarmVolume.qml (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -0,0 +1,127 @@ +// Qt +import QtQuick 2.12 + +// Project +import Gui.Actions 0.1; + +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/components/pretreatment" + +/*! + * \brief SettingsAlarmVolum is used to adjust the + * alarm volume for the device + */ +ScreenItem { id: _root + + signal clickedBack() + + BackButton { id : _backButton + anchors { + top: _root.top + left: _root.left + right: undefined + } + + onClicked: { + _root.clickedBack() + } + } + + ConfirmButton { id: _confirmButton + anchors { + top: _root.top + right: _root.right + left: undefined + } + + onClicked: { + vAlarmVolume.doSetAlarmVolume(_volume.value) + _root.clickedBack() + } + } + + TitleText { id: _title + anchors { + top: parent.top + left: parent.left + topMargin: Variables.settingsDateTimeSetMargin + horizontalCenter: parent.horizontalCenter + } + text: qsTr("Alarm Volume") + } + + Rectangle { id: _contentRect + color: Colors.transparent + anchors { + top: _title.bottom + left: parent.left + leftMargin: Variables.settingsDateTimeSetMargin + right: parent.right + rightMargin: Variables.settingsDateTimeSetMargin + bottom: parent.bottom + bottomMargin: Variables.mainMenuHeight + Variables.notificationHeight + Variables.settingsNotificationMargin + } + + + SliderCreateTreatment { id: _volume + anchors { + horizontalCenter: parent.horizontalCenter + top: parent.top + topMargin: 2*Variables.settingsMargin + } + value: vAlarmVolume.alarmVolume + min: vAlarmVolume.alarmVolumeMinimum + max: vAlarmVolume.alarmVolumeMaximum + step: 1 + + selectedValue.visible: false + slider.minText.visible: false + slider.maxText.visible: false + + onReleased: { + vAlarmVolume.doSetAlarmVolume(_volume.value) + } + } + + Text { + text: qsTr("Low") + color: Colors.textProgressBar + font.pixelSize : Fonts.fontPixelSliderMarker + font.bold : false + anchors { + top: _volume.bottom + topMargin: 10 + left: _volume.left + } + } + + Text { + text: qsTr("High") + color: Colors.textProgressBar + font.pixelSize : Fonts.fontPixelSliderMarker + font.bold : false + anchors { + top: _volume.bottom + topMargin: 10 + right: _volume.right + } + } + + + NotificationBarSmall { id: _notification + imageAutoSize: true + height : 25 + color: "transparent" + imageSource : "" + text : vAlarmVolume.status + textColor: Colors.textMain + textfontSize: Fonts.fontPixelTextRectExtra + anchors { + top: _volume.bottom + bottomMargin: Variables.settingsMargin + } + } + } +} Index: sources/gui/qml/pages/SettingsBrightness.qml =================================================================== diff -u --- sources/gui/qml/pages/SettingsBrightness.qml (revision 0) +++ sources/gui/qml/pages/SettingsBrightness.qml (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -0,0 +1,125 @@ +// Qt +import QtQuick 2.12 + +// Project +import Gui.Actions 0.1; + +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/components/pretreatment" + +/*! + * \brief SettingsBrightness is used to adjust the + * brightness on the device + */ +ScreenItem { id: _root + + signal clickedBack() + + BackButton { id : _backButton + anchors { + top: _root.top + left: _root.left + right: undefined + } + + onClicked: { + _root.clickedBack() + } + } + + ConfirmButton { id: _confirmButton + anchors { + top: _root.top + right: _root.right + left: undefined + } + + onClicked: { + vBrightness.doSaveBrightness() + _root.clickedBack() + } + } + + TitleText { id: _title + anchors { + top: parent.top + left: parent.left + topMargin: Variables.settingsDateTimeSetMargin + horizontalCenter: parent.horizontalCenter + } + text: qsTr("Display Brightness") + } + + Rectangle { id: _contentRect + color: Colors.transparent + anchors { + top: _title.bottom + left: parent.left + leftMargin: Variables.settingsDateTimeSetMargin + right: parent.right + rightMargin: Variables.settingsDateTimeSetMargin + bottom: parent.bottom + bottomMargin: Variables.mainMenuHeight + Variables.notificationHeight + Variables.settingsNotificationMargin + } + + SliderCreateTreatment { id: _brightness + anchors { + horizontalCenter: parent.horizontalCenter + top: parent.top + topMargin: 2*Variables.settingsMargin + } + value: vBrightness.brightness + min: vBrightness.brightnessMinimum + max: vBrightness.brightnessMaximum + step: 1 + + selectedValue.visible: false + slider.minText.visible: false + slider.maxText.visible: false + + onReleased: { + vBrightness.doSetBrightness(value) + } + } + + Text { + text: qsTr("Low") + color: Colors.textProgressBar + font.pixelSize : Fonts.fontPixelSliderMarker + font.bold : false + anchors { + top: _brightness.bottom + topMargin: 10 + left: _brightness.left + } + } + + Text { + text: qsTr("High") + color: Colors.textProgressBar + font.pixelSize : Fonts.fontPixelSliderMarker + font.bold : false + anchors { + top: _brightness.bottom + topMargin: 10 + right: _brightness.right + } + } + + NotificationBarSmall { id: _notification + imageAutoSize: true + height : 25 + color: "transparent" + imageSource : "" + text : vBrightness.status + textColor: Colors.textMain + textfontSize: Fonts.fontPixelTextRectExtra + anchors { + top: _brightness.bottom + bottomMargin: Variables.settingsMargin + } + } + } +} Index: sources/gui/qml/pages/SettingsHome.qml =================================================================== diff -u -r50199c98f47d614c1e3132963f68d3a81692e9e1 -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/gui/qml/pages/SettingsHome.qml (.../SettingsHome.qml) (revision 50199c98f47d614c1e3132963f68d3a81692e9e1) +++ sources/gui/qml/pages/SettingsHome.qml (.../SettingsHome.qml) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -135,6 +135,16 @@ onClickedBack: _settingsStack.pop() } + SettingsAlarmVolume { + id: _alarmVolume + onClickedBack: _settingsStack.pop() + } + + SettingsBrightness { + id: _brightness + onClickedBack: _settingsStack.pop() + } + Column { anchors.centerIn: parent SettingsItem { id: _item_ @@ -168,9 +178,24 @@ push(_dateTimeSet) } } + SettingsItem { id: _itemAlarmVolume + title : qsTr("Alarm Volume") + onClicked: { + push(_alarmVolume) + } +// visible: vServiceMode.isServiceMode + } + SettingsItem { id: _itemBrightness + title : qsTr("Brightness") + onClicked: { + vBrightness.doGetBrightness() + push(_brightness) + } +// visible: vServiceMode.isServiceMode + } } - TouchRect { id: _scan + TouchRect { id: _shutdown anchors { bottom: _root.bottom bottomMargin: Variables.settingsMargin Index: sources/model/MModel.h =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/model/MModel.h (.../MModel.h) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ sources/model/MModel.h (.../MModel.h) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -74,6 +74,7 @@ #include "MAdjustDGDateTimeResponse.h" #include "MHDSerialNumberResponse.h" #include "MDGSerialNumberResponse.h" +#include "MAlarmVolumeData.h" /*! * \page MessageFlow Message interpretation Flow @@ -214,6 +215,7 @@ REGISTER_METATYPE( AlarmStatusData ) \ REGISTER_METATYPE( AlarmTriggeredData ) \ REGISTER_METATYPE( AlarmClearedData ) \ + REGISTER_METATYPE( AlarmVolumeData ) \ /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. REGISTER_METATYPE( AlarmClearedConditionData ) \ coco end */ \ @@ -257,6 +259,7 @@ REGISTER_METATYPE( AdjustVersionsRequestData ) \ REGISTER_METATYPE( AdjustHDDateTimeRequestData ) \ REGISTER_METATYPE( AdjustDGDateTimeRequestData ) \ + REGISTER_METATYPE( AdjustAlarmVolumeRequestData ) \ /* Response */ \ REGISTER_METATYPE( GuiAlertRequestData ) \ REGISTER_METATYPE( TreatmentStartResponseData ) \ @@ -280,7 +283,7 @@ REGISTER_METATYPE( AdjustHDDateTimeResponseData ) \ REGISTER_METATYPE( AdjustDGDateTimeResponseData ) \ REGISTER_METATYPE( HDSerialNumberResponseData ) \ - REGISTER_METATYPE( DGSerialNumberResponseData ) + REGISTER_METATYPE( DGSerialNumberResponseData ) \ //===============================================================================// /*! @@ -317,6 +320,7 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmStatusData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmTriggeredData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmClearedData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmVolumeData ) \ /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmClearedConditionData ) \ coco end */ \ @@ -354,7 +358,7 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustHDDateTimeResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDGDateTimeResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDSerialNumberResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGSerialNumberResponseData ) + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGSerialNumberResponseData ) \ // /* Request */ ---------------------------------------------------------// #define ADJUST_TRANSMT_MODEL_BRIDGE_CONNECTIONS(vSOURCE) \ @@ -381,6 +385,7 @@ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmUserActionRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustHDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustDGDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustAlarmVolumeRequestData ) \ /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmClearedConditionRequestData ) \ coco end */ \ @@ -423,6 +428,7 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmStatusData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmTriggeredData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmClearedData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmVolumeData ) \ /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmClearedConditionData ) \ coco end */ \ @@ -482,6 +488,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustVersionsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustHDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDGDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustAlarmVolumeRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AlarmSilenceRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AlarmUserActionRequestData ) \ @@ -509,6 +516,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustVersionsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustHDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDGDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustAlarmVolumeRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AlarmSilenceRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AlarmUserActionRequestData ) \ @@ -536,6 +544,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustVersionsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustHDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDGDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustAlarmVolumeRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AlarmSilenceRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AlarmUserActionRequestData ) \ @@ -567,6 +576,7 @@ ACTION_RECEIVE_SIGNAL( AlarmTriggeredData ) \ ACTION_RECEIVE_SIGNAL( AlarmClearedData ) \ ACTION_RECEIVE_SIGNAL( AlarmClearedConditionData ) \ + ACTION_RECEIVE_SIGNAL( AlarmVolumeData ) \ ACTION_RECEIVE_SIGNAL( DGROPumpData ) \ ACTION_RECEIVE_SIGNAL( DGPressuresData ) \ ACTION_RECEIVE_SIGNAL( DGDrainPumpData ) \ Index: sources/model/hd/adjustment/MTreatmentAdjustRequests.h =================================================================== diff -u -rd1a6830c486a9ee9c388a80b570aa8141a8366c9 -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision d1a6830c486a9ee9c388a80b570aa8141a8366c9) +++ sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -496,6 +496,37 @@ static Can::Can_Id canid () { return Can::eChlid_UI_Sync; } }; +/*! + * \brief The MAdjustVersionsReq class + * \details The DG/HD versions request model + * + * | MSG | CAN ID | Type | Ack | Src | Dest | Description | + * |:------:|:------:|:----:|:---:|:---:|:----:|:---------------------------:| + * | | 0x100 | Req | Y | UI | All | HD Set Alarm Volume Request | + * + * | Payload || + * | || + * | #1:(N/A) | \ref None | + * + */ +class MAdjustAlarmVolumeReq : public MModel { +public: + + quint32 volume = 1; // the requested volume, 1..5 + + // coco begin validated : Has been validated manually. + // This object is used statically for now, kept the logic for later usage. + QString toString() { + return toString({volume}); + } + // coco end + static QString toString(const QVariantList &vParameters) { + return MModel::toString("HDAlarmVolume", vParameters); + } + + static Can::Can_Id canid () { return Can::eChlid_UI_HD; } +}; + //// ---------- Alarms /*! @@ -796,6 +827,7 @@ typedef Model:: MAdjustVersionsReq AdjustVersionsRequestData; typedef Model:: MAdjustHDDateTimeReq AdjustHDDateTimeRequestData; typedef Model:: MAdjustDGDateTimeReq AdjustDGDateTimeRequestData; +typedef Model:: MAdjustAlarmVolumeReq AdjustAlarmVolumeRequestData; // Alarms typedef Model:: MAlarmSilenceReq AlarmSilenceRequestData; typedef Model:: MAlarmClearedConditionReq AlarmClearedConditionRequestData; Index: sources/model/hd/data/MAlarmVolumeData.cpp =================================================================== diff -u --- sources/model/hd/data/MAlarmVolumeData.cpp (revision 0) +++ sources/model/hd/data/MAlarmVolumeData.cpp (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -0,0 +1,39 @@ +#include "MAlarmVolumeData.h" + +using namespace Model; + +QVariantList MAlarmVolumeData::parameters() const { + return { + _data.mAlarmVolume.value, + _data.mAlarmAudioHighCurrent.value, + _data.mAlarmAudioLowCurrent.value, + _data.mAlarmAudioBackupCurrent.value + }; +} + +bool MAlarmVolumeData::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mAlarmVolume )) + if (GetValue(vByteArray, index, _data.mAlarmAudioHighCurrent )) + if (GetValue(vByteArray, index, _data.mAlarmAudioLowCurrent )) + if (GetValue(vByteArray, index, _data.mAlarmAudioBackupCurrent )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +/*! + * \brief MAdjustHDAlarmVolumeResponse::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +AlarmVolumeData MAlarmVolumeData::data() const { + Data data; + data.mAlarmVolume = _data.mAlarmVolume.value; + data.mAlarmAudioHighCurrent = _data.mAlarmAudioHighCurrent.value; + data.mAlarmAudioLowCurrent = _data.mAlarmAudioLowCurrent.value; + data.mAlarmAudioBackupCurrent = _data.mAlarmAudioBackupCurrent.value; + return data; +} Index: sources/model/hd/data/MAlarmVolumeData.h =================================================================== diff -u --- sources/model/hd/data/MAlarmVolumeData.h (revision 0) +++ sources/model/hd/data/MAlarmVolumeData.h (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -0,0 +1,74 @@ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MAdjustHDAlarmVolumeResponse class + * \details The HD Date and Time adjustment response model + * + * | MSG | CAN ID | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:----:|:---:|:---:|:----:|:------------------------------:| + * |0x7D00| 0x040 | 1Hz | Y | HD | All | HD Alarm Volume Information | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mAlarmVolume | + * | #2:(U32) | \ref Data::mAlarmAudioHighCurrent | + * | #3:(U32) | \ref Data::mAlarmAudioLowCurrent | + * | #4:(U32) | \ref Data::mAlarmAudioBackupCurrent | + * + * \sa Data + * + *

Logging info

+ * | || + * | || + * | typeText | Event | + * | unitText | HD | + * | infoText | AdjustHDAlarmVolume| + * + */ +class MAlarmVolumeData : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mAlarmVolume; + Types::F32 mAlarmAudioHighCurrent; + Types::F32 mAlarmAudioLowCurrent; + Types::F32 mAlarmAudioBackupCurrent; + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eEvent ; } + Unit_Enum unitText () const override { return Unit_Enum::eHD ; } + QString infoText () const override { return QString("AdjustHDAlarmVolume") ; } + + struct Data { + quint32 mAlarmVolume; + float mAlarmAudioHighCurrent; + float mAlarmAudioLowCurrent; + float mAlarmAudioBackupCurrent; + }; + + MAlarmVolumeData () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MAlarmVolumeData::Data AlarmVolumeData; Index: sources/storage/StorageGlobals.cpp =================================================================== diff -u -r96b249bba7de97afe17cfbdaf02250dbded38f4b -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/storage/StorageGlobals.cpp (.../StorageGlobals.cpp) (revision 96b249bba7de97afe17cfbdaf02250dbded38f4b) +++ sources/storage/StorageGlobals.cpp (.../StorageGlobals.cpp) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -89,5 +89,21 @@ const char *WifiSettings_UseDHCP = "wifi/useDHCP"; // Date and Time - const char *Date_Time_Set = "date_time_set.sh"; +#ifdef BUILD_FOR_DESKTOP + const char *Date_Time_Set = "/home/denali/Projects/application/scripts/date_time_set.sh"; +#elif BUILD_FOR_TARGET + const char *Date_Time_Set = "/home/root/date_time_set.sh"; +#endif + + // Brightness +#ifdef BUILD_FOR_DESKTOP + QSettings BrightnessSettings("/home/denali/brightness.ini"); + const char *Brightness_Set = "/home/denali/Projects/application/scripts/brightness_set.sh"; +#elif BUILD_FOR_TARGET + QSettings BrightnessSettings("/home/root/settings/brightness.ini", QSettings::IniFormat); + const char *Brightness_Set = "/home/root/brightness_set.sh"; +#endif + + const char *Brightness_Level = "brightness/level"; + } Index: sources/storage/StorageGlobals.h =================================================================== diff -u -r96b249bba7de97afe17cfbdaf02250dbded38f4b -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/storage/StorageGlobals.h (.../StorageGlobals.h) (revision 96b249bba7de97afe17cfbdaf02250dbded38f4b) +++ sources/storage/StorageGlobals.h (.../StorageGlobals.h) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -73,4 +73,12 @@ // Date and Time extern const char *Date_Time_Set; + + // Brightness + extern const char *Brightness_Set; + + // Brightness - Settings + extern QSettings(BrightnessSettings); + extern const char *Brightness_Level; + } Index: sources/view/VAlarmVolume.cpp =================================================================== diff -u --- sources/view/VAlarmVolume.cpp (revision 0) +++ sources/view/VAlarmVolume.cpp (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -0,0 +1,50 @@ +#include "VAlarmVolume.h" + +// Qt +#include +// Project +#include "Logger.h" + +using namespace View; +using namespace Gui; +using namespace Storage; + +VIEW_DEF_CLASS(VAlarmVolume) + +/*! + * \brief VDeviceInformation::initConnections + * Makes the necessary connections. Called inside VIEW_DEF_CLASS + */ +void VAlarmVolume::initConnections() +{ + // requests + ADJUST_VIEW_CONNECTION(AdjustAlarmVolumeRequestData) + + // responses + ACTION_VIEW_CONNECTION(AlarmVolumeData); +} + +/*! + * \brief VAlarmVolume::doRequestChangeAlarmVolume + * Sends a request to change the alarm volume + * \param vVolume + */ +void VAlarmVolume::doSetAlarmVolume(const quint32 &vVolume) +{ + if (vVolume >= alarmVolumeMinimum() && vVolume <= alarmVolumeMaximum()) + { + AdjustAlarmVolumeRequestData data; + data.volume = vVolume; + emit didAdjustment(data); + } +} + +/*! + * \brief VAlarmVolume::onActionReceive + * When we receive a broadcast of the alarm volume + * \param vData - (AlarmVolumeData) the alarm volume information + */ +void VAlarmVolume::onActionReceive(const AlarmVolumeData &vData) +{ + alarmVolume(vData.mAlarmVolume); +} Index: sources/view/VAlarmVolume.h =================================================================== diff -u --- sources/view/VAlarmVolume.h (revision 0) +++ sources/view/VAlarmVolume.h (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -0,0 +1,47 @@ + +#pragma once + +// Qt +#include + +// Project +#include "VView.h" +#include "main.h" +#include "GuiController.h" +#include "MAlarmVolumeData.h" + +// forward declarations +class tst_views; + +namespace View { + +/*! + * \brief The VAlarmVolume class + * \details View for handling the alarm volume + * + */ +class VAlarmVolume : public QObject +{ + Q_OBJECT + + // friends + friend class ::tst_views; + +VIEW_DEC_CLASS(VAlarmVolume) +VIEW_DEC_SLOT(AlarmVolumeData) + + +protected: + PROPERTY(QString, status, "") + PROPERTY(quint32, alarmVolume, 5) + PROPERTY(quint32, alarmVolumeMinimum, 1) + PROPERTY(quint32, alarmVolumeMaximum, 5) + +public slots: + void doSetAlarmVolume(const quint32 &vVolume); + +signals: + void didAdjustment(const AdjustAlarmVolumeRequestData &vData); + +}; +} Index: sources/view/VBrightness.cpp =================================================================== diff -u --- sources/view/VBrightness.cpp (revision 0) +++ sources/view/VBrightness.cpp (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -0,0 +1,96 @@ +#include "VBrightness.h" + +// Qt +#include +// Project +#include "Logger.h" + +using namespace View; +using namespace Gui; +using namespace Storage; + +VBrightness::VBrightness(QObject *parent) : QObject(parent) { + initConnections(); + init(); +} + +/*! + * \brief VBrightness::init + * Applies the user specified brightness level on start + * Defaults to the maximum brightness level if the level is not set + */ +void VBrightness::init() +{ + doSetBrightness(getBrightness()); +} + +/*! + * \brief VDeviceInformation::initConnections + * Makes the necessary connections. Called inside VIEW_DEF_CLASS + */ +void VBrightness::initConnections() +{ + connect(&_processSetBrightness, SIGNAL(finished(int)), + this, SLOT(onProcessSetBrightnessFinished(int))); +} + +/*! + * \brief VBrightness::doSetBrightness + * Called when the user tries to set the current brightness + * \param vBrightness (quint32) the brightness level + */ +void VBrightness::doSetBrightness(const quint32 &vBrightness) +{ + if (_processSetBrightness.state() != QProcess::NotRunning) + return; + + brightness(vBrightness); + + _processSetBrightness.start(Brightness_Set, QStringList() << QString("%0").arg(vBrightness)); +} + +/*! + * \brief VBrightness::onProcessSetBrightnessFinished + * Called when the process to set the brightness has finished + * \param vExitCode (int) the exit code + */ +void VBrightness::onProcessSetBrightnessFinished(const int &vExitCode) +{ + if (vExitCode != 0) { + status(tr("Failed to set brightness")); + } +} + +/*! + * \brief VBrightness::doGetBrightness + * Gets the current brightness level + */ +void VBrightness::doGetBrightness() +{ + brightness(getBrightness()); +} + +/*! + * \brief VBrightness::getBrightness + * Gets the current brightness level from settings + * \return (quint32) the current brightness level + */ +quint32 VBrightness::getBrightness() const +{ + bool ok = false; + QVariant currentLevel = BrightnessSettings.value(Brightness_Level, brightnessMaximum()); + quint32 level = currentLevel.toInt(&ok); + if (ok) + return level; + return brightnessMaximum(); +} + +/*! + * \brief VBrightness::doSaveBrightness + * Saves the brightness level to the settings file + */ +void VBrightness::doSaveBrightness() +{ + // update settings + BrightnessSettings.setValue(Brightness_Level, brightness()); +} Index: sources/view/VBrightness.h =================================================================== diff -u --- sources/view/VBrightness.h (revision 0) +++ sources/view/VBrightness.h (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -0,0 +1,56 @@ + +#pragma once + +// Qt +#include +#include + +// Project +#include "VView.h" +#include "main.h" +#include "GuiController.h" + +// forward declarations +class tst_views; + +namespace View { + +/*! + * \brief The VAlarmVolume class + * \details View for handling the alarm volume + * + */ +class VBrightness : public QObject +{ + Q_OBJECT + + // friends + friend class ::tst_views; + +VIEW_DEC_CLASS(VBrightness) + + QProcess _processSetBrightness; + + +protected: + PROPERTY(QString, status, "") + PROPERTY(quint32, brightness, 10) + PROPERTY(quint32, brightnessMinimum, 1) + PROPERTY(quint32, brightnessMaximum, 10) + +private: + void init(); + quint32 getBrightness() const; + +private slots: + void onProcessSetBrightnessFinished(const int &vExitCode); + +public slots: + void doSetBrightness(const quint32 &vBrightness); + void doGetBrightness(); + void doSaveBrightness(); + +signals: + +}; +} Index: sources/view/VView.h =================================================================== diff -u -r21e68ccf5594b0ca3e0a8c7986e405260d273899 -rbd560752aaa76183f168f0af6ad97b75b6b57c79 --- sources/view/VView.h (.../VView.h) (revision 21e68ccf5594b0ca3e0a8c7986e405260d273899) +++ sources/view/VView.h (.../VView.h) (revision bd560752aaa76183f168f0af6ad97b75b6b57c79) @@ -154,6 +154,8 @@ REGISTER_TYPE( VNetworkModel ) \ REGISTER_TYPE( VDateTime ) \ REGISTER_TYPE( VServiceMode ) \ - REGISTER_TYPE( VDeviceInformation ) + REGISTER_TYPE( VDeviceInformation ) \ + REGISTER_TYPE( VAlarmVolume ) \ + REGISTER_TYPE( VBrightness ) //--------------------------------------------------------------------------------//