Event objects Threading on Serial Port on Win32

G

Gabriel

David:
Tube el mismo problema que vos con el hilo del ejemplo de pyserial. Me
paso que en Linux andaba bien, obvio, pero tenia un pequeño
problemilla en Windows, también obvio.

Lo solucione de la siguiente manera:
Asi es el codigo original de la función ComPortThread

def ComPortThread(self):
"""Thread that handles the incomming traffic. Does the basic input
transformation (newlines) and generates an SerialRxEvent"""

while self.alive.isSet(): #loop while alive event is true
if self.ser.inWaiting() != 0:
text = self.ser.read()
event = SerialRxEvent(self.GetId(), text)
self.GetEventHandler().AddPendingEvent(event)


solo tiene que agregarle el siguiente bucle antes que nada:
while not self.alive.isSet():
pass

quedándote así dicha función...

def ComPortThread(self):
"""Thread that handles the incomming traffic. Does the basic input
transformation (newlines) and generates an SerialRxEvent"""
while not self.alive.isSet():
pass

while self.alive.isSet(): #loop while alive event is true
if self.ser.inWaiting() != 0:
text = self.ser.read()
event = SerialRxEvent(self.GetId(), text)
self.GetEventHandler().AddPendingEvent(event)

y listo... Con eso debería andar
Espero haber sido útil
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top