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() {