3#include "../SinricProRequest.h"
4#include "../EventLimiter.h"
5#include "../SinricProStrings.h"
7#include "../SinricProNamespace.h"
8namespace SINRICPRO_NAMESPACE {
10FSTR(START_STOP, start);
11FSTR(START_STOP, pause);
12FSTR(START_STOP, setStartStop);
13FSTR(START_STOP, setPauseUnpause);
92 bool handleStartStopController(SinricProRequest &
request);
95 EventLimiter event_limiter;
102:event_limiter(EVENT_LIMIT_STATE) {
103 T*
device =
static_cast<T*
>(
this);
122 if (event_limiter)
return false;
123 T*
device =
static_cast<T*
>(
this);
140 if (event_limiter)
return false;
141 T*
device =
static_cast<T*
>(
this);
151 T*
device =
static_cast<T*
>(
this);
162 if (pauseUnpauseCallback && request.action == FSTR_START_STOP_setPauseUnpause) {
163 bool pause = request.request_value[FSTR_START_STOP_pause];
164 success = pauseUnpauseCallback(device->deviceId, pause);
165 request.response_value[FSTR_START_STOP_pause] = pause;
175using StartStopController = SINRICPRO_NAMESPACE::StartStopController<T>;
AirQuality.
Definition AirQualitySensor.h:19
StartStopController class to handle start/stop and pause/unpause functionality.
Definition StartStopController.h:55
std::function< bool(const String &, bool &)> StartStopCallback
Definition for onStartStop callback.
Definition StartStopController.h:28
std::function< bool(const String &, bool &)> PauseUnpauseCallback
Definition for onPauseUnpause callback.
Definition StartStopController.h:44