Index: denali.qrc
===================================================================
diff -u -r559dc64d12cf7647ec8c29ccbf4ca90f90e5e3a2 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- denali.qrc (.../denali.qrc) (revision 559dc64d12cf7647ec8c29ccbf4ca90f90e5e3a2)
+++ denali.qrc (.../denali.qrc) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -17,6 +17,10 @@
sources/gui/qml/pages/settings/SettingsBluetoothCuff.qml
sources/gui/qml/pages/settings/SettingsExportLogs.qml
sources/gui/qml/pages/settings/SettingsDeviceRegistration.qml
+ sources/gui/qml/pages/settings/SettingsInformation.qml
+ sources/gui/qml/pages/settings/SettingsROInput.qml
+ sources/gui/qml/pages/settings/SettingsServicePassword.qml
+ sources/gui/qml/pages/settings/SettingsManufacturingSetup.qml
sources/gui/qml/dialogs/PowerOff.qml
Index: main.cpp
===================================================================
diff -u -r6d76149dca70e879f33bf6ed44203d0d06bc523a -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- main.cpp (.../main.cpp) (revision 6d76149dca70e879f33bf6ed44203d0d06bc523a)
+++ main.cpp (.../main.cpp) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -90,8 +90,8 @@
bool gDisableSDCFailLogStop = false ;
bool gDisableCloudSyncFailStop = false ;
-bool gEnableCheckInLog = false ;
-bool gEnableAcknowLog = false ;
+bool gDisableCheckInLog = false ;
+bool gDisableAcknowLog = false ;
bool gConsoleoutLogs = false ;
bool gConsoleoutFrameInterface = false ;
@@ -100,8 +100,11 @@
bool gEnableDryDemo = false ;
QString gActiveCANBus = "can0";
+bool gEnableManufacturing = false ;
+
QString gParserErrorText = "";
+
/*!
* \page CommandLineSwitches Denali Command Line Switches
* \verbatim
@@ -229,17 +232,17 @@
QCoreApplication::translate("main", "disable-cloudsync-fail-stop"));
parser.addOption(optionDisableCloudSyncFailStop);
- // --- -k : enable-Check-in-log (keep-alive)
- QCommandLineOption optionEnableCheckInLog(
- QStringList() << "k" << "enable-check-in-log",
- QCoreApplication::translate("main", "Enables Check-In Log"));
- parser.addOption(optionEnableCheckInLog);
+ // --- -k : disable-Check-in-log (keep-alive)
+ QCommandLineOption optionDisableCheckInLog(
+ QStringList() << "k" << "disable-check-in-log",
+ QCoreApplication::translate("main", "Disables Check-In Log"));
+ parser.addOption(optionDisableCheckInLog);
- // --- -K : enable-acknow-log (Acknowledge)
- QCommandLineOption optionEnableAcknowLog(
- QStringList() << "K" << "enable-acknow-log",
- QCoreApplication::translate("main", "Enables Acknowledgment Log"));
- parser.addOption(optionEnableAcknowLog);
+ // --- -K : disable-acknow-log (Acknowledge)
+ QCommandLineOption optionDisableAcknowLog(
+ QStringList() << "K" << "disable-acknow-log",
+ QCoreApplication::translate("main", "Disables Acknowledgment Log"));
+ parser.addOption(optionDisableAcknowLog);
// --- -D : enable-dry-demo
QCommandLineOption optionEnableDryDemo(
@@ -254,6 +257,12 @@
QCoreApplication::translate("main", "CANBus"));
parser.addOption(optionActiveCANBus);
+ // --- -E : enable-manufacturing
+ QCommandLineOption optionEnableManufacturing(
+ QStringList() << "E" << "enable-manufacturing",
+ QCoreApplication::translate("main", "Enables the manufacturing mode to configure the system for the first time."));
+ parser.addOption(optionEnableManufacturing);
+
// --- parse command lines
if ( ! parser.parse(qApp->arguments()) ) {
gParserErrorText = parser.errorText();
@@ -271,11 +280,13 @@
gDisableSDCFailLogStop = parser.isSet(optionDisableSDCardFailLogStop );
gDisableCloudSyncFailStop = parser.isSet(optionDisableCloudSyncFailStop );
- gEnableCheckInLog = parser.isSet(optionEnableCheckInLog );
- gEnableAcknowLog = parser.isSet(optionEnableAcknowLog );
+ gDisableCheckInLog = parser.isSet(optionDisableCheckInLog );
+ gDisableAcknowLog = parser.isSet(optionDisableAcknowLog );
gEnableDryDemo = parser.isSet(optionEnableDryDemo );
+ gEnableManufacturing = parser.isSet(optionEnableManufacturing );
+
if ( parser.isSet(optionActiveCANBus ) ) {
QString value = parser.value(optionActiveCANBus);
if ( ! value.startsWith("-") && // if a value is not given for the switch then the next switch becomes the value of the previous one
Index: scripts/run.sh
===================================================================
diff -u -r28845c70151c3fb6f1a8e92c82da0232b6ca854a -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- scripts/run.sh (.../run.sh) (revision 28845c70151c3fb6f1a8e92c82da0232b6ca854a)
+++ scripts/run.sh (.../run.sh) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -195,7 +195,7 @@
#launching denali application
DENALI_VERSION="$($HOME/$DENALI_BIN -v)"
if [ -n "$DENALI_VERSION" ]; then
- post_log_pass "$($HOME/$DENALI_BIN -v)" # log UI Software version
+ post_log_pass "$DENALI_VERSION" # log UI Software version
$HOME/$DENALI_BIN -u -C & # -C to disable cloudsync for now sync it blocks the system and no cloudsync has been installed.
else
post_log_fail "Unknown Applicaion Version"
Index: scripts/start.sh
===================================================================
diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- scripts/start.sh (.../start.sh) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263)
+++ scripts/start.sh (.../start.sh) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -217,8 +217,7 @@
}
function wipe_device() {
- sshRun "rm -frd *"
- sshRun "rm -frd .*"
+ sshRun "rm -frd $(ls -A -I '.ssh')"
}
function main() {
Index: sources/canbus/MessageDispatcher.cpp
===================================================================
diff -u -rd949be21f2a9badd0978dddaaf436f6805de28dc -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision d949be21f2a9badd0978dddaaf436f6805de28dc)
+++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -830,7 +830,7 @@
bool mNeedsAcknow = needsAcknow(vActionId);
if (mNeedsAcknow) {
mSequence = -mSequence;
- if ( gEnableAcknowLog ) {
+ if ( ! gDisableAcknowLog ) {
LOG_APPED(tr("UI,Ack Req, Sq:%1, ID:%2").arg(mSequence).arg(Format::toHexString(vActionId)));
}
#ifdef DEBUG_ACKBACK_HD_TO_UI
@@ -904,7 +904,7 @@
bool ok = false;
if ( mActionId == GuiActionType::ID_Acknow ) {
ok = true;
- if ( gEnableAcknowLog ) {
+ if ( ! gDisableAcknowLog ) {
LOG_APPED(tr("%1,Ack Bak, Sq:%2").arg(vSrcText).arg(mSequence));
}
#ifdef DEBUG_ACKBACK_HD_TO_UI
@@ -933,7 +933,7 @@
if (mSequence < 0) {
ok = true;
- if ( gEnableAcknowLog ) {
+ if ( ! gDisableAcknowLog ) {
LOG_APPED(tr("%1,Ack Req, Sq:%2, ID:%3").arg(vSrcText).arg(mSequence).arg(Format::toHexString(mActionId)));
}
#ifdef DEBUG_ACKBACK_HD_TO_UI
@@ -943,7 +943,7 @@
QString dstText;
Can_Id dstID = MessageInterpreter::identifyDestination(vMessage.can_id, &dstText);
actionTransmit(GuiActionType::ID_Acknow, {}, -mSequence, dstID);
- if ( gEnableAcknowLog ) {
+ if ( ! gDisableAcknowLog ) {
LOG_APPED(tr("UI,Ack Bak, Sq:%1, Dst:%2").arg(-mSequence).arg(dstText));
}
#ifdef DEBUG_ACKBACK_HD_TO_UI
Index: sources/canbus/MessageInterpreter.cpp
===================================================================
diff -u -rd949be21f2a9badd0978dddaaf436f6805de28dc -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision d949be21f2a9badd0978dddaaf436f6805de28dc)
+++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -211,7 +211,7 @@
if ( length ) { // this message has a variable length
vPayload = Format::fromVariant(vData.first());
}
- if ( gEnableCheckInLog )
+ if ( ! gDisableCheckInLog )
LOG_APPED_UI(QString("CheckIn"));
break;
Index: sources/gui/GuiView.h
===================================================================
diff -u -ra6586ea871f21a08e7d50552983360fb5e344b3a -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/GuiView.h (.../GuiView.h) (revision a6586ea871f21a08e7d50552983360fb5e344b3a)
+++ sources/gui/GuiView.h (.../GuiView.h) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -78,7 +78,8 @@
PROPERTY(GuiStringIndexMap , exportList , {})
READONLY(GuiUint08IndexMap , exportListPercent , {})
- READONLY(bool , dryDemoMode , gEnableDryDemo )
+ READONLY(bool , dryDemoMode , gEnableDryDemo )
+ READONLY(bool , manufactSetup , gEnableManufacturing )
public:
explicit GuiView(QObject *parent = nullptr);
Index: sources/gui/qml/components/MainMenu.qml
===================================================================
diff -u -ra1386c22cd8c011a3fc1dc8dac2136cbee7890c2 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/components/MainMenu.qml (.../MainMenu.qml) (revision a1386c22cd8c011a3fc1dc8dac2136cbee7890c2)
+++ sources/gui/qml/components/MainMenu.qml (.../MainMenu.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -39,6 +39,7 @@
property bool hasLogo : false
property int currentIndex : 0
property string currentTitle : titles[currentIndex]
+ property bool disable : false
/*!
* \brief Emits when a menu item pressed
@@ -167,10 +168,11 @@
// hidden animation to hide the menu nicely.
Behavior on y { PropertyAnimation { /*duration: 500; easing.type: Easing.OutBounce*/ } }
onHiddenChanged: {
+ let isHidden = hidden || disable
if ( position === MainMenu.Position.Top ) {
- y = hidden ? - Variables.mainMenuHeight : 0
+ y = isHidden ? - Variables.mainMenuHeight : 0
} else {
- y = Variables.applicationHeight - (hidden ? 0 : Variables.mainMenuHeight)
+ y = Variables.applicationHeight - (isHidden ? 0 : Variables.mainMenuHeight)
}
}
}
Index: sources/gui/qml/main.qml
===================================================================
diff -u -re6751c7048908beab6a5572041bef62feaa4662f -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/main.qml (.../main.qml) (revision e6751c7048908beab6a5572041bef62feaa4662f)
+++ sources/gui/qml/main.qml (.../main.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -257,16 +257,18 @@
function isManager () { _mainMenu.itemPressed(1) }
function isSettings () { _mainMenu.itemPressed(2) }
- hidden: true // it should be hidden by default since the landing screen changed to init and it does not have the main menu untill the POST passes.
- titles : [ qsTr("Treatment") , qsTr("Manager") , qsTr("Settings") ]
- visibleItems : [ true , false , true ]
- Component.onCompleted: {
+ disable : _GuiView.manufactSetup
+ hidden : true // it should be hidden by default since the landing screen changed to init and it does not have the main menu untill the POST passes.
+ titles : [ qsTr("Treatment") , qsTr("Manager") , qsTr("Settings") ]
+ visibleItems : [ true , false , true ]
+ Component.onCompleted : {
_settingsStack.visible = false
_managerStack .visible = false
_mainStack .visible = true
}
onItemPressed: {
+ if ( disable ) return
_mainStack .visible = vIndex == 0
_managerStack .visible = vIndex == 1
_settingsStack.visible = vIndex == 2
Index: sources/gui/qml/pages/MainStack.qml
===================================================================
diff -u -r828e0b187e2fa3f75d769938bede41ef34683493 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision 828e0b187e2fa3f75d769938bede41ef34683493)
+++ sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -38,6 +38,8 @@
// DEBUG: this property can mostly be used for debugging to get pass the initial screen
property var initialItem: _postModeScreen
+ property var _startupScreen: _GuiView.manufactSetup ? _settingsStack : _mainHome
+
stackView.initialItem : _root.initialItem
// Standby / Disinfection
@@ -56,12 +58,6 @@
// Post Treatment
PostTreatmentStack { id: _postTreatmentStack }
- ScreenItem { id: _faultModeScreen
- // we recently decided to not change the screen on fault and stay on current(whatever are we on currently) screen.
- PlaceHolderText { screenName: qsTr("FAULT MODE") }
- onVisibleChanged: if (visible) _mainMenu.hidden = true
- }
-
ScreenItem { id: _serviceModeScreen
PlaceHolderText { screenName: qsTr("SERVICE MODE") }
onVisibleChanged: if (visible) _mainMenu.hidden = true
@@ -134,7 +130,7 @@
// "vHDOperationMode.fault" , vHDOperationMode .fault ,
// "vHDOperationMode.opMode" , vHDOperationMode .opMode )
if ( vSettings.noCANBus ) {
- page( _mainHome ,
+ page( _startupScreen ,
vHDOperationMode.fault || // in fault mode
vHDOperationMode.init || // in initial post mode
vHDOperationMode.opMode === 0 // has not even been initialized , which most probably is the case.
@@ -148,13 +144,13 @@
function onIsManagerChanged ( vValue ) { if( vValue ) _mainMenu.isManager () }
function onIsSettingsChanged ( vValue ) { if( vValue ) _mainMenu.isSettings () }
- function onFaultChanged ( vValue ) { page( _mainHome , vValue )}
- function onServiceChanged ( vValue ) { page( _serviceModeScreen , vValue )}
+ function onFaultChanged ( vValue ) { page( _startupScreen , vValue )}
+ function onServiceChanged ( vValue ) { }
function onInitChanged ( vValue ) { page( _postModeScreen , vValue && ! vSettings.noCANBus )
if( vValue ) vHDPOSTData.reset() // better to reset on vinit = true because the rest makes the screen animation to run
}
- function onHomeChanged ( vValue ) { page( _mainHome , vValue )}
+ function onHomeChanged ( vValue ) { page( _startupScreen , vValue )}
function onStandbyChanged ( vValue ) { /* It depends on the subModes of the standBy. Handled by onHome. */ }
function onStandbyStartChanged ( vValue ) { /* It depends on the subModes of the standBy. Handled by onHome. */ }
function onStandbyWaitTreatmentChanged ( vValue ) { /* It depends on the subModes of the standBy. Handled by onHome. */ }
Index: sources/gui/qml/pages/settings/SettingsBluetoothCuff.qml
===================================================================
diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/settings/SettingsBluetoothCuff.qml (.../SettingsBluetoothCuff.qml) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263)
+++ sources/gui/qml/pages/settings/SettingsBluetoothCuff.qml (.../SettingsBluetoothCuff.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -27,9 +27,10 @@
* \brief SettingsBluetoothCuff is used to scan for Omron Bluetooth Cuff
* devices and to let user to connect to it to be able to read the Vital measurements.
*/
-SettingsBase { id: _root
- itemIndex : SettingsStack.Bluetooth
+SettingsBase { id: _root
+ itemIndex : SettingsStack.Bluetooth
confirmVisible : false
+
Image { id: _image
width : 640
height : 480
Index: sources/gui/qml/pages/settings/SettingsDG.qml
===================================================================
diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/settings/SettingsDG.qml (.../SettingsDG.qml) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263)
+++ sources/gui/qml/pages/settings/SettingsDG.qml (.../SettingsDG.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -33,7 +33,9 @@
* - Heat Disinfection \n
* on daily cycle at certain time of the day
*/
-SettingsBase { id: _root
+SettingsBase { id: _root
+ itemIndex : SettingsStack.DGSettings
+
readonly property bool enableScheduling: false // TODO : phase 1 doesn't have this feature (disinfection schedule)
QtObject { id: _settingsDG
Index: sources/gui/qml/pages/settings/SettingsDateTime.qml
===================================================================
diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/settings/SettingsDateTime.qml (.../SettingsDateTime.qml) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263)
+++ sources/gui/qml/pages/settings/SettingsDateTime.qml (.../SettingsDateTime.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -27,7 +27,8 @@
* \brief SettingsDateTimeSet is used to adjust the
* date and time on the device
*/
-SettingsBase { id: _root
+SettingsBase { id: _root
+ itemIndex : SettingsStack.SetDateTime
labelWidth : 275
entryWidth : 100
Index: sources/gui/qml/pages/settings/SettingsDeviceRegistration.qml
===================================================================
diff -u -r6d76149dca70e879f33bf6ed44203d0d06bc523a -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/settings/SettingsDeviceRegistration.qml (.../SettingsDeviceRegistration.qml) (revision 6d76149dca70e879f33bf6ed44203d0d06bc523a)
+++ sources/gui/qml/pages/settings/SettingsDeviceRegistration.qml (.../SettingsDeviceRegistration.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -29,10 +29,10 @@
* \brief SettingsWiFi
* The settings screen to setup the WiFi connection
*/
-SettingsBase { id: _root
+SettingsBase { id: _root
itemIndex : SettingsStack.DeviceRegistration
- confirmVisible : false
+ confirmVisible : false
labelWidth : 150
entryWidth : 350
Index: sources/gui/qml/pages/settings/SettingsExportLogs.qml
===================================================================
diff -u -r265600079f9f3b741cd3e67c229f39ec66571419 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/settings/SettingsExportLogs.qml (.../SettingsExportLogs.qml) (revision 265600079f9f3b741cd3e67c229f39ec66571419)
+++ sources/gui/qml/pages/settings/SettingsExportLogs.qml (.../SettingsExportLogs.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -37,7 +37,8 @@
/*!
* \brief SettingsExportLogs is used to Export logs, and display the SD-Card and USB device informaiton and list of files.
*/
-SettingsBase { id: _root
+SettingsBase { id: _root
+ itemIndex : SettingsStack.ExportLogs
////////////////////////////////////////////////////////////////////////////////
// FIXME: The model being used here is the QML FileListModel. //
@@ -79,7 +80,6 @@
readonly property var typeFilterClr : []
- itemIndex : SettingsStack.ExportLogs
confirmVisible : false
function refreshModels() {
Index: sources/gui/qml/pages/settings/SettingsHome.qml
===================================================================
diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/settings/SettingsHome.qml (.../SettingsHome.qml) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263)
+++ sources/gui/qml/pages/settings/SettingsHome.qml (.../SettingsHome.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -59,7 +59,7 @@
width : 300
height : Variables.logoDiameter
text.text: qsTr("Clear Alarm Condition")
- onClicked: _alarmItem.clearAlarm()
+ onClicked: _alarmItem.clearAlarm()
}
}
Index: sources/gui/qml/pages/settings/SettingsInformation.qml
===================================================================
diff -u
--- sources/gui/qml/pages/settings/SettingsInformation.qml (revision 0)
+++ sources/gui/qml/pages/settings/SettingsInformation.qml (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -0,0 +1,90 @@
+/*!
+ *
+ * Copyright (c) 2021-2023 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 SettingsInformation.qml
+ * \author (last) Behrouz NematiPour
+ * \date (last) 11-May-2023
+ * \author (original) Behrouz NematiPour
+ * \date (original) 11-May-2023
+ *
+ */
+
+// Qt
+import QtQuick 2.12
+
+// Qml imports
+import "qrc:/globals"
+import "qrc:/compounds"
+
+
+/*!
+ * \brief SettingsInformation is the screen
+ * which queries the system for the versions and serial numbers and service records
+ * and display them
+ */
+SettingsBase { id: _root
+ itemIndex : SettingsStack.Information
+
+ confirmVisible : false
+
+ onVisibleChanged: {
+ if ( visible ) {
+ vAdjustmentVersions .doAdjustment()
+ vAdjustmentServiceDates .doAdjustment()
+ }
+ }
+
+ TouchGrid {
+ anchors.centerIn: parent
+ colCount : 2
+ colSpacing : 50
+ rowCount : 8
+ rowSpacing : 0
+ itemHeight : 50
+ itemWidth : 550
+ touchable : false
+ itemsHasLine: [
+ 0, // title C1
+ 1,1,1,1,1,1,1,
+ 0, // title C2
+ 1,1,1,1,
+ ]
+ itemsValueLeftMargin: 300
+ itemsValue : [
+ "" ,
+ Qt .application.version,
+ vAdjustmentVersions .hdVerDevice ,
+ vAdjustmentVersions .hdVerFPGA ,
+ vAdjustmentVersions .hdSerial ,
+ vAdjustmentVersions .dgVerDevice ,
+ vAdjustmentVersions .dgVerFPGA ,
+ vAdjustmentVersions .dgSerial ,
+ "",
+ vAdjustmentServiceDates .hdLastServiceDate ,
+ vAdjustmentServiceDates .hdNextServiceDate ,
+ vAdjustmentServiceDates .dgLastServiceDate ,
+ vAdjustmentServiceDates .dgNextServiceDate ,
+ ]
+ itemsText : [
+ qsTr("Versions" ), // col1 title
+ qsTr("UI Version" ),
+ qsTr("HD Version" ),
+ qsTr("HD FPGA Version" ),
+ qsTr("HD Serial Number" ),
+ qsTr("DG Version" ),
+ qsTr("DG FPGA Version" ),
+ qsTr("DG Serial Number" ),
+
+ qsTr("Service" ), // col2 title
+ qsTr("HD Last Service Date" ),
+ qsTr("HD Next Service Date" ),
+ qsTr("DG Last Service Date" ),
+ qsTr("DG Next Service Date" ),
+
+ ]
+ }
+}
Index: sources/gui/qml/pages/settings/SettingsManufacturingSetup.qml
===================================================================
diff -u
--- sources/gui/qml/pages/settings/SettingsManufacturingSetup.qml (revision 0)
+++ sources/gui/qml/pages/settings/SettingsManufacturingSetup.qml (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -0,0 +1,31 @@
+/*!
+ *
+ * Copyright (c) 2021-2023 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 SettingsManufacturingSetup.qml
+ * \author (last) Behrouz NematiPour
+ * \date (last) 11-May-2023
+ * \author (original) Behrouz NematiPour
+ * \date (original) 11-May-2023
+ *
+ */
+
+// Qt
+import QtQuick 2.12
+
+// Qml imports
+import "qrc:/globals"
+import "qrc:/compounds"
+
+
+/*!
+ * \brief SettingsManufacturingSetup is the screen
+ * which helps the manufacturing during the device setup
+ */
+SettingsBase { id: _root
+ itemIndex : SettingsStack.DeviceConfiguration
+ confirmVisible : false
+}
Index: sources/gui/qml/pages/settings/SettingsROInput.qml
===================================================================
diff -u
--- sources/gui/qml/pages/settings/SettingsROInput.qml (revision 0)
+++ sources/gui/qml/pages/settings/SettingsROInput.qml (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -0,0 +1,105 @@
+/*!
+ *
+ * Copyright (c) 2021-2023 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 SettingsROInput.qml
+ * \author (last) Behrouz NematiPour
+ * \date (last) 11-May-2023
+ * \author (original) Behrouz NematiPour
+ * \date (original) 11-May-2023
+ *
+ */
+
+// Qt
+import QtQuick 2.12
+import QtQuick.Controls 2.12 // Switch
+
+
+// Qml imports
+import "qrc:/globals"
+
+/*!
+ * \brief SettingsROInput is the screen
+ * which enables the Ro Water Input
+ */
+SettingsBase { id: _root
+ itemIndex : SettingsStack.RoInput
+
+ confirmVisible : false
+
+ Row { id: _settingsRoInputRow
+ anchors.centerIn: parent
+
+ Text { id : _settingsRoInputLabel
+ text : qsTr("Pure Water Mode")
+ width : 300
+ height : _settingsRoInputSwitch.height
+ color : Colors.white
+ font.pixelSize: Fonts.fontPixelButton
+ verticalAlignment : Text.AlignVCenter
+ horizontalAlignment : Text.AlignLeft
+ }
+
+ Switch { id: _settingsRoInputSwitch
+ property bool active: true
+
+ checked : vDuetRoWaterDG.status
+
+ width : 85
+ height : 85
+
+ indicator: Rectangle {
+ implicitWidth : Variables.sliderCircleDiameter * 1.7
+ implicitHeight : Variables.sliderCircleDiameter - ( Variables.progressbarHandlerBorderWidth * 2 )
+ radius : implicitHeight
+ anchors.centerIn: parent
+ color : _settingsRoInputSwitch.checked ? Colors.backgroundButtonSelect : Colors.createTreatmentInactive
+ border.color : _settingsRoInputSwitch.checked ? Colors.borderButton : Colors.createTreatmentInactive
+ Rectangle {
+ property real diameter : Variables.sliderCircleDiameter
+ x: _settingsRoInputSwitch.checked ? parent.width - width : 0
+ anchors.verticalCenter: parent.verticalCenter
+ width : diameter
+ height : diameter
+ radius : diameter
+ color : _settingsRoInputSwitch.active ? Colors.highlightProgressBar : Colors.createTreatmentInactive
+ border {
+ width: Variables.progressbarHandlerBorderWidth
+ color: Colors.textMain
+ }
+ }
+ }
+
+ contentItem: Text {
+ width : parent.width
+ height : parent.height
+ text : _settingsRoInputSwitch.checked ? qsTr("ON") : qsTr("OFF")
+ font.pixelSize: Fonts.fontPixelButton
+ color : _settingsRoInputSwitch.active ? Colors.textMain : Colors.textDisableButton
+ verticalAlignment : Text.AlignTop
+ horizontalAlignment : Text.AlignHCenter
+ }
+ }
+ }
+
+ Connections { target: _settingsRoInputSwitch
+ function onClicked() {
+ vDuetRoWaterDG.doAdjustment ( _settingsRoInputSwitch.checked )
+ }
+ }
+ Connections { target: vDuetRoWaterDG
+ function onAdjustmentTriggered(vValue) {
+ if ( vDuetRoWaterDG.adjustment_Accepted ) {
+ _settingsRoInput.notificationText = ""
+ }
+ else {
+ _settingsRoInput.notificationText = vDuetRoWaterDG.notification // adjustment_ReasonText
+ }
+ vSettings.roWaterMode = vDuetRoWaterDG.status
+ }
+ }
+}
+
Index: sources/gui/qml/pages/settings/SettingsServicePassword.qml
===================================================================
diff -u
--- sources/gui/qml/pages/settings/SettingsServicePassword.qml (revision 0)
+++ sources/gui/qml/pages/settings/SettingsServicePassword.qml (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -0,0 +1,69 @@
+/*!
+ *
+ * Copyright (c) 2021-2023 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 SettingsServicePassword.qml
+ * \author (last) Behrouz NematiPour
+ * \date (last) 11-May-2023
+ * \author (original) Behrouz NematiPour
+ * \date (original) 11-May-2023
+ *
+ */
+
+// Qt
+import QtQuick 2.12
+
+// Qml imports
+import "qrc:/globals"
+import "qrc:/pages"
+
+/*!
+ * \brief SettingsServicePassword is the screen
+ * which asks service password
+ */
+UserConfirmation{ id: _root
+ itemIndex : SettingsStack.ServicePassword
+
+ property bool isPassword_Accepted : false
+ property bool isDefaultPasswordSet : (vSettings.servicePass != "")
+
+ backVisible : ! _GuiView.manufactSetup
+ title : isDefaultPasswordSet ? qsTr("Service Password") : qsTr("Set Service Password")
+ isPassword : true
+ showPasswordReEntryField: !isDefaultPasswordSet
+ onBackClicked : {
+ clearPassword()
+ if(!isDefaultPasswordSet){
+ clearPasswordReEntry()
+ }
+ _settingsHome.notificationText = ""
+ }
+ onConfirmClicked: {
+ isPassword_Accepted = false
+ let password = _root.password
+ if ( !isDefaultPasswordSet ) {
+ let passwordReEntry = _root.passwordReEntry
+ if ( password != passwordReEntry ) { _root.notificationText = qsTr("Mismatched Password Entry"); return }
+ if (!vSettings.isPasswordValid(password)) { _root.notificationText = qsTr("Malformed Password Entry" ); return }
+
+ vSettings.updatePassword(password)
+ _root.isPassword_Accepted = true
+ _root.notificationText = ""
+ clearPasswordReEntry()
+ } else {
+ if (!vSettings.isPasswordMatch(password)) { _root.notificationText = qsTr("Incorrect service password"); return }
+
+ _root.isPassword_Accepted = true
+ _root.notificationText = ""
+ vAdjustmentServiceMode.doAdjustment()
+ if ( vSettings.noCANBus ) { // if NoCANBus is set don't wait for HD and go to service mode.
+ gotoServiceMode(true)
+ }
+ }
+ clearPassword()
+ page(_settingsHome)
+ }
+}
Index: sources/gui/qml/pages/settings/SettingsStack.qml
===================================================================
diff -u -r69b3aa965cd8187c66114a9753c162cc526d9678 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision 69b3aa965cd8187c66114a9753c162cc526d9678)
+++ sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -15,7 +15,6 @@
// Qt
import QtQuick 2.12
-import QtQuick.Controls 2.12 // Switch
// Project
import Gui.Actions 0.1
@@ -36,7 +35,7 @@
StackItem { id : _root
objectName: "_SettingsStack"
- stackView.initialItem : _settingsHome
+ stackView.initialItem : _GuiView.manufactSetup ? _servicePassword : _settingsHome
property bool serviceMode : false
@@ -46,13 +45,14 @@
WiFi ,
Bluetooth ,
DGSettings ,
- Services ,
+ ServicePassword ,
SetDateTime ,
ExportLogs ,
RoInput ,
Language ,
Calibration ,
DeviceRegistration ,
+ DeviceConfiguration ,
SWUpdate ,
FactoryReset
}
@@ -62,13 +62,14 @@
qsTr("Wi-Fi" ), // WiFi
qsTr("Bluetooth Cuff" ), // Bluetooth
qsTr("DG Cleaning" ), // DGSettings
- qsTr("Service" ), // Service
+ qsTr("Service" ), // servicePassword
qsTr("Set Date And Time" ), // SetDateTime
qsTr("Export Logs" ), // ExportLogs
qsTr("Water Input Mode" ), // RoInput
qsTr("Set Language" ), // Language
qsTr("Calibration " ), // Calibration
qsTr("Device Registration" ), // DeviceRegistration
+ qsTr("Device Configuration" ), // Manufacturing Setup
qsTr("Software Update" ), // SWUpdate
qsTr("Factory Reset" ), // FactoryReset
]
@@ -78,35 +79,37 @@
true , // WiFi
true , // Bluetooth
true , // DGSettings
- true , // Services
+ true , // ServicePassword
true , // SetDateTime
true , // ExportLogs
true , // RoInput
false , // Language
false , // Calibration
true , // DeviceRegistration
+ _GuiView.manufactSetup , // Manufacturing Setup
false , // SWUpdate
- false , // FactoryReset
+ serviceMode , // FactoryReset
]
property var itemsVisible : [
true , // Information
true , // VolumeBrightness
true , // WiFi
true , // Bluetooth
- true , // DGSettings
- ! serviceMode , // Services
+ ! _GuiView.manufactSetup , // DGSettings
+ ! serviceMode , // ServicePassword
serviceMode , // SetDateTime
- true , // ExportLogs
- true , // RoInput
+ ! _GuiView.manufactSetup , // ExportLogs
+ ! _GuiView.manufactSetup , // RoInput
false /* serviceMode phase 1 */ , // Language
false /* serviceMode phase 1 */ , // Calibration
- true /* serviceMode */ , // DeviceRegistration // FIXME: On the normal setting menu for now for development.
+ _GuiView.manufactSetup , // DeviceRegistration
+ serviceMode && _GuiView.manufactSetup, // Manufacturing Setup
false /* serviceMode phase 1 */ , // SWUpdate
- false /* serviceMode phase 1 */ , // FactoryReset
+ serviceMode /* serviceMode phase 1 */ , // FactoryReset
]
SettingsHome { id : _settingsHome
- title : serviceMode ? qsTr("Service") : qsTr("Device Settings")
+ title : _GuiView.manufactSetup ? qsTr("Manufacturing Setup") : serviceMode ? qsTr("Service") : qsTr("Device Settings")
backVisible : false
confirmVisible : serviceMode
confirmText.text: qsTr("SHUTDOWN")
@@ -139,7 +142,7 @@
push( _settingsDGSettings )
break
- case SettingsStack.Services:
+ case SettingsStack.ServicePassword:
push(_servicePassword)
_servicePassword.setFocus()
break
@@ -162,219 +165,39 @@
push( _settingsDeviceRegistration )
break
+ case SettingsStack.DeviceConfiguration:
+ push( _settingsDeviceConfiguration )
+ break
+
default:
console.debug("Unknown Index", vIndex)
break
}
}
}
- SettingsBase { id: _settingsInformation
- itemIndex : SettingsStack.Information
- confirmVisible : false
- onVisibleChanged: {
- if ( visible ) {
- vAdjustmentVersions .doAdjustment()
- vAdjustmentServiceDates .doAdjustment()
- }
- }
+ SettingsManufacturingSetup { id: _settingsDeviceConfiguration }
+ SettingsInformation { id: _settingsInformation }
+ SettingsVolumeBrightness { id: _settingsVolumeBrightness }
+ SettingsDateTime { id: _settingsDateTime }
+ SettingsWiFi { id: _settingsWiFi }
+ SettingsBluetoothCuff { id: _settingsBluetooth }
+ SettingsDG { id: _settingsDGSettings }
+ SettingsExportLogs { id: _settingsExportLogs }
+ SettingsROInput { id: _settingsRoInput }
+ SettingsDeviceRegistration { id: _settingsDeviceRegistration }
+ SettingsServicePassword { id: _servicePassword }
- TouchGrid {
- anchors.centerIn: parent
- colCount : 2
- colSpacing : 50
- rowCount : 8
- rowSpacing : 0
- itemHeight : 50
- itemWidth : 550
- touchable : false
- itemsHasLine: [
- 0, // title C1
- 1,1,1,1,1,1,1,
- 0, // title C2
- 1,1,1,1,
- ]
- itemsValueLeftMargin: 300
- itemsValue : [
- "" ,
- Qt .application.version,
- vAdjustmentVersions .hdVerDevice ,
- vAdjustmentVersions .hdVerFPGA ,
- vAdjustmentVersions .hdSerial ,
- vAdjustmentVersions .dgVerDevice ,
- vAdjustmentVersions .dgVerFPGA ,
- vAdjustmentVersions .dgSerial ,
- "",
- vAdjustmentServiceDates .hdLastServiceDate ,
- vAdjustmentServiceDates .hdNextServiceDate ,
- vAdjustmentServiceDates .dgLastServiceDate ,
- vAdjustmentServiceDates .dgNextServiceDate ,
- ]
- itemsText : [
- qsTr("Versions" ), // col1 title
- qsTr("UI Version" ),
- qsTr("HD Version" ),
- qsTr("HD FPGA Version" ),
- qsTr("HD Serial Number" ),
- qsTr("DG Version" ),
- qsTr("DG FPGA Version" ),
- qsTr("DG Serial Number" ),
-
- qsTr("Service" ), // col2 title
- qsTr("HD Last Service Date" ),
- qsTr("HD Next Service Date" ),
- qsTr("DG Last Service Date" ),
- qsTr("DG Next Service Date" ),
-
- ]
- }
+ function gotoServiceMode( vservice ) {
+ if ( ! _servicePassword.isPassword_Accepted ) return
+ serviceMode = vservice
+ if ( vservice )
+ _mainMenu.hidden = true
+ else
+ if ( _settingsHome.visible )
+ _mainMenu.hidden = false
}
- SettingsVolumeBrightness { id: _settingsVolumeBrightness
- itemIndex : SettingsStack.VolumeBrightness
- }
-
- SettingsDateTime { id: _settingsDateTime
- itemIndex : SettingsStack.SetDateTime
- }
-
- SettingsWiFi { id: _settingsWiFi
- itemIndex : SettingsStack.WiFi
- }
-
- SettingsBluetoothCuff { id: _settingsBluetooth
- }
-
- SettingsDG { id: _settingsDGSettings
- itemIndex : SettingsStack.DGSettings
- }
-
- SettingsExportLogs { id: _settingsExportLogs
- itemIndex : SettingsStack.ExportLogs
- }
-
- SettingsBase { id: _settingsRoInput
- confirmVisible : false
- itemIndex : SettingsStack.RoInput
-
-
- Row { id: _settingsRoInputRow
- anchors.centerIn: parent
-
- Text { id : _settingsRoInputLabel
- text : qsTr("Pure Water Mode")
- width : 300
- height : _settingsRoInputSwitch.height
- color : Colors.white
- font.pixelSize: Fonts.fontPixelButton
- verticalAlignment : Text.AlignVCenter
- horizontalAlignment : Text.AlignLeft
- }
-
- Switch { id: _settingsRoInputSwitch
- property bool active: true
-
- checked : vDuetRoWaterDG.status
-
- width : 85
- height : 85
-
- indicator: Rectangle {
- implicitWidth : Variables.sliderCircleDiameter * 1.7
- implicitHeight : Variables.sliderCircleDiameter - ( Variables.progressbarHandlerBorderWidth * 2 )
- radius : implicitHeight
- anchors.centerIn: parent
- color : _settingsRoInputSwitch.checked ? Colors.backgroundButtonSelect : Colors.createTreatmentInactive
- border.color : _settingsRoInputSwitch.checked ? Colors.borderButton : Colors.createTreatmentInactive
- Rectangle {
- property real diameter : Variables.sliderCircleDiameter
- x: _settingsRoInputSwitch.checked ? parent.width - width : 0
- anchors.verticalCenter: parent.verticalCenter
- width : diameter
- height : diameter
- radius : diameter
- color : _settingsRoInputSwitch.active ? Colors.highlightProgressBar : Colors.createTreatmentInactive
- border {
- width: Variables.progressbarHandlerBorderWidth
- color: Colors.textMain
- }
- }
- }
-
- contentItem: Text {
- width : parent.width
- height : parent.height
- text : _settingsRoInputSwitch.checked ? qsTr("ON") : qsTr("OFF")
- font.pixelSize: Fonts.fontPixelButton
- color : _settingsRoInputSwitch.active ? Colors.textMain : Colors.textDisableButton
- verticalAlignment : Text.AlignTop
- horizontalAlignment : Text.AlignHCenter
- }
- }
- }
-
- Connections { target: _settingsRoInputSwitch
- function onClicked() {
- vDuetRoWaterDG.doAdjustment ( _settingsRoInputSwitch.checked )
- }
- }
- Connections { target: vDuetRoWaterDG
- function onAdjustmentTriggered(vValue) {
- if ( vDuetRoWaterDG.adjustment_Accepted ) {
- _settingsRoInput.notificationText = ""
- }
- else {
- _settingsRoInput.notificationText = vDuetRoWaterDG.notification // adjustment_ReasonText
- }
- vSettings.roWaterMode = vDuetRoWaterDG.status
- }
- }
- }
-
- SettingsDeviceRegistration { id: _settingsDeviceRegistration }
-
- UserConfirmation { id: _servicePassword
- property bool isPassword_Accepted : false
- property bool isDefaultPasswordSet : (vSettings.servicePass != "")
-
- itemIndex : SettingsStack.Services
- title : isDefaultPasswordSet ? qsTr("Service Password") : qsTr("Set Service Password")
- isPassword: true
- showPasswordReEntryField: !isDefaultPasswordSet
- onBackClicked : {
- clearPassword()
- if(!isDefaultPasswordSet){
- clearPasswordReEntry()
- }
- _settingsHome.notificationText = ""
- }
- onConfirmClicked: {
- isPassword_Accepted = false
- let password = _servicePassword.password
- if ( !isDefaultPasswordSet ) {
- let passwordReEntry = _servicePassword.passwordReEntry
- if ( password != passwordReEntry ) { _servicePassword.notificationText = qsTr("Mismatched Password Entry"); return }
- if (!vSettings.isPasswordValid(password)) { _servicePassword.notificationText = qsTr("Malformed Password Entry" ); return }
-
- vSettings.updatePassword(password)
- _servicePassword.isPassword_Accepted = true
- _servicePassword.notificationText = ""
- clearPasswordReEntry()
- } else {
- if (!vSettings.isPasswordMatch(password)) { _servicePassword.notificationText = qsTr("Incorrect service password"); return }
-
- _servicePassword.isPassword_Accepted = true
- _servicePassword.notificationText = ""
- vAdjustmentServiceMode.doAdjustment()
- if ( vSettings.noCANBus ) { // if NoCANBus is set don't wait for HD and go to service mode.
- gotoServiceMode(true)
- }
- }
- clearPassword()
- pop() // pop back to settings screen and wait for the HD-OpMode change to Service_Mode to update the settings screen.
- }
- }
-
Connections { target: vAdjustmentServiceMode
function onAdjustmentTriggered ( vValue ) {
if ( vAdjustmentServiceMode.adjustment_Accepted ) {
@@ -386,25 +209,14 @@
}
}
- function gotoServiceMode( vservice ) {
- if ( ! _servicePassword.isPassword_Accepted ) return
- serviceMode = vservice
- if ( vservice )
- _mainMenu.hidden = true
- else
- if ( _settingsHome.visible )
- _mainMenu.hidden = false
- }
-
-
Connections { target: vHDOperationMode
function onServiceChanged ( vValue ) { gotoServiceMode( vValue )}
function onStandbyWaitDisinfectChanged ( vValue ) { page( _settingsHome , vValue )}
}
onVisibleChanged: {
if (visible) {
- _mainMenu.hidden = serviceMode
+ _mainMenu.hidden = serviceMode || _GuiView.manufactSetup
}
else {
stackView.initialItem = null
Index: sources/gui/qml/pages/settings/SettingsVolumeBrightness.qml
===================================================================
diff -u -r7c86f3854db9ad02d95681203198d75a0d65c9fa -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/settings/SettingsVolumeBrightness.qml (.../SettingsVolumeBrightness.qml) (revision 7c86f3854db9ad02d95681203198d75a0d65c9fa)
+++ sources/gui/qml/pages/settings/SettingsVolumeBrightness.qml (.../SettingsVolumeBrightness.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -27,7 +27,9 @@
* \brief SettingsVolumeBrightness is used to adjust the
* volume (alarm/system), brightness on the device
*/
-SettingsBase { id: _root
+SettingsBase { id: _root
+ itemIndex : SettingsStack.VolumeBrightness
+
readonly property int spacing: 50
confirmVisible : false
Index: sources/gui/qml/pages/settings/SettingsWiFi.qml
===================================================================
diff -u -r28845c70151c3fb6f1a8e92c82da0232b6ca854a -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision 28845c70151c3fb6f1a8e92c82da0232b6ca854a)
+++ sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -28,7 +28,8 @@
* \brief SettingsWiFi
* The settings screen to setup the WiFi connection
*/
-SettingsBase { id: _root
+SettingsBase { id: _root
+ itemIndex : SettingsStack.WiFi
property var ipValidator: RegExpValidator {
regExp:/^(([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))\.){3}([01]?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))$/
Index: sources/main.h
===================================================================
diff -u -r2dd4e9c952d65e68f1c81a1cfc13d1f96b0d7d43 -r9c7a790376d07de7ddaa67e39d47102d68693c87
--- sources/main.h (.../main.h) (revision 2dd4e9c952d65e68f1c81a1cfc13d1f96b0d7d43)
+++ sources/main.h (.../main.h) (revision 9c7a790376d07de7ddaa67e39d47102d68693c87)
@@ -91,16 +91,18 @@
extern bool gDisableSDCFailLogStop ;
extern bool gDisableCloudSyncFailStop ;
-extern bool gEnableCheckInLog ;
-extern bool gEnableAcknowLog ;
+extern bool gDisableCheckInLog ;
+extern bool gDisableAcknowLog ;
extern bool gConsoleoutLogs ;
extern bool gConsoleoutFrameInterface ;
extern bool gConsoleoutCanInterface ;
extern bool gEnableDryDemo ;
extern QString gActiveCANBus ;
+extern bool gEnableManufacturing ;
+
//--------------------------------------------------------------------------------//
//--------------------------------------------------------------------------------//
#define SKIPPER_DEF(X) \