diff --git a/udpcommander/devicepluginudpcommander.cpp b/udpcommander/devicepluginudpcommander.cpp index 51f97f65..b91fb048 100644 --- a/udpcommander/devicepluginudpcommander.cpp +++ b/udpcommander/devicepluginudpcommander.cpp @@ -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(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); } diff --git a/udpcommander/devicepluginudpcommander.json b/udpcommander/devicepluginudpcommander.json index c9d2a0a5..5c660715 100644 --- a/udpcommander/devicepluginudpcommander.json +++ b/udpcommander/devicepluginudpcommander.json @@ -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" + } + ] } ] },