/*! * * 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 DeviceView.cpp * \author (last) Behrouz NematiPour * \date (last) 11-Nov-2021 * \author (original) Behrouz NematiPour * \date (original) 03-Jun-2021 * */ #include "DeviceView.h" // Qt // Project #include "ApplicationController.h" #include "GuiController.h" #include "GuiGlobals.h" #include "encryption.h" VIEW_DEF_CLASS(VDevice) void VDevice::initConnections() { DEVICE_VIEW_INIT_CONNECTIONS_LIST } // developer implementation section void VDevice::doInitBrightness() { // DEBUG : qDebug() << "HERE Request" << vValue; DeviceBrightnessRequestData data; data.mRead = true; emit didAttributeRequest(data); } void VDevice::brightnessRequest(const quint8 &vValue) { // DEBUG : qDebug() << "HERE Request" << vValue; DeviceBrightnessRequestData data; data.mBrightnessPercent = vValue; emit didAttributeRequest(data); } void VDevice::onAttributeResponse(const DeviceBrightnessResponseData &vData) { // DEBUG : qDebug() << "HERE Response" << vData.mBrightnessPercent; if ( vData.mAccepted ) { brightness(vData.mBrightnessPercent); status(""); } else { // this has to be called to let Gui to set to old value that device controller provided. emit brightnessChanged(vData.mBrightnessPercent); status(vData.mMessage); } accepted(vData.mAccepted); reason (vData.mReason ); // has to be the last one response(true); } // ================================================= Crypt Setup void VDevice::doInitCryptSetup() { // Nothing for now. } void VDevice::cryptSetupRequest(const QString &vCommand) { // DEBUG : qDebug() << "HERE Request" << vValue; cryptSetupEnabled(false); DeviceCryptSetupRequestData data; data.mCommand = vCommand; bool ok = false; data.mPassword = encryption::configurationsPassword( ok ); if ( ! ok ) { // not enough infromation to create a secure passowrd status(tr("Not enough secure information provided")); } else { emit didAttributeRequest(data); } } void VDevice::onAttributeResponse(const DeviceCryptSetupResponseData &vData) { // DEBUG : qDebug() << "HERE Response" << vData.mBrightnessPercent; // this has to be called to let Gui to set to old value that device controller provided. // this response is not updating the cryptsetup attribute. // cryptsetup attribute will containe the command to be sent to the cryptsetup script // and the retrurned message can be the model message in vData.mMessage status(vData.mMessage); accepted(vData.mAccepted); reason (vData.mReason ); cryptSetupEnabled(isCompleteResponse(vData)); // has to be the last one response(true); } // ================================================= Bluetooth Paired Reset void VDevice::doInitBluetoothPairedReset() { // DEBUG : qDebug() << "HERE Init"; DeviceBluetoothPairedResetRequestData data; emit didAttributeRequest(data); } void VDevice::bluetoothPairedResetRequest(const quint8 &) { // DEBUG : qDebug() << "HERE Request"; // Nothing to be done here. This property will not be assigned. } void VDevice::onAttributeResponse(const DeviceBluetoothPairedResetResponseData &vData) { // DEBUG : qDebug() << "HERE Response" << vData.mAccepted << vData.mReason << vData.mMessage; // this has to be called to let Gui to set to old value that device controller provided. status(vData.mMessage); accepted(vData.mAccepted); reason (vData.mReason ); // has to be the last one emit bluetoothPairedResetChanged(vData.mReason); response(true); } // ================================================= Bluetooth Paired Query void VDevice::doInitBluetoothPairedQuery() { // DEBUG : qDebug() << "HERE Init"; DeviceBluetoothPairedQueryRequestData data; emit didAttributeRequest(data); } void VDevice::bluetoothPairedQueryRequest(const QStringList &) { // DEBUG : qDebug() << "HERE Request"; // Nothing to be done here. This property will not be assigned. } void VDevice::onAttributeResponse(const DeviceBluetoothPairedQueryResponseData &vData) { // DEBUG : qDebug() << "HERE Response" << vData.mAccepted << vData.mReason << vData.mMessage; // this has to be called to let Gui to set to old value that device controller provided. status(vData.mMessage); accepted(vData.mAccepted); reason (vData.mReason ); // has to be the last one emit bluetoothPairedQueryChanged(vData.mInfo); response(true); } // ================================================= RootSSHAccess void VDevice::doInitRootSSHAccess() { // DEBUG : qDebug() << "HERE Request" << vValue; DeviceRootSSHAccessRequestData data; data.mIsGet = true; emit didAttributeRequest(data); } void VDevice::rootSSHAccessRequest(const bool &vValue) { // DEBUG : qDebug() << "HERE Request" << vValue; DeviceRootSSHAccessRequestData data; data.mIsGet = false; data.mRootSSHAccess = vValue; emit didAttributeRequest(data); } void VDevice::onAttributeResponse(const DeviceRootSSHAccessResponseData &vData) { // DEBUG : qDebug() << "HERE Response" << vData.mBrightnessPercent; if ( vData.mAccepted ) { rootSSHAccess(vData.mRootSSHAccess); status(""); } else { // this has to be called to let Gui to set to old value that device controller provided. emit rootSSHAccessChanged(vData.mRootSSHAccess); status(vData.mMessage); } accepted(vData.mAccepted); reason (vData.mReason ); // has to be the last one response(true); } // ================================================= Factory Reset void VDevice::doInitFactoryReset() { // Nothing for now. } void VDevice::factoryResetRequest(const QString &vCommand) { Q_UNUSED(vCommand) // DEBUG : qDebug() << "HERE Request" << vCommand; factoryResetEnabled(false); DeviceFactoryResetRequestData data; emit didAttributeRequest(data); } void VDevice::onAttributeResponse(const DeviceFactoryResetResponseData &vData) { // QDEBUG : qDebug() << "HERE Response " << Q_FUNC_INFO << " accepted: " << vData.mAccepted; // this has to be called to let Gui to set to old value that device controller provided. status(vData.mMessage); accepted(vData.mAccepted); reason (vData.mReason ); factoryResetEnabled(isCompleteResponse(vData)); // has to be the last one response(true); } // ================================================= Decommission void VDevice::doInitDecommission() { // Nothing for now. } void VDevice::decommissionRequest(const QString &vCommand) { Q_UNUSED(vCommand) // DEBUG : qDebug() << "HERE Request" << vCommand; decommissionEnabled(true); DeviceDecommissionRequestData data; bool ok = false; data.mPassword = encryption::configurationsPassword( ok ); if ( ! ok ) { // not enough infromation to create a secure passowrd status(tr("Not enough secure information provided")); } else { emit didAttributeRequest(data); } emit didAttributeRequest(data); } void VDevice::onAttributeResponse(const DeviceDecommissionResponseData &vData) { //QDEBUG : qDebug() << "HERE Response " << Q_FUNC_INFO << " accepted: "<< vData.mAccepted << vData.mReason; // this has to be called to let Gui to set to old value that device controller provided. status(vData.mMessage); accepted(vData.mAccepted); reason (vData.mReason ); decommissionEnabled(isCompleteResponse(vData)); // has to be the last one response(true); }