'IM FOLGENDEM HABE ICH DEIN PROGRAMM ETWAS UMSTRUKTURIERT. DADURCH KANNST DU DAS WIEDERHOLEN VON CODE VERMEIDEN!
'WENN DU FRAGEN ETC. HAST, KANNST DU MIR GERNE EINE E-MAIL SCHICKEN: timo-soechtig@hotmail.de
'IO_ini()
Grafikfenster()
' Zur Fehlerbehandlung: Ev. noch Textbox-Eingabe beschränken auf: 0-9 und ev. Kommapunkt .
'Ereignisse() ' besser global im MainProg als in Sub -> sonst ev. Parallelprozesse
Controls.ButtonClicked = Rel
Timer.Tick = Zeit
Sub IO_ini
c = LDIOWarrior.Initialise()
a = LDIOWarrior.GetSerialNumber(1)
b = LDIOWarrior.GetName(1)
EndSub
Sub Grafikfenster
GraphicsWindow.Title = "1.Warriorprogramm"
GraphicsWindow.BrushColor = "Black"
GraphicsWindow.DrawBoundText(420,20,200,c + " Gerät(e) angeschlossen")
GraphicsWindow.DrawBoundText(10,20,200,"Seriennummer: " + a)
GraphicsWindow.DrawBoundText(220,20,200,"Gerätename: " + b)
GraphicsWindow.DrawBoundText(30,80,50,"Rel 1")
Zeitbox = Controls.AddTextBox(80,80)
aus = Controls.AddButton ("Relais aus",350,70)
Controls.SetSize(a,150,30)
ge = Controls.AddButton("Gerät einschalten",350,120)
Controls.SetSize(ge,150,30)
ga = Controls.AddButton("Geräte trennen",350,170)
Controls.SetSize(ga,150,30)
s1 = Controls.AddButton("Start",250,70)
EndSub
Sub Ereignisse
Controls.ButtonClicked = Rel
Timer.Tick = Zeit
EndSub
Sub Rel
LCB = Controls.LastClickedButton 'Dadurch wird die Geschwindigkeit erhöht. Sonst müsste jedes Mal überprüft werden welcher der zuletzt geklickte Button ist. Bei einem so kleinem Programm fällt dies zwar kaum ins Gewicht, aber es ist gut wenn man sich dies für spätere, größere Projekte aneignet
TextWindow.WriteLine(LCB)
If LCB = s1 Then
Start()
ElseIf LCB = aus Then
Ausschalten()
ElseIf LCB = ga Then
'LDIOWarrior.Detatch()
ElseIf LCB = ge Then
'LDIOWarrior.Initialise()
EndIf
EndSub
Sub Zeit
TextWindow.WriteLine("Timer abgelaufen")
Timer.Pause()
Ausschalten()
EndSub