Index: sources/device/DeviceModels.h =================================================================== diff -u -re8262d170bb94046ddb767074a31530bdf4a2319 -r6c6f1f5d466badd9b4fd67be7c907234c342b2a2 --- sources/device/DeviceModels.h (.../DeviceModels.h) (revision e8262d170bb94046ddb767074a31530bdf4a2319) +++ sources/device/DeviceModels.h (.../DeviceModels.h) (revision 6c6f1f5d466badd9b4fd67be7c907234c342b2a2) @@ -1,15 +1,15 @@ /*! * - * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * 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 DeviceModels.h - * \author (last) Behrouz NematiPour - * \date (last) 01-Jun-2021 + * \author (last) Vy + * \date (last) 04-Apr-2023 * \author (original) Behrouz NematiPour - * \date (original) 01-Jun-2021 + * \date (original) 03-Jun-2021 * */ #pragma once @@ -20,6 +20,7 @@ // Project #include "MAbstract.h" #include "types.h" +#include "DeviceError.h" // forward declarations @@ -78,6 +79,7 @@ }; +// ---------- MDeviceBrightness ---------- // /*! * \brief The MDeviceBrightnessRequest class * \details The model for the device brightness value modification request. @@ -87,24 +89,31 @@ // TODO : Merge the two models as they have much in common in this case. // On the CANBus it was separated since the type of data in send and receive was totally different. // But here it's the same. + // TODO: improve later - this has to be match with HW2UI in response + QMap UI2HW = { // the mapping is not linear so has to be mapped to keep the order + { 1, 1}, // "key" is the value accepted from QML mapped to HW + { 2, 3}, + { 3, 5}, + { 4, 6}, + { 5, 10}, + }; public: // TODO : these needs to be available in Views static const quint8 mBrightness_min = 2; static const quint8 mBrightness_max = 10; static const quint8 mBrightness_res = 2; - // TODO : Add these two as virtual in parent. - quint8 toDV (quint8) { return 0; /* Place Holder (/ 10) */ } - quint8 toUI (quint8) { return 0; /* Place Holder (* 10) */ } struct Data { quint8 mBrightness_old = mBrightness_min ; quint8 mBrightness_val = 0; - quint8 mBrightnessPercent = 100; + quint8 mBrightnessPercent = 5; // ~ 100% bool mRead = false; } _data; + Device::DeviceError::Scripts_Error_Enum setBrightnessSysVal(); + QString toString() { return MDeviceRequestBase::toString("DeviceBrightness", { _data.mBrightnessPercent }); } @@ -115,16 +124,28 @@ * \details The model for the device brightness value request. */ class MDeviceBrightnessResponse : public MDeviceResponseBase { + // TODO: improve later - this has to be match with UI2HW in request + QMap HW2UI = { // the mapping is not linear so has to be mapped to keep the order; + { 1, 1}, // "value" is the displayed number in QML for property "brightness" + { 3, 2}, + { 5, 3}, + { 6, 4}, + { 10, 5}, + }; + public: struct Data : MDeviceResponseBase::Data { quint8 mBrightnessPercent = 0; } _data; QVariantList parameters () const override { return { _data.mBrightnessPercent }; } - QString infoText () const override { return QString("DeviceBrightness") ; } - Data data () const; + QString infoText () const override { return QString("DeviceBrightness") ; } + Data data () const { return _data; } + + Device::DeviceError::Scripts_Error_Enum setBrightnessPercent(quint8 vSysVal); }; +// ---------- MDeviceBluetoothPaired 'Reset' ---------- // /*! * \brief The MDeviceBluetoothPairedResetRequest class * \details The model for the bluetooth pared removal script call. @@ -147,17 +168,230 @@ public: struct Data : MDeviceResponseBase::Data { } _data; - QVariantList parameters () const override { return { }; } - QString infoText () const override { return QString("DeviceBluetoothPairedReset") ; } - Data data () const; + QVariantList parameters ( ) const override { return { }; } + QString infoText ( ) const override { return QString("DeviceBluetoothPairedReset") ; } + Data data ( ) const { return _data; } + bool fromByteArray(const QByteArray &vByteArray, int *vExitCode = nullptr) override; }; -} +// ---------- MDeviceBluetoothPaired 'Query' ---------- // +/*! + * \brief The MDeviceBluetoothPairedQueryRequest class + * \details The model for the bluetooth pared removal script call. + */ +class MDeviceBluetoothPairedQueryRequest : public MDeviceRequestBase { +public: + struct Data { + } _data; + QString toString() { + return MDeviceRequestBase::toString("DeviceBluetoothPairedQuery", { }); + } +}; +/*! + * \brief The MDeviceBluetoothPairedQueryResponse class + * \details The model for the bluetooth pared removal script call returned value / response. + */ +class MDeviceBluetoothPairedQueryResponse : public MDeviceResponseBase { +public: + const quint8 LEN_COUNT = 2; + const char SEPARATOR = ' '; + const char *ZERO = "00:00:00:00:00:00"; + enum { + eAddr, + eName, + }; + struct Data : MDeviceResponseBase::Data { + QString mAddr = ""; // Paired device address + QString mName = ""; // Paired device name + QStringList mInfo = {}; // combination of the {mAddr, mName} to be used in QML/GUI side. + } _data; + QVariantList parameters ( ) const override { return { }; } + QString infoText ( ) const override { return QString("DeviceBluetoothPairedQuery"); } + Data data ( ) const { return _data; } + bool fromByteArray(const QByteArray &vByteArray, int *vExitCode = nullptr) override; +}; + +// ---------- MDeviceCryptSetup ---------- // +/*! + * \brief The MDeviceCryptSetupRequest class + * \details The model for the CryptSetup script call. + */ +class MDeviceCryptSetupRequest : public MDeviceRequestBase { +public: + struct Data { + QString mCommand = ""; + QString mPassword = ""; + } _data; + + QString toString() { + return MDeviceRequestBase::toString("DeviceCryptSetup", { }); + } +}; + +/*! + * \brief The MDeviceCryptSetupResponse class + * \details The model for the CryptSetup script call returned value / response. + */ +class MDeviceCryptSetupResponse : public MDeviceResponseBase { +public: + struct Data : MDeviceResponseBase::Data { + } _data; + QVariantList parameters ( ) const override { return { }; } + QString infoText ( ) const override { return QString("DeviceCryptSetup"); } + Data data ( ) const { return _data; } + bool fromByteArray(const QByteArray &vByteArray, int *vExitCode = nullptr) override; +}; + +// ---------- MDeviceRootSSHAccess ---------- // +/*! + * \brief The MDeviceRootSSHAccessRequest class + * \details The model for the device RootSSHAccess value modification request. + */ +class MDeviceRootSSHAccessRequest : public MDeviceRequestBase { +public: + struct Data { + bool mRootSSHAccess = false; + bool mIsGet = true ; + } _data; + + QString toString() { + return MDeviceRequestBase::toString("RootSSHAccess", { _data.mRootSSHAccess }); + } +}; + +/*! + * \brief The MDeviceRootSSHAccessResponse class + * \details The model for the device RootSSHAccess value request. + */ +class MDeviceRootSSHAccessResponse : public MDeviceResponseBase { +public: + struct Data : MDeviceResponseBase::Data { + bool mRootSSHAccess = false; + } _data; + + QVariantList parameters () const override { return { _data.mRootSSHAccess }; } + QString infoText () const override { return QString("RootSSHAccess"); } + Data data () const { return _data; } +}; + + + +// ---------- MDeviceFactoryReset ---------- // +/*! + * \brief The MDeviceFactoryResetRequest class + * \details The model for the factory reset script call. + */ +class MDeviceFactoryResetRequest : public MDeviceRequestBase { +public: + struct Data { + } _data; + + QString toString() { + return MDeviceRequestBase::toString("FactoryReset", { }); + } +}; + +/*! + * \brief The MDeviceFactoryResetResponse class + * \details The model for the factory reset script call returned value / response. + */ +class MDeviceFactoryResetResponse : public MDeviceResponseBase { +public: + struct Data : MDeviceResponseBase::Data { + } _data; + QVariantList parameters ( ) const override { return { }; } + QString infoText ( ) const override { return QString("DeviceFactoryReset"); } + Data data ( ) const { return _data; } + bool fromByteArray(const QByteArray &vByteArray, int *vExitCode = nullptr) override; +}; + + +// ---------- MDeviceDecommission ---------- // +/*! + * \brief The MDeviceDecommissionRequest class + * \details The model for the decommission script call. + */ +class MDeviceDecommissionRequest : public MDeviceRequestBase { +public: + struct Data { + QString mPassword = ""; + } _data; + + QString toString() { + return MDeviceRequestBase::toString("Decommission", { }); + } +}; + +/*! + * \brief The MDeviceDecommissionResponse class + * \details The model for the decommission script call returned value / response. + */ +class MDeviceDecommissionResponse : public MDeviceResponseBase { +public: + struct Data : MDeviceResponseBase::Data { + } _data; + QVariantList parameters ( ) const override { return { }; } + QString infoText ( ) const override { return QString("DeviceDecommission"); } + Data data ( ) const { return _data; } + bool fromByteArray(const QByteArray &vByteArray, int *vExitCode = nullptr) override; +}; + +// ---------- MDeviceUSBMount ---------- // +/*! + * \brief The MDeviceUSBMountRequest class + * \details The model for the usb unmount/mount script call. + */ +class MDeviceUSBMountRequest : public MDeviceRequestBase { +public: + struct Data { + bool isMountRequest = true; + QString usbDevice = "" ; + } _data; + + QString toString() { + return MDeviceRequestBase::toString("UsbMount", { _data.usbDevice, _data.isMountRequest }); + } +}; + +/*! + * \brief The MDeviceUSBMountResponse class + * \details The model for the usb mount/unmount script call returned value / response. + */ +class MDeviceUSBMountResponse : public MDeviceResponseBase { +public: + struct Data : MDeviceResponseBase::Data { + } _data; + QVariantList parameters ( ) const override { return { }; } + QString infoText ( ) const override { return QString("DeviceUsbMount"); } + Data data ( ) const { return _data; } + bool fromByteArray(const QByteArray &vByteArray, int *vExitCode = nullptr) override; +}; +} + typedef Model::MDeviceResponseBase ::Data DeviceResponseBaseData ; + typedef Model::MDeviceBrightnessRequest ::Data DeviceBrightnessRequestData ; typedef Model::MDeviceBrightnessResponse::Data DeviceBrightnessResponseData ; typedef Model::MDeviceBluetoothPairedResetRequest ::Data DeviceBluetoothPairedResetRequestData ; typedef Model::MDeviceBluetoothPairedResetResponse::Data DeviceBluetoothPairedResetResponseData; + +typedef Model::MDeviceBluetoothPairedQueryRequest ::Data DeviceBluetoothPairedQueryRequestData ; +typedef Model::MDeviceBluetoothPairedQueryResponse::Data DeviceBluetoothPairedQueryResponseData; + +typedef Model::MDeviceCryptSetupRequest ::Data DeviceCryptSetupRequestData ; +typedef Model::MDeviceCryptSetupResponse::Data DeviceCryptSetupResponseData; + +typedef Model::MDeviceRootSSHAccessRequest ::Data DeviceRootSSHAccessRequestData ; +typedef Model::MDeviceRootSSHAccessResponse::Data DeviceRootSSHAccessResponseData ; + +typedef Model::MDeviceFactoryResetRequest ::Data DeviceFactoryResetRequestData ; +typedef Model::MDeviceFactoryResetResponse::Data DeviceFactoryResetResponseData; + +typedef Model::MDeviceDecommissionRequest ::Data DeviceDecommissionRequestData ; +typedef Model::MDeviceDecommissionResponse::Data DeviceDecommissionResponseData; + +typedef Model::MDeviceUSBMountRequest ::Data DeviceUSBMountRequestData ; +typedef Model::MDeviceUSBMountResponse::Data DeviceUSBMountResponseData;