Von meinem Multimeter wird ein String übergeben den ich im Sekundentakt ausgeben möchte.
Das Auslesen vom Multimeter klappt hervorragend.
Da ich merke, das der Einstieg in PB für mich doch nicht so einfach ist wie ich gedacht hatte (komme von der SPS Programmierung in C), zerlege ich Gesamt-Konzept in kleine Abschnitte, die ich dann jedes für sich löse und am Schluß alles zusammenfüge.
Das ist glaube ich das Beste um die einzelnen Funktionalitäten in PB zu verstehen.
Mein momentaner Teilbereich ist die periodische Ausgabe (sekündlich) eines Strings nach Anklickens eines Start-Buttons, sowie das Beenden der Ausgabe bei klick auf den Stop-Button.
Funktioniert: Mir fällt nun folgendes auf:
Wenn ich die Repeat Schleife auskommentiere, also nur noch die If OpenWindow Abfrage abgearbeitet wird, wird nur ein leeres Fenster angezeigt.
Warum?
und was löst die Darstellung der ButtonGadgets aus?
Nach meinem Verständnis müsste die If OpenWindows Abfrage zur korrekten Darstellung des Fensters doch ausreichen.
Code: Alles auswählen
MessString.s ="TE 0022 +CR" ;String wie er von Messgerät gesendet wird
Start.b
Stop.b
StartTime.l
StopTime.l
Timer.l = 0
StartTimer.l = 0
Zaehler.l
If OpenWindow(0,100,100,640,480,"Mess-Wert-Erfassug",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ButtonGadget(1,20,20,100,20,"Start")
ButtonGadget(2,20,80,100,20,"Stop")
ListViewGadget(3,150,20,400,200)
EndIf
Repeat
EventID = WindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = #PB_Event_Gadget
If EventGadget()=1
Start = 1
Stop = 0
AddGadgetItem(3,-1,"Starte Aufzeichnung Start="+Str(Start)+" Stop= "+Str(Stop))
EndIf
If EventGadget()=2
Start = 0
Stop = 1
Zaehler = 0
StartTimer = 0
AddGadgetItem(3,-1,"Aufzeichnung beendet Start="+Str(Start)+" Stop= "+Str(Stop)+" Zaehler = "+Str(Zaehler))
EndIf
EndIf
If Start = 1
If StartTimer = 0
StartTime = ElapsedMilliseconds()
StopTime = StartTime + 1000
StartTimer = 1
EndIf
If StartTimer = 1
StartTime = ElapsedMilliseconds()
If StartTime >= StopTime
Zaehler = Zaehler + 1
AddGadgetItem(3,-1,"String= "+ MessString + " Zaehler= "+Str(Zaehler)+" Start "+Str(StartTime)+" Stop "+Str(StopTime))
StartTimer = 0
EndIf
EndIf
EndIf
Until Quit=1
;Delay(4000)
End