Wie kann ich ich per evtHandler (Enter oder Update) die letzte Zeile in eine Variable einlesen? Kann ich die Vergleiche in eine "Unterroutine" legen (wie bei VB) und wie kann ich diese von einem ButtonClick Event aufrufen? Anbei mein Code bis jetzt ... ICh hoffe ihr könnt mir helfen
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
RS232 senden und empfangen und auswerten Versuch 1
'''
#COMport = "/dev/ttyUSB0"
COMport = "COM37"
Baud = 38400
#*******Import Python Funktionen Anfang******************
import wx
from serialthread import *
#*******Import Python Funktionen Ende********************
class Window(wx.Frame):
def __init__(self, *args, **kwargs):
super(Window, self).__init__(*args, **kwargs)
self.InitUI()
def InitUI(self):
self.textbox=wx.TextCtrl(self, style = wx.TE_MULTILINE, pos = (5,5),size=(385, 100))
myfont = wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, False, u'Courier')
self.textbox.SetFont(myfont)
buttonOn=wx.Button(self, -1, "Start", pos=(100,230))
buttonOff=wx.Button(self, -1, "Stop", pos=(200,230))
menubar = wx.MenuBar() #Menue erstellen
self.SetMenuBar(menubar)#Menue zeichnen
#*******Filemenue Anfang*********************************
fileMenu = wx.Menu()
fileMenu.Append(wx.ID_NEW, '&New')
fileMenu.Append(wx.ID_OPEN, '&Open')
fileMenu.Append(wx.ID_SAVE, '&Save')
#*******Filemenue Ende***********************************
#*******Seperator Anfang********************************
fileMenu.AppendSeparator()
#*******Seperator Ende**********************************
#*******Importmenue Anfang*******************************
imp = wx.Menu()
fileMenu.AppendMenu(wx.ID_ANY, 'I&mport', imp)
imp.Append(wx.ID_ANY, 'Import Test1...')
imp.Append(wx.ID_ANY, 'Import Test2...')
imp.Append(wx.ID_ANY, 'Import TEst3...')
#*******Importmenue Ende*********************************
#*******Quitmenu Anfang**********************************
qmi = wx.MenuItem(fileMenu, wx.ID_EXIT, '&Quit\tCtrl+W')
fileMenu.AppendItem(qmi)
#*******Quitmenu Ende************************************
#*******Bindings Anfang**********************************
self.Bind(wx.EVT_MENU, self.OnQuit, qmi)
self.Bind(wx.EVT_IDLE, self.OnIdle)
self.Bind(wx.EVT_WINDOW_DESTROY, self.OnQuit)
buttonOn.Bind(wx.EVT_BUTTON, self.OnButtonOn)
buttonOff.Bind(wx.EVT_BUTTON, self.OnButtonOff)
#*******Bindings Ende************************************
menubar.Append(fileMenu, '&File')
#*******Fenster zeigen Anfang*****************************
self.SetSize((400, 400))
self.SetTitle('Flow Displayboard')
self.Centre()
self.Show(True)
#*******Fenster zeigen Ende********************************
# serial thread
self.serial_thread = Serialthread(COMport, Baud)
self.serial_thread.connect()
self.textbox.AppendText ("bereit\n")
self.textbox.AppendText ("ComPort: " + COMport + "\n")
def OnIdle( self, event):
# if nothing else to do, update text from message queue
while not self.serial_thread.msgQueue.empty():
msg=self.serial_thread.msgQueue.get()
self.textbox.AppendText(msg)
def OnButtonOn(self, event):
self.textbox.AppendText ("Start\n")
data = b"\xAA\x00\x00\x05\x00\x0A\x00\x00\x00\x00\x60\x01\x00\x00\x00\x00"
self.serial_thread.sCOM.write(data)
def OnButtonOff(self, event):
self.textbox.AppendText ("Stop\n")
data = b"\xAA\x00\x00\x05\x00\x0A\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00"
self.serial_thread.sCOM.write(data)
#script2run = "c:\simple.py"
#execfile( script2run )
self.textbox.SetBackgroundColour("green")
self.textbox.SetFocus()
self.textbox.SetValue("Hallo Welt\n")
time.sleep(10)
value = self.textbox.GetValue()
self.textbox.AppendText (value)
def OnQuit(self, e):
self.serial_thread.disconnect()
time.sleep(0.5)
self.Close()
def main():
ex = wx.App(redirect = False)
Window(None)
ex.MainLoop()
if __name__ == '__main__':
main()