-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintegrationplugingridsupport.cpp
More file actions
46 lines (40 loc) · 1.7 KB
/
integrationplugingridsupport.cpp
File metadata and controls
46 lines (40 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "integrationplugingridsupport.h"
#include "integrations/thing.h"
#include "plugininfo.h"
#include <QDebug>
IntegrationPluginGridSupport::IntegrationPluginGridSupport() { }
IntegrationPluginGridSupport::~IntegrationPluginGridSupport() { }
void IntegrationPluginGridSupport::setupThing(ThingSetupInfo* info)
{
qCDebug(dcGridsupport) << "Setup thing" << info->thing()->name() << info->thing()->params();
if (!m_pluginTimer) {
m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(60 * 60);
connect(m_pluginTimer, &PluginTimer::timeout, this,
&IntegrationPluginGridSupport::onPluginTimer);
}
info->finish(Thing::ThingErrorNoError);
}
void IntegrationPluginGridSupport::thingRemoved(Thing* thing)
{
Q_UNUSED(thing)
if (m_pluginTimer && myThings().isEmpty()) {
hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer);
m_pluginTimer = nullptr;
}
}
void IntegrationPluginGridSupport::executeAction(ThingActionInfo* info)
{
if (info->action().actionTypeId() == gridsupportPlimActionTypeId) {
float plim = info->action().paramValue(gridsupportPlimActionPlimParamTypeId).toFloat();
info->thing()->setStateValue(gridsupportPlimStateTypeId, plim);
info->finish(Thing::ThingErrorNoError);
} else if (info->action().actionTypeId() == gridsupportPlimStatusActionTypeId) {
QString value = info->action().paramValue(gridsupportPlimStatusActionPlimStatusParamTypeId).toString();
info->thing()->setStateValue(gridsupportPlimStatusStateTypeId, value);
info->finish(Thing::ThingErrorNoError);
}
}
void IntegrationPluginGridSupport::onPluginTimer()
{
// Periodic timer logic
}