SinricPro Library
Loading...
Searching...
No Matches
LockController.h
1#pragma once
2
3#include "../SinricProRequest.h"
4#include "../EventLimiter.h"
5#include "../SinricProStrings.h"
6
7#include "../SinricProNamespace.h"
8namespace SINRICPRO_NAMESPACE {
9
10FSTR(LOCK, setLockState); // "setLockState"
11FSTR(LOCK, state); // "state"
12FSTR(LOCK, LOCKED); // "LOCKED"
13FSTR(LOCK, UNLOCKED); // "UNLOCKED"
14FSTR(LOCK, lock); // "lock"
15FSTR(LOCK, JAMMED); // "JAMMED"
16
36using LockStateCallback = std::function<bool(const String &, bool &)>; // void onLockState(const DeviceId &deviceId, bool& lockState);
37
38
43template <typename T>
45 public:
47
50
51 protected:
52 bool handleLockController(SinricProRequest &request);
53
54 private:
55 EventLimiter event_limiter;
56 LockStateCallback lockStateCallback;
57};
58
59template <typename T>
61: event_limiter(EVENT_LIMIT_STATE) {
62 T* device = static_cast<T*>(this);
63 device->registerRequestHandler(std::bind(&LockController<T>::handleLockController, this, std::placeholders::_1));
64}
65
73template <typename T>
75 lockStateCallback = cb;
76}
77
87template <typename T>
97
98template <typename T>
100 T* device = static_cast<T*>(this);
101
102 bool success = false;
103
104 if (request.action == FSTR_LOCK_setLockState && lockStateCallback) {
105 bool lockState = request.request_value[FSTR_LOCK_state] == FSTR_LOCK_lock ? true : false;
106 success = lockStateCallback(device->deviceId, lockState);
108 return success;
109 }
110 return success;
111}
112
113} // SINRICPRO_NAMESPACE
114
115template <typename T>
116using LockController = SINRICPRO_NAMESPACE::LockController<T>;
AirQuality.
Definition AirQualitySensor.h:19
LockController.
Definition LockController.h:44
bool sendLockStateEvent(bool state, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send lockState event to SinricPro Server indicating actual lock state.
Definition LockController.h:88
void onLockState(LockStateCallback cb)
Set callback function for setLockState request.
Definition LockController.h:74
std::function< bool(const String &, bool &)> LockStateCallback
Callback definition for onLockState function.
Definition LockController.h:36