Index: sources/device/DeviceController.cpp =================================================================== diff -u -rf2e4eba6e85c5d36537be782926f23cc9dc01037 -rf0a80523d37c862fd24064522216b0bd53a2cc33 --- sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision f2e4eba6e85c5d36537be782926f23cc9dc01037) +++ sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision f0a80523d37c862fd24064522216b0bd53a2cc33) @@ -997,7 +997,7 @@ } /*! - * \brief DeviceController::processUSBMountResponse + * \brief DeviceController::processWifiListResponse * \param vExitCode * \param vStatus */ @@ -1019,3 +1019,60 @@ } } +////////////////////////////////////////////////////////////////////////////////////////////////// DeviceWifiInfo +void DeviceController::onAttributeRequest(const DeviceWifiInfoRequestData &) +{ + doGetWifiInfo(); +} + +/*! + * \brief DeviceController::doGetWifiInfo + * \details Calls the Wifi Info script + * \note This function is created to be able to call independently if needed in this class. + */ +void DeviceController::doGetWifiInfo() +{ + // ----- check that script exists. + QString script; + if ( checkError( DeviceError::checkScript(script, Scripts_Wifi_Info), _deviceWifiInfoResponse, script) ) + return; + + // ----- check if the process is not running + if ( _processWifiInfo.state() != QProcess::NotRunning ) { + checkError(DeviceError::eDevice_Scripts_Error_IsRunning, _deviceWifiInfoResponse); + return; + } + + // ----- run the process + int timeout_ms = 10000; + TimedProcess *timedProcess = new TimedProcess(&_processWifiInfo, script, timeout_ms, {}); + timedProcess->start(); + + MDeviceWifiInfoResponse model; + model._data.mCompleted = false; + model._data.mAccepted = false; + model._data.mMessage = tr("WiFi info started."); + emit didAttributeResponse(model.data()); +} + +/*! + * \brief DeviceController::processWifiInfoResponse + * \param vExitCode + * \param vStatus + */ +void DeviceController::processWifiInfoResponse(int vExitCode, QProcess::ExitStatus vStatus, QProcess::ProcessChannel vChannel) +{ + static MDeviceWifiInfoResponse model; + if ( vExitCode < 0 ) { + emit didAttributeResponse(model.data()); + switch (vChannel) { + case QProcess::StandardOutput : processWifiInfoReadyOut(model); break; + case QProcess::StandardError : processWifiInfoReadyErr(model); break; + } + } + else { + processWifiInfoComplete(model, vExitCode, vStatus); + emit didAttributeResponse(model.data()); + model._data.clear(); + } +}