Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/12/2015, 09:41
pelma
 
Fecha de Ingreso: diciembre-2015
Mensajes: 3
Antigüedad: 8 años, 4 meses
Puntos: 0
Monitor puerto serie.

Hola.
Tengo hecho un script python-tk, en el cual monitoreo puerto serie de arduino, una webcam y unas alarmas de mails. Funciona a la perfeccion.
Se me ocurrio pasarla a wxpython y me encuentro en un atasco. busque y no comprendo o algo me pasa.
pongo un trozo de monitoreo de una temperatura.
Solo capturo la primera vez, se queda en ella. No refresca, igual un proceso o algo asi.
Gracias por todo que aprendi por aqui.
Código:
#!/usr/bin/python
# -*- coding: utf-8 -*-

import wx
import serial
from time import *

ser = serial.Serial('/dev/ttyACM0', 9600)


class Termometro(wx.Frame):
    def __init__(self, prnt):
        wx.Frame.__init__(self, parent=prnt, title='Termometro')
        self.SetClientSize(wx.Size(380, 160))
        peso = wx.StaticText(self, label="TEMPERATURA: ", pos=(30, 45))
        peso.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD))
        self.leepeso = wx.TextCtrl(self, value="", pos=(170, 30), size=(160, 50))
        self.leepeso.SetFont(wx.Font(22, wx.SWISS, wx.NORMAL, wx.BOLD))
        self.leepeso.SetForegroundColour("red")
        self.lee()

    def lee(self):
        dato = ser.readline()  # lo leido de arduino lo trata como cadena
        self.leepeso.SetValue(str(dato[0:5]))  # dato a mostrar por el TextCtrl

if __name__ == '__main__':
    app = wx.App()
    frame = Termometro(None)
    frame.Show()
    app.MainLoop()

Última edición por razpeitia; 06/12/2015 a las 14:52