simplify udp receiver
This commit is contained in:
parent
1704a818ab
commit
678258defb
@ -80,6 +80,7 @@ DeviceManager::DeviceSetupStatus DevicePluginUdpCommander::setupDevice(Device *d
|
|||||||
delete udpSocket;
|
delete udpSocket;
|
||||||
return DeviceManager::DeviceSetupStatusFailure;
|
return DeviceManager::DeviceSetupStatusFailure;
|
||||||
}
|
}
|
||||||
|
qCDebug(dcUdpCommander()) << "Listening on port" << port;
|
||||||
|
|
||||||
connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams()));
|
connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams()));
|
||||||
m_receiverList.insert(udpSocket, device);
|
m_receiverList.insert(udpSocket, device);
|
||||||
@ -131,11 +132,14 @@ void DevicePluginUdpCommander::deviceRemoved(Device *device)
|
|||||||
|
|
||||||
void DevicePluginUdpCommander::readPendingDatagrams()
|
void DevicePluginUdpCommander::readPendingDatagrams()
|
||||||
{
|
{
|
||||||
|
qCDebug(dcUdpCommander()) << "UDP datagram received";
|
||||||
QUdpSocket *socket= static_cast<QUdpSocket *>(sender());
|
QUdpSocket *socket= static_cast<QUdpSocket *>(sender());
|
||||||
Device *device = m_receiverList.value(socket);
|
Device *device = m_receiverList.value(socket);
|
||||||
|
|
||||||
if (!device)
|
if (!device) {
|
||||||
|
qCWarning(dcUdpCommander()) << "Received a datagram from a socket we don't know";
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QByteArray datagram;
|
QByteArray datagram;
|
||||||
QHostAddress sender;
|
QHostAddress sender;
|
||||||
@ -146,14 +150,13 @@ void DevicePluginUdpCommander::readPendingDatagrams()
|
|||||||
socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
|
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() ||
|
// Send response for verification
|
||||||
datagram == device->paramValue(udpReceiverCommandParamTypeId).toByteArray() + "\n") {
|
socket->writeDatagram("OK\n", sender, senderPort);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,30 +24,21 @@
|
|||||||
"minValue": 0,
|
"minValue": 0,
|
||||||
"maxValue": 65535,
|
"maxValue": 65535,
|
||||||
"defaultValue": 4242
|
"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": [
|
"eventTypes": [
|
||||||
{
|
{
|
||||||
"id": "5fecbba3-ffbb-456b-872c-a2f571c681cb",
|
"id": "5fecbba3-ffbb-456b-872c-a2f571c681cb",
|
||||||
"name": "commandReceived",
|
"name": "dataReceived",
|
||||||
"displayName": "Command received"
|
"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