Hallo Zusammen,
ich nutze einen Arduino als Hardware um digitale Eingänge am PC einzulesen. Den Status der einzelnen Eingänge gebe ich auf die serielle Schnittstelle und lese diese über ein kleines Visual C# Programm (MS Visual Studio) am PC aus. Prinzipiell funktioniert das auch.
Problem dabei ist, dass die serielle Schnittstelle eigentlich permanent ausgelesen werden muss. Eine Änderung an den digitalen Eingängen müsste ich etwa alle 100ms erfassen um meine Anwendung realisieren zu können. Aktuell starte ich das Auslesen einmal pro Sekunde über einen Timer. Sobald ich hier kürzere Zeitwerte einstelle hängt das ganze Programm und ist nicht mehr bedienbar
Dachte zuerst, ich kann die Ausleseroutine in einen Backgroundworker packen und den dann permanent als gesonderten Prozess in beliebigen Geschwindigkeiten laufen lassen. Musste aber feststellen, dass ein Backgroundworker keine Daten übergeben kann solange der noch läuft.
Habe noch nicht so viel Programmiererfahrung.... Hat jemand eine Idee wie so etwas gelöst werden kann?
ich nutze einen Arduino als Hardware um digitale Eingänge am PC einzulesen. Den Status der einzelnen Eingänge gebe ich auf die serielle Schnittstelle und lese diese über ein kleines Visual C# Programm (MS Visual Studio) am PC aus. Prinzipiell funktioniert das auch.
Problem dabei ist, dass die serielle Schnittstelle eigentlich permanent ausgelesen werden muss. Eine Änderung an den digitalen Eingängen müsste ich etwa alle 100ms erfassen um meine Anwendung realisieren zu können. Aktuell starte ich das Auslesen einmal pro Sekunde über einen Timer. Sobald ich hier kürzere Zeitwerte einstelle hängt das ganze Programm und ist nicht mehr bedienbar

Dachte zuerst, ich kann die Ausleseroutine in einen Backgroundworker packen und den dann permanent als gesonderten Prozess in beliebigen Geschwindigkeiten laufen lassen. Musste aber feststellen, dass ein Backgroundworker keine Daten übergeben kann solange der noch läuft.
Habe noch nicht so viel Programmiererfahrung.... Hat jemand eine Idee wie so etwas gelöst werden kann?