Update datetime plugin

master
Michael Zanetti 2019-09-17 19:13:11 +02:00
parent 7d0a6f9912
commit fe7dd62fa8
2 changed files with 26 additions and 22 deletions

View File

@ -48,19 +48,23 @@ DevicePluginDateTime::DevicePluginDateTime() :
connect(m_timer, &QTimer::timeout, this, &DevicePluginDateTime::onSecondChanged); connect(m_timer, &QTimer::timeout, this, &DevicePluginDateTime::onSecondChanged);
} }
Device::DeviceSetupStatus DevicePluginDateTime::setupDevice(Device *device) void DevicePluginDateTime::setupDevice(DeviceSetupInfo *info)
{ {
Device *device = info->device();
// check timezone // check timezone
if(!m_timeZone.isValid()){ if(!m_timeZone.isValid()){
qCWarning(dcDateTime) << "Invalid time zone."; qCWarning(dcDateTime) << "Invalid time zone.";
return Device::DeviceSetupStatusFailure; info->finish(Device::DeviceErrorInvalidParameter);
return;
} }
// date // date
if (device->deviceClassId() == todayDeviceClassId) { if (device->deviceClassId() == todayDeviceClassId) {
if (m_todayDevice != 0) { if (m_todayDevice != 0) {
qCWarning(dcDateTime) << "There is already a date device or not deleted correctly! this should never happen!!"; qCWarning(dcDateTime) << "There is already a date device or not deleted correctly! this should never happen!!";
return Device::DeviceSetupStatusFailure; info->finish(Device::DeviceErrorHardwareNotAvailable);
return;
} }
m_todayDevice = device; m_todayDevice = device;
qCDebug(dcDateTime) << "Create today device: current time" << m_currentDateTime.currentDateTime().toString(); qCDebug(dcDateTime) << "Create today device: current time" << m_currentDateTime.currentDateTime().toString();
@ -97,7 +101,7 @@ Device::DeviceSetupStatus DevicePluginDateTime::setupDevice(Device *device)
QTime(device->paramValue(countdownDeviceHoursParamTypeId).toInt(), QTime(device->paramValue(countdownDeviceHoursParamTypeId).toInt(),
device->paramValue(countdownDeviceMinutesParamTypeId).toInt(), device->paramValue(countdownDeviceMinutesParamTypeId).toInt(),
device->paramValue(countdownDeviceSecondsParamTypeId).toInt()), device->paramValue(countdownDeviceSecondsParamTypeId).toInt()),
device->paramValue(countdownDeviceRepeatingParamTypeId).toBool()); device->paramValue(countdownDeviceRepeatingParamTypeId).toBool());
connect(countdown, &Countdown::countdownTimeout, this, &DevicePluginDateTime::onCountdownTimeout); connect(countdown, &Countdown::countdownTimeout, this, &DevicePluginDateTime::onCountdownTimeout);
connect(countdown, &Countdown::runningStateChanged, this, &DevicePluginDateTime::onCountdownRunningChanged); connect(countdown, &Countdown::runningStateChanged, this, &DevicePluginDateTime::onCountdownRunningChanged);
@ -108,7 +112,7 @@ Device::DeviceSetupStatus DevicePluginDateTime::setupDevice(Device *device)
m_timer->start(); m_timer->start();
return Device::DeviceSetupStatusSuccess; info->finish(Device::DeviceErrorNoError);
} }
void DevicePluginDateTime::postSetupDevice(Device *device) void DevicePluginDateTime::postSetupDevice(Device *device)
@ -149,23 +153,23 @@ void DevicePluginDateTime::deviceRemoved(Device *device)
//startMonitoringAutoDevices(); //startMonitoringAutoDevices();
} }
Device::DeviceError DevicePluginDateTime::executeAction(Device *device, const Action &action) void DevicePluginDateTime::executeAction(DeviceActionInfo *info)
{ {
if (device->deviceClassId() == countdownDeviceClassId) { if (info->device()->deviceClassId() != countdownDeviceClassId) {
Countdown *countdown = m_countdowns.value(device); info->finish(Device::DeviceErrorDeviceClassNotFound);
if (action.actionTypeId() == countdownStartActionTypeId) { return;
countdown->start();
return Device::DeviceErrorNoError;
} else if (action.actionTypeId() == countdownRestartActionTypeId) {
countdown->restart();
return Device::DeviceErrorNoError;
} else if (action.actionTypeId() == countdownStopActionTypeId) {
countdown->stop();
return Device::DeviceErrorNoError;
}
return Device::DeviceErrorActionTypeNotFound;
} }
return Device::DeviceErrorNoError;
Countdown *countdown = m_countdowns.value(info->device());
if (info->action().actionTypeId() == countdownStartActionTypeId) {
countdown->start();
} else if (info->action().actionTypeId() == countdownRestartActionTypeId) {
countdown->restart();
} else if (info->action().actionTypeId() == countdownStopActionTypeId) {
countdown->stop();
}
info->finish(Device::DeviceErrorNoError);
} }
void DevicePluginDateTime::startMonitoringAutoDevices() void DevicePluginDateTime::startMonitoringAutoDevices()

View File

@ -43,11 +43,11 @@ class DevicePluginDateTime : public DevicePlugin
public: public:
explicit DevicePluginDateTime(); explicit DevicePluginDateTime();
Device::DeviceSetupStatus setupDevice(Device *device) override; void setupDevice(DeviceSetupInfo *info) override;
void postSetupDevice(Device *device) override; void postSetupDevice(Device *device) override;
void deviceRemoved(Device *device) override; void deviceRemoved(Device *device) override;
Device::DeviceError executeAction(Device *device, const Action &action) override; void executeAction(DeviceActionInfo *info) override;
void startMonitoringAutoDevices() override; void startMonitoringAutoDevices() override;