11 #include <ESP8266WiFi.h>
18#include "SinricProQueue.h"
19#include "SinricProConfig.h"
20#include "SinricProDebug.h"
22#include "SinricProNamespace.h"
23namespace SINRICPRO_NAMESPACE {
27 void begin(SinricProQueue_t* receiveQueue);
29 void sendMessage(String &message);
34 SinricProQueue_t* receiveQueue;
37void UdpListener::begin(SinricProQueue_t* receiveQueue) {
38 this->receiveQueue = receiveQueue;
40 _udp.beginMulticast(WiFi.localIP(), UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
43 _udp.beginMulticast(UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
47void UdpListener::handle() {
48 int len = _udp.parsePacket();
52 char* buf = (
char*) malloc(len+1);
53 memset(buf, 0, len+1);
55 SinricProMessage* request =
new SinricProMessage(IF_UDP, buf);
56 DEBUG_SINRIC(
"[SinricPro:UDP]: receiving request\r\n%s\r\n", buf);
58 receiveQueue->push(request);
62void UdpListener::sendMessage(String &message) {
63 _udp.beginPacket(_udp.remoteIP(), _udp.remotePort());
68 _udp.beginMulticast(WiFi.localIP(), UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
71 _udp.beginMulticast(UDP_MULTICAST_IP, UDP_MULTICAST_PORT);
75void UdpListener::stop() {