simplify udp receiver
This commit is contained in:
parent
1704a818ab
commit
678258defb
@ -80,6 +80,7 @@ DeviceManager::DeviceSetupStatus DevicePluginUdpCommander::setupDevice(Device *d
|
||||
delete udpSocket;
|
||||
return DeviceManager::DeviceSetupStatusFailure;
|
||||
}
|
||||
qCDebug(dcUdpCommander()) << "Listening on port" << port;
|
||||
|
||||
connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams()));
|
||||
m_receiverList.insert(udpSocket, device);
|
||||
@ -131,11 +132,14 @@ void DevicePluginUdpCommander::deviceRemoved(Device *device)
|
||||
|
||||
void DevicePluginUdpCommander::readPendingDatagrams()
|
||||
{
|
||||
qCDebug(dcUdpCommander()) << "UDP datagram received";
|
||||
QUdpSocket *socket= static_cast<QUdpSocket *>(sender());
|
||||
Device *device = m_receiverList.value(socket);
|
||||
|
||||
if (!device)
|
||||
if (!device) {
|
||||
qCWarning(dcUdpCommander()) << "Received a datagram from a socket we don't know";
|
||||
return;
|
||||
}
|
||||
|
||||
QByteArray datagram;
|
||||
QHostAddress sender;
|
||||
@ -146,14 +150,13 @@ void DevicePluginUdpCommander::readPendingDatagrams()
|
||||
socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
|
||||
}
|
||||
|
||||
device->setStateValue(udpReceiverInputDataStateTypeId, datagram);
|
||||
qCDebug(dcUdpCommander()) << device->name() << "got command from" << sender.toString() << senderPort;
|
||||
Event ev = Event(udpReceiverDataReceivedEventTypeId, device->id());
|
||||
ParamList params;
|
||||
params.append(Param(udpReceiverDataParamTypeId, datagram));
|
||||
ev.setParams(params);
|
||||
emit emitEvent(ev);
|
||||
|
||||
if (datagram == device->paramValue(udpReceiverCommandParamTypeId).toByteArray() ||
|
||||
datagram == device->paramValue(udpReceiverCommandParamTypeId).toByteArray() + "\n") {
|
||||
qCDebug(dcUdpCommander()) << device->name() << "got command from" << sender.toString() << senderPort;
|
||||
emit emitEvent(Event(udpReceiverCommandReceivedEventTypeId, device->id()));
|
||||
|
||||
// Send response for verification
|
||||
socket->writeDatagram("OK\n", sender, senderPort);
|
||||
}
|
||||
// Send response for verification
|
||||
socket->writeDatagram("OK\n", sender, senderPort);
|
||||
}
|
||||
|
||||
@ -24,30 +24,21 @@
|
||||
"minValue": 0,
|
||||
"maxValue": 65535,
|
||||
"defaultValue": 4242
|
||||
},
|
||||
{
|
||||
"id": "d0f29961-1624-4b91-a0e8-9b1cc86c44c7",
|
||||
"name": "command",
|
||||
"displayName": "Command",
|
||||
"type": "QString",
|
||||
"defaultValue": "Hello"
|
||||
}
|
||||
],
|
||||
"stateTypes":[
|
||||
{
|
||||
"id": "065a1a0a-d324-4ae6-a461-bef8143e8795",
|
||||
"name": "inputData",
|
||||
"displayName": "Received data",
|
||||
"displayNameEvent": "Received data changed",
|
||||
"type": "QString",
|
||||
"defaultValue": ""
|
||||
}
|
||||
],
|
||||
"eventTypes": [
|
||||
{
|
||||
"id": "5fecbba3-ffbb-456b-872c-a2f571c681cb",
|
||||
"name": "commandReceived",
|
||||
"displayName": "Command received"
|
||||
"name": "dataReceived",
|
||||
"displayName": "Data received",
|
||||
"paramTypes": [
|
||||
{
|
||||
"id": "93c379e3-4707-46b7-9be0-2d6ff88f5d21",
|
||||
"name": "data",
|
||||
"displayName": "Data",
|
||||
"type": "QString"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user