Index: main.cpp =================================================================== diff -u -r689177edf29dee6f10bebfed42f6bbadeb7ce8a8 -r6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b --- main.cpp (.../main.cpp) (revision 689177edf29dee6f10bebfed42f6bbadeb7ce8a8) +++ main.cpp (.../main.cpp) (revision 6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b) @@ -114,33 +114,46 @@ * Usage: ./denali [options] * Denali * - * Options: - * -h, --help Displays this help. - * -v, --version Displays version information. - * -c, --canOut Show the Can Frame Output - * -m, --msgOut Show the Message Output - * -l, --logOut Show the Logs Output - * -0, --enable-keep-awake Enable send low priority, empty message - * on the CANBus just to keep UI board CAN - * driver awake - * -i, --fake-interval Test fake message interval(ms) - * -f, --fake-message Test fake message data - * will use default sequenced long fake - * message if set to 00(default) - * will used only if correct integer value - * assigned for interval option - * -b, --fake-message-seq-at-begin Test fake message sequence at the - * beginning of the frame - * -u, --disable-unhandled-report Disable unhandled messages report as an - * error in the log - * -d, --disable-dialin-unhandled Disable the Dialin messages logged as - * unhandled - * -q, --disable-timeout Disables HD communication timeout - * -a, --disable-alarm-no-minimize Disables alarm no minimize - * -S, --disable-sd-card-fail-log-stop disable-sd-card-fail-log-stop - * -C, --disable-cloudsync-fail-stop disable-cloudsync-fail-stop - * -k, --enable-check-in-log Enables Check-In Log - * -K, --enable-acknow-log Enables Acknowledgment Log + * Options: + * -h, --help Displays help on commandline options. + * --help-all Displays help including Qt specific + * options. + * -v, --version Displays version information. + * -c, --canOut Show the Can Frame Output + * -m, --msgOut Show the Message Output + * -l, --logOut Show the Logs Output + * -0, --enable-keep-awake Enable send low priority, empty message + * on the CANBus just to keep UI board CAN + * driver awake + * -i, --fake-interval Test fake message interval(ms) + * -f, --fake-message Test fake message data + * will use default sequenced long fake + * message if set to 00(default) + * will used only if correct integer value + * assigned for interval option + * -b, --fake-message-seq-at-begin Test fake message sequence at the + * beginning of the frame + * -u, --disable-unhandled-report Disable unhandled messages report as an + * error in the log + * -d, --disable-dialin-unhandled Disable the Dialin messages logged as + * unhandled + * -q, --disable-timeout Disables HD communication timeout + * -a, --disable-alarm-no-minimize Disables alarm no minimize + * -S, --disable-sd-card-fail-log-stop disable-sd-card-fail-log-stop + * -C, --disable-cloudsync-fail-stop disable-cloudsync-fail-stop + * -k, --disable-check-in-log Disables Check-In Log + * -K, --disable-acknow-log Disables Acknowledgment Log + * -D, --enable-dry-demo Enables Dry-Demo Mode + * -A, --active-can-bus Sets the Active CANBus [Shall start with + * 'can' or 'vcan] + * -E, --enable-manufacturing Enables the manufacturing mode to + * configure the system for the first time. + * -R, --use-root-home In case the application is not in + * Manufacturing Setup but needs to use root + * home folder for configurations. + * -U, --enable-Update-mode Enables the update mode to update only + * necessary files during the update and + * keep the rest. * \endverbatim */ /*! @@ -540,7 +553,9 @@ Gui::_viewer->deleteLater(); +#ifdef BUILD_FOR_TARGET lockdown(); +#endif return app_exec; } Index: sources/device/DeviceController.cpp =================================================================== diff -u -rcb0e2dc027adf7e0fbe803b82bb9945b82c556a5 -r6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b --- sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision cb0e2dc027adf7e0fbe803b82bb9945b82c556a5) +++ sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision 6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b) @@ -556,7 +556,12 @@ } // ----- run the process - _processBrightness.start(script, QStringList() << QString::number(_deviceBrightnessRequest._data.mBrightness_val)); + int timeout_ms = 1000; + QStringList params; + params << QString::number(_deviceBrightnessRequest._data.mBrightness_val); + TimedProcess *timedProcess = new TimedProcess(&_processBrightness, script, timeout_ms, params); + timedProcess->start(); + } /*! Index: sources/device/DeviceController.h =================================================================== diff -u -r15dffa44e42fe108caa6dd0dfbe659b192ee5323 -r6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b --- sources/device/DeviceController.h (.../DeviceController.h) (revision 15dffa44e42fe108caa6dd0dfbe659b192ee5323) +++ sources/device/DeviceController.h (.../DeviceController.h) (revision 6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b) @@ -62,8 +62,12 @@ this , SLOT(onFinish (int))); } void start() { +#ifdef BUILD_FOR_DESKTOP + qDebug() << "DeviceController.TimedProcess: " << _timeout << _command << _arguments; +#else _pid = startTimer(_timeout); _process->start(_command, _arguments); +#endif } protected: Index: sources/gui/qml/AlarmItem.qml =================================================================== diff -u -r364cf0959b78d4e86c7220fb878c5246c9d7d6bd -r6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b --- sources/gui/qml/AlarmItem.qml (.../AlarmItem.qml) (revision 364cf0959b78d4e86c7220fb878c5246c9d7d6bd) +++ sources/gui/qml/AlarmItem.qml (.../AlarmItem.qml) (revision 6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b) @@ -72,7 +72,7 @@ // Look at the PowerItem as an example. if ( ! vAlarmStatus.hasAlarm ) return - // close the user confrimation dialog if the alarm dialog is going to be dispalyed + // close the user confirmation dialog if the alarm dialog is going to be dispalyed _confirmDialog.close() if ( _root._DEBUG_DISABLE_MAXIMIZE_ ) { Index: sources/gui/qml/PowerItem.qml =================================================================== diff -u -r364cf0959b78d4e86c7220fb878c5246c9d7d6bd -r6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b --- sources/gui/qml/PowerItem.qml (.../PowerItem.qml) (revision 364cf0959b78d4e86c7220fb878c5246c9d7d6bd) +++ sources/gui/qml/PowerItem.qml (.../PowerItem.qml) (revision 6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b) @@ -73,7 +73,7 @@ function open() { _root.isOpen = true _powerOffDialog.open() - _confirmDialog.close() // close the user confrimation dialog if the power off is requested + _confirmDialog.close() // close the user confirmation dialog if the power off is requested _alarmItem.alarmMinimize() } Index: sources/gui/qml/pages/settings/SettingsRootSSHAccess.qml =================================================================== diff -u -rcb0e2dc027adf7e0fbe803b82bb9945b82c556a5 -r6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b --- sources/gui/qml/pages/settings/SettingsRootSSHAccess.qml (.../SettingsRootSSHAccess.qml) (revision cb0e2dc027adf7e0fbe803b82bb9945b82c556a5) +++ sources/gui/qml/pages/settings/SettingsRootSSHAccess.qml (.../SettingsRootSSHAccess.qml) (revision 6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b) @@ -76,7 +76,6 @@ contentItem : Text { width : parent.width height : parent.height - // text : qsTr("Enabled")// _settingsRootSSHAccessSwitch.checked ? qsTr("ON") : qsTr("OFF") font.pixelSize : Fonts.fontPixelButton color : _settingsRootSSHAccess_SSHDSwitch.active ? Colors.textMain : Colors.textDisableButton verticalAlignment : Text.AlignTop @@ -127,7 +126,6 @@ contentItem : Text { width : parent.width height : parent.height - // text : qsTr("Enabled")// _settingsRootSSHAccessSwitch.checked ? qsTr("ON") : qsTr("OFF") font.pixelSize : Fonts.fontPixelButton color : _settingsRootSSHAccess_RootSwitch.active ? Colors.textMain : Colors.textDisableButton verticalAlignment : Text.AlignTop Index: sources/utility/encryption.cpp =================================================================== diff -u -r80b5e8f1ebb90c03c37d90d90cd2da3bd95d6803 -r6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b --- sources/utility/encryption.cpp (.../encryption.cpp) (revision 80b5e8f1ebb90c03c37d90d90cd2da3bd95d6803) +++ sources/utility/encryption.cpp (.../encryption.cpp) (revision 6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b) @@ -68,7 +68,7 @@ * \return encrypted string */ QString encryption::hashedString(const QString &vString, bool &ok, bool vAddMoreSalt) { - int iter = 1000; + int iter = 10000; // https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#pbkdf2 int len = 16; ok = vAddMoreSalt ? ! __salt__.isEmpty() : true; Index: sources/view/settings/VSettings.cpp =================================================================== diff -u -r5c4fe87834faa59fcb7982e783c8ae3390ec2205 -r6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b --- sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision 5c4fe87834faa59fcb7982e783c8ae3390ec2205) +++ sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision 6ccee3fdf50b4717096745fb5b3f5ecc91b9cd1b) @@ -254,16 +254,16 @@ * \returns true if string pass conforms, false otherwise */ bool View::VSettings::isPasswordValid(const QString &vPassword) { - int minLen = 8 ; + int minLen = 10 ; // in the SRS the max is required to be 12 which seems incorrect and I didn't set it her. QString pla = "(?=.*[%1])" ; // positive look ahead QString regSntnc = "^%1$" ; // regular expression sentence with has a start/end QString regUpper = "A-Z" ; QString regLower = "a-z" ; QString regDigit = "0-9" ; - QString regSymbl = "@$!%*?&.,_-" ; + QString regSymbl = "!@#$%^&*,.-_"; QString rln = "[%1]{%2,}" ; - // "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[@$!%*?&])[A-Za-z0-9@$!%*?&]{8,}$" + // "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[@$!%*?&])[A-Za-z0-9@$!%*?&]{10,}$" QString regStr = regSntnc.arg( pla.arg(regUpper) + pla.arg(regLower) +