Fix processing of multiple UDP datagrams in one go
parent
9f68b37e50
commit
b4b1f663b9
|
|
@ -116,15 +116,16 @@ void IntegrationPluginUdpCommander::readPendingDatagrams()
|
||||||
while (socket->hasPendingDatagrams()) {
|
while (socket->hasPendingDatagrams()) {
|
||||||
datagram.resize(socket->pendingDatagramSize());
|
datagram.resize(socket->pendingDatagramSize());
|
||||||
socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
|
socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
|
||||||
|
qCDebug(dcUdpCommander()) << "Incoming datatram" << datagram << "on" << thing->name() << "from" << sender.toString() << senderPort;
|
||||||
|
|
||||||
|
Event ev = Event(udpReceiverTriggeredEventTypeId, thing->id());
|
||||||
|
ParamList params;
|
||||||
|
params.append(Param(udpReceiverTriggeredEventDataParamTypeId, datagram));
|
||||||
|
ev.setParams(params);
|
||||||
|
emit emitEvent(ev);
|
||||||
|
|
||||||
|
// Send response for verification
|
||||||
|
socket->writeDatagram("OK\n", sender, senderPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
qCDebug(dcUdpCommander()) << thing->name() << "got command from" << sender.toString() << senderPort;
|
|
||||||
Event ev = Event(udpReceiverTriggeredEventTypeId, thing->id());
|
|
||||||
ParamList params;
|
|
||||||
params.append(Param(udpReceiverTriggeredEventDataParamTypeId, datagram));
|
|
||||||
ev.setParams(params);
|
|
||||||
emit emitEvent(ev);
|
|
||||||
|
|
||||||
// Send response for verification
|
|
||||||
socket->writeDatagram("OK\n", sender, senderPort);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue