Dec-03-2019, 09:50 AM
Hello everyone,
Before I get to my actual problem, here is some background for the project in which this problem occurs:
I am trying to control a microcontroller, based on the data coming from a sensor. This sensor is not compatible with the microcontroller, since it is a fibre optic sensor. An external device, an interrogator, has to be used to extract the data from the sensor. This interrogator will send data to an included software on my laptop.
I traced the datastream with Wireshark and decoded the sent bytes. The dataprotocol used for this data is UDP.
Now the problem: I need to read the incoming data using python so I can make the microcontroller respond to changing sensorvalues. The interrogator sends the data to 10.0.0.37 port 30002 from 10.0.0.150 port 30071. If I kill the included software with taskmanager, the port opens up for python and the datastream continues according to Wireshark. However, my code does not read the data. (code below). The incoming data are UDP packets of 1488 bytes for the total package and 1444 bytes for the actual data.
Before I get to my actual problem, here is some background for the project in which this problem occurs:
I am trying to control a microcontroller, based on the data coming from a sensor. This sensor is not compatible with the microcontroller, since it is a fibre optic sensor. An external device, an interrogator, has to be used to extract the data from the sensor. This interrogator will send data to an included software on my laptop.
I traced the datastream with Wireshark and decoded the sent bytes. The dataprotocol used for this data is UDP.
Now the problem: I need to read the incoming data using python so I can make the microcontroller respond to changing sensorvalues. The interrogator sends the data to 10.0.0.37 port 30002 from 10.0.0.150 port 30071. If I kill the included software with taskmanager, the port opens up for python and the datastream continues according to Wireshark. However, my code does not read the data. (code below). The incoming data are UDP packets of 1488 bytes for the total package and 1444 bytes for the actual data.
import socket import time port = 30002 # Port to receive data on bufferSize = 2048 # buffer size s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(('',port)) s.setblocking(0) while(1): try: result = select.select([s],[],[]) msg = result[0][0].recv(bufferSize) print (msg) time.sleep(1) except: print('failed to receive data') time.sleep(1)Does anybody have any suggestions how to collect the data from port 30002?