Thema:
Re:Kann jemand hier richtig gut C# programmieren? flat
Autor: Mauback82
Datum:31.07.19 22:39
Antwort auf:Re:Kann jemand hier richtig gut C# programmieren? von Mugen

Ui, da hast du dir ja einiges vorgenommen. :D

Gleich vorweg, ich werde dir deine GUI nicht programmieren können. Aber ich kann dir ein paar Tips geben für das einfache Ansprechen einer USB-UART-Bridge unter C#.

Falls du dich nicht schon anders festgelegt haben solltest, dann würde ich dir auf jeden Fall raten eine USB-UART-Bridge von FTDI zu nehmen, bspw. den FT232R:
[https://www.mouser.de/ProductDetail/FTDI/FT232RL-TUBE?qs=sGAEpiMZZMs5ceO8zL%252BTx2H7JnbI4GMI]

Das tolle daran ist nämlich, dass FTDI eine C# Bibliothek namens FTD2XX_NET.DLL für seine USB-UART-Bridges anbietet:
[https://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/CSharp/FTD2XX_NET_v1.1.0.zip]

Hier findest du auch ein paar mehr oder weniger hilfreiche Example Programs für die Verwendung der FTD2XX_NET.DLL:
[https://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/CSharp.htm]

Das Ansprechen der USB-UART-Bridge geht dann nicht mehr über COM Ports. Stattdessen kannst du dir einfach eine Liste der erkannten FTDI Devices am PC zurückgeben lassen. Die kannst du ganz easy öffnen und anfangen Daten rüberzuschieben.

Weiterhin gibt es auch noch von FTDI das FT_PROG Programm, mit dem du einige Einstellungen an der USB UART Bridge vornehmen kannst. Es empfiehlt sich dann mMn für deine Geräte einen einzigartigen Device/Produktnamen einzutragen. Diesen Produktnamen kannst du dann auch ganz leicht in C# mit der FT DLL auslesen. Damit bist da dann auf der sicheren Seite, dass du auch wirklich dein gewünschtes Device geöffnet hast.

Wenn du willst, kann ich dir meine Beispiel-FT.cs geben, mit der ich das entsprechende Device finde. Auch ein Datenverkehr in beide Richtungen findet da schon statt. Mit der FDTI DLL ist das echt nicht allzu schwer.

Auf Mikrocontrollerseite ist es eigentlich auch nicht so wild. Du musst lediglich eine UART Peripherie konfigurieren und brauchst ein, zwei Funktionen um Zeichen bzw. Strings zu schreiben und eben den RX Buffer auszulesen für empfangene Commands/Daten/etc.

Gerade wenn du deine Funktionalität peu à peu realisierst, solltest du eigentlich immer Fortschritte sehen und motiviert bleiben. :)


< antworten >