Problema adquisicion de datos y protector de pantalla (windows)
Publicado por Javier (1 intervención) el 17/07/2013 20:42:56
Hola buen día, soy nuevo en el foro, les comento un problema que tuve que quisiera solucionar...
Estoy programando un adquisidor de datos para unos controladores de temperatura y un LVDT (para medir desplazamientos o deformaciones).
Los datos son enviados desde un equipo en forma continua por puerto serie y se reciben en la computadora.. Diseñe una interfaz grafica utilizando PyQt4. hay dos Qthreads corriendo uno que se encarga de graficar una función utilizando matplotlib a medida que se van adquiriendo los datos . y otro que se encarga de recibir los datos y guardar los mismos en un archivo. los dos Qthread son inicializados en la clase de la interfaz grafica.
El programa en principio anda bien y hace todo lo que deberia, mi problema es que si el protector de pantallas de windows se inicia al volver a la computadora .. me doy cuenta que el trhead que adquiere los datos por puerto serie dejo de funcionar .. o sea deja de adquirir datos al momento que se inicia el protector de pantallas.
Les paso el codigo del trhead en particular .. el resto es medio largo pero lo pudo pasar si lo necesitan ..
Saludos !!
PD:Como se hace para que el codigo quede en formato de codigo en un post ?
Estoy programando un adquisidor de datos para unos controladores de temperatura y un LVDT (para medir desplazamientos o deformaciones).
Los datos son enviados desde un equipo en forma continua por puerto serie y se reciben en la computadora.. Diseñe una interfaz grafica utilizando PyQt4. hay dos Qthreads corriendo uno que se encarga de graficar una función utilizando matplotlib a medida que se van adquiriendo los datos . y otro que se encarga de recibir los datos y guardar los mismos en un archivo. los dos Qthread son inicializados en la clase de la interfaz grafica.
El programa en principio anda bien y hace todo lo que deberia, mi problema es que si el protector de pantallas de windows se inicia al volver a la computadora .. me doy cuenta que el trhead que adquiere los datos por puerto serie dejo de funcionar .. o sea deja de adquirir datos al momento que se inicia el protector de pantallas.
Les paso el codigo del trhead en particular .. el resto es medio largo pero lo pudo pasar si lo necesitan ..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class reader ( QtCore.QThread ):
'''Con esta clase que herada las propiedades de hilos Qt vamos a crear un hilo que se va a encargar de tomar los datos del dispositivo. '''
def __init__( self, parent = None ):
QtCore.QThread.__init__( self, parent )
self.exiting = False
self.message = ''
def read( self, port, baudrate, delay_time ):
self.ser = serial.Serial( port = port,
baudrate = baudrate,
parity = serial.PARITY_NONE,
stopbits = 1,
bytesize = 8,
timeout = 2 )
self.delay_time = delay_time
self.start()
def run( self ):
"""Proceso de Scan"""
from time import sleep
self.ser.close()
self.ser.open()
time_stamp = 0
while not self.exiting:
sleep( self.delay_time )
time_stamp = time_stamp + self.delay_time
if self.ser.inWaiting() > 0:
self.ser.read( self.ser.inWaiting() )
line = self.ser.readline()
l = len( line )
if l == 14:
# La salida que me manda el puerto es una cadena con 14 caracteres
temp_data = line[0:4] # Los 5 primeros caracteres me daban un valor de temperatura
lvdt_data = line[6:12] # Los otros restantes un valor de voltaje
data = [time_stamp, temp_data, lvdt_data]
self.emit( QtCore.SIGNAL ( "readsignal(PyQt_PyObject)" ), data )
elif len( line ) == 0: # si deja de recibir datos sale? del programita...
self.ser.close() # cierro el puerto
self.exiting = True
else:
pass
self.ser.close()
self.exit()
def __del__( self ):
self.exiting = True
self.wait()
Saludos !!
PD:Como se hace para que el codigo quede en formato de codigo en un post ?
Valora esta pregunta


0