Hallo,
ich dabei mein Projekt zu optimieren und möchte in diesem Zusammenhang die Verwendung von Application.DoEvents ersetzen.
Zur Erklärung:
Mit ACBPort.ACB_out = "C GAP 3,0" wird ein Befehl über eine Serielle Schnittstelle gesendet und in Motorantwort ein Wert zurückgegeben.
In der Do Loop Schleife gibt es dann zwei Abbruchbedingungen - Ref Punkt gefunden oder manueller Abbruch über _Rotor_init.
Bedingung !!!
Erst wenn der Ref Punkt gefunden wurde darf dass Proggy fortgesetzt werden - ist wie beim Rechner booten - erst wenn hochgefahren wurde kann ich was machen
ich dabei mein Projekt zu optimieren und möchte in diesem Zusammenhang die Verwendung von Application.DoEvents ersetzen.
VB.NET-Quellcode
- 'Rotor Referenzpunkt suchen
- Private Sub Ref_init_Rotor()
- Do
- ACBPort.ACB_out = "C GAP 3,0" 'Ref-Punkt Rotor anfragen
- Motorantwort = ACBPort.ACB_in
- If Motorantwort.Length < 7 Then
- Motorantwort = "ERROR ROTOR"
- End If
- System.Threading.Thread.Sleep(500) 'Zeit Polling
- Application.DoEvents() '< Böse Funktion
- Loop Until Motorantwort.Substring(7, 1) = "0" Or _Rotor_init = False
- ACBPort.ACB_out = "C SAP 4,0,2047" 'Geschwindigkeit für Betrieb setzen
- ACBPort.ACB_out = "C SAP 204,0,200" 'Freeweeling - automatische Motorabschaltung
- End Sub
Zur Erklärung:
Mit ACBPort.ACB_out = "C GAP 3,0" wird ein Befehl über eine Serielle Schnittstelle gesendet und in Motorantwort ein Wert zurückgegeben.
In der Do Loop Schleife gibt es dann zwei Abbruchbedingungen - Ref Punkt gefunden oder manueller Abbruch über _Rotor_init.
Bedingung !!!
Erst wenn der Ref Punkt gefunden wurde darf dass Proggy fortgesetzt werden - ist wie beim Rechner booten - erst wenn hochgefahren wurde kann ich was machen