8 #ifndef __SINRIC_PRO_UDP_H__
9 #define __SINRIC_PRO_UDP_H__
12 #include <ESP8266WiFi.h>
19 #include "SinricProQueue.h"
23 void begin(SinricProQueue_t* receiveQueue);
25 void sendMessage(String &message);
29 SinricProQueue_t* receiveQueue;
32 void udpListener::begin(SinricProQueue_t* receiveQueue) {
33 this->receiveQueue = receiveQueue;
35 _udp.beginMulticast(WiFi.localIP(), UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
38 _udp.beginMulticast(UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
42 void udpListener::handle() {
43 if (!_udp.available())
return;
44 int len = _udp.parsePacket();
48 int n = _udp.read(buffer, 1024);
50 SinricProMessage* request =
new SinricProMessage(IF_UDP, buffer);
51 DEBUG_SINRIC(
"[SinricPro:UDP]: receiving request\r\n");
52 receiveQueue->push(request);
56 void udpListener::sendMessage(String &message) {
57 _udp.beginPacket(_udp.remoteIP(), _udp.remotePort());
62 _udp.beginMulticast(WiFi.localIP(), UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
65 _udp.beginMulticast(UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
78 void udpListener::stop() {