Forum: PC-Programmierung Comport und vb.net -> newbie braucht Hilfe!


von Aaron S. (aaron_s)


Lesenswert?

Hallo zusammen,

ich programmiere seit etwa 2 Jahren in vb.net und habe gerade ein tolles 
Projekt gestartet. Ich möchte Daten meiner RC-Fernsteuerung (MX12) auf 
dem PC anzeigen lassen.
Dazu gibt es ein USB Interface von Silicon Labs (cp210x USB to UART 
Bridge)
Von dieser USB Bridge geht ein 3 Poliger Stecker zur Fernsteuerung (S 
+5V GND).
Nun kann man der Funke eine Reihe von Daten senden, damit diese darauf 
einen Request macht und mir die Telemetriedaten über die USB 
Schnittstelle bereit stellt.
Das Ganze Ding wird als COM Port erkannt, kann also über einen 
SerialPort in vb.net auf die Sache zugreifen.

Mein Problem ist es, dass das alles Neuland für mich ist und ic keine 
wirkliche Idee habe wie man soetwas angeht (Kommando senden, Daten 
lesen, Daten verarbeiten).

Ich wäre für jede Hilfe Dankbar.
Ich weiß vb.net ist nicht die super tolle Sprache aber es geht auch 
damit.

Gruß
aaron

von arash j. (arashjavan)


Lesenswert?

Hallo aaron,

ich arbeite auch zur Zeit an einem ähnlichen Projekt, arbeite jedoch mit 
c#.
wie leistest du die Daten weiter an Pc, als Rohwerte, char ....??
schau dir auch diesen Thread an, sind paar gute Tipps drin.

Beitrag "C# Serialport-Falsche Werte"

von Aaron S. (aaron_s)


Lesenswert?

Also das Grundproblem besteht erst mal darin wie man da überhaupt 
anfängt, ich weiß nicht wo ich anfangen soll weil ich keine Ahnung von 
Schnittstellen also USB und Seriell habe

von arash j. (arashjavan)


Lesenswert?

Aaron Scherr schrieb:
> Also das Grundproblem besteht erst mal darin wie man da überhaupt
> anfängt, ich weiß nicht wo ich anfangen soll weil ich keine Ahnung von
> Schnittstellen also USB und Seriell habe

wie du ein seriellen port öffnest und daten holst findest du hier,

http://msdn.microsoft.com/de-de/library/system.io.ports.serialport.open.aspx

hier:
Beitrag "SerialPort bei Visual Basic 2005"

oder hier:
http://www.tutorials.de/net-cafe/249226-vb-net-projekt-mit-serialport-und-datenerfassung.html

wichtiger ist, als was du die Daten bekommst, Ascii.zeichen oder rohe 
Daten.
und wenn die paketweise übertragen werden, wie kannst du den den Anfang 
eines neuen Pakets erkennen?

von Aaron S. (aaron_s)


Lesenswert?

Um einen Request zu bekommen muss man an die Funke das hier senden:
0x00 0x03 0xfc 0x00 0x00 0x04 0x36 0x51 0x9a
Danach kommen Daten auch wieder so zurück....
Der Paketanfang ist immer 0x00

von arash j. (arashjavan)


Lesenswert?

Aaron Scherr schrieb:
> Um einen Request zu bekommen muss man an die Funke das hier senden:
> 0x00 0x03 0xfc 0x00 0x00 0x04 0x36 0x51 0x9a
> Danach kommen Daten auch wieder so zurück....
> Der Paketanfang ist immer 0x00
Hallo Aaron,

falls du noch da bist!!!
Die ankommende Daten kannst du als String mit
readExisiting() oder byteweise mit readbyte() in eine Liste speichern, 
dann brauchst du nur noch einen Algorithmus der immer wieder beim 
Datenempfang
nach bestimmten Bytes-Muster sucht, wenn 0x00 NUR einmal in einem PAket 
vorkommt, dann immer nach 0x00 suchen, den index abspeichern und nach 
nächste 0x00 suchen, index abspeichern, 2. index vom ersten abziehen und 
die anzahl bytes aus der Lsite entfernen....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.