Skip to content

Commit 80783db

Browse files
committed
changed eventWaitTime
1 parent 82d0ea0 commit 80783db

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/SinricProDevice.h

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,12 @@ class SinricProDevice {
2424
DynamicJsonDocument prepareEvent(const char* deviceId, const char* action, const char* cause);
2525
private:
2626
EventSender* eventSender;
27-
unsigned long lastEventMillis;
2827
unsigned long eventWaitTime;
2928
std::map<String, unsigned long> eventFilter;
3029
};
3130

3231
SinricProDevice::SinricProDevice(const char* newDeviceId, unsigned long eventWaitTime) :
3332
eventSender(nullptr),
34-
lastEventMillis(0),
3533
eventWaitTime(eventWaitTime) {
3634
deviceId = strdup(newDeviceId);
3735
if (this->eventWaitTime < 100) this->eventWaitTime = 100;
@@ -56,17 +54,17 @@ DynamicJsonDocument SinricProDevice::prepareEvent(const char* deviceId, const ch
5654

5755
bool SinricProDevice::sendEvent(JsonDocument& event) {
5856
unsigned long actualMillis = millis();
59-
/*
60-
if (actualMillis - lastEventMillis < eventWaitTime) return;
61-
if (eventSender) eventSender->sendEvent(event);
62-
lastEventMillis = actualMillis;
63-
*/
6457
String eventName = event["payload"]["action"] | ""; // get event name
58+
59+
if (eventFilter.find(eventName) == eventFilter.end()) { // if eventFilter is not initialized
60+
eventFilter[eventName] = -eventWaitTime; // initialize eventFilter
61+
}
62+
6563
unsigned long lastEventMillis = eventFilter[eventName] | 0; // get the last timestamp for event
6664
if (actualMillis - lastEventMillis < eventWaitTime) return false; // if last event was before waitTime return...
6765

6866
if (eventSender) eventSender->sendEvent(event); // send event
69-
eventFilter[eventName] = actualMillis; // set lastEventTime to now
67+
eventFilter[eventName] = actualMillis; // update lastEventTime
7068
return true;
7169
}
7270
#endif

0 commit comments

Comments
 (0)