Probleme mit SerialPort

20/08/2008 - 16:13 von Andreas | Report spam
Hallo Zusammen,

ich habe ein gravierendes Problem mit dem SerialPort und muss aber auch
dazusagen, dass ich keineswegs viel Ahnung von Schnittsellenprogrammierung
habe. Über eine serielle Schnittstelle kommen zyklisch Werte an, die von
einem VB6-Programm verarbeitet werden. Der ankommende Wert wird dabei
umgewandelt, in mehreren Routinen. Er beginnt mit 5 Vierecken und einem
Leerzeichen und dann kommen zwei kryptische Zeichen. Eines davon eine Art
Alpha. Nun möchte ich das gleiche in Visual Studio 2005 (VB) machen. Dazu
verwende ich den SerialPort, konfiguriere ihn genauso wie in VB6, bekomme
dann aber lediglich die ersten 5 Vierecke. In einem SerialPort-Sniffer-Tool
jedoch wird der gleiche Wert angezeigt, wie unter VB6. In VS2005 verwende ich
die Methode ReadExisting.

An was könnte das liegen? Sàmtliche andere Schnittstellen, die ich mit
ReadExisting lese, funktionieren, nur diese nicht. Ich hoffe, ich habe
genügend Infos bekommen. Ich bin für jede Anregung àußerst dankbar.

Gruß
Andreas
 

Lesen sie die antworten

#1 Peter Götz
20/08/2008 - 17:49 | Warnen spam
Hallo Andreas,

ich habe ein gravierendes Problem mit dem SerialPort
und muss aber auch dazusagen, dass ich keineswegs
viel Ahnung von Schnittsellenprogrammierung habe.



Ein paar Grundlagen zur RS232 / V24 Schnittstelle (ich rate,
Du möchtest mit einer solchen arbeiten) wie Hardware- /
Softwareprotokolle usw. solltest Du Dir schon anlesen.

Über eine serielle Schnittstelle kommen zyklisch Werte an,
die von einem VB6-Programm verarbeitet werden.



Hier wàre interessant, welche Art von Daten zu übertragen
sind. Sind es Binàrdaten oder Texte? Bei Texten wàre das
relevante Encoding noch von Interesse.

Der ankommende Wert wird dabei umgewandelt,
in mehreren Routinen.



Das sagt leider gar nichts aus.
Welche Werte werden wohin umgewandelt in welchen
Routinen?


Er beginnt mit 5 Vierecken



Das sind keine "Vierecke" sondern nicht abdruckbare Zeichen,
wie z.B. Bytes mit einem Wert < 32.


und einem Leerzeichen und dann kommen zwei kryptische
Zeichen. Eines davon eine Art Alpha.



Auch das sagt nichts aus, solange man nicht den tatsàchlichen
Bytewert (ASCII-Code) des Zeichens kennt. Den solltest
Du Dir ansehen.


Nun möchte ich das gleiche in Visual Studio 2005 (VB) machen.



Grundsàtzlich kein Problem, und insgesamt einfacher und stabiler
mit dem .net SerialPort-Objekt als mit dem MSComm von VB6
zu realisieren

Dazu verwende ich den SerialPort, konfiguriere ihn genauso
wie in VB6,



Nun bist Du vermutlich der einzige, der weiss, wie Du
Deine ser.Schnittstelle in VB6 konfiguriert hast.

bekomme dann aber lediglich die ersten 5 Vierecke.



Mal die Bytewerte dieser Zeichen ansehen, dann bekommen
die "Vierecke" schon eine greifbarere Bedeutung.

In einem SerialPort-Sniffer-Tool jedoch wird der gleiche
Wert angezeigt, wie unter VB6.



Ich vermute mal, dass Du mit dem Sniffer die tatsàchlichen
Bytewerte sehen kannst und eben die sollte man kennen.


In VS2005 verwende ich die Methode ReadExisting.



Dazu müsste erst mal geklàrt werden, um welche Art von
Daten (Binàr / Text) es sich handelt und ob und mit welchem
Übertragungsprotokoll gearbeitet wird.

An was könnte das liegen?



Was könnte an was liegen?

Sàmtliche andere Schnittstellen, die ich mit ReadExisting
lese, funktionieren, nur diese nicht.



Welche "anderen Schnittstellen"?
Ansonsten wie schon oben erwàhnt, müsste erst mal geklàrt
werden, um welche Art von Daten (Binàr / Text) es sich handelt
und mit welchem Übertragungsprotokoll gearbeitet wird.


Ich hoffe, ich habe genügend Infos bekommen.



Nein, leider nicht, zumindest keine, mit der man
Dein Problem ansatzweise beurteilen könnte.

Ich bin für jede Anregung àußerst dankbar.



Da Du ein neues Programm mit VB.net erstellen willst, solltest
Du weitere Fragen hierzu in der dafür passenden Newsgroup

microsoft.public.de.german.entwickler.dotnet.vb

stellen. Hier bist Du in einer NG gelandet, welche das
VBclassic (bis einschl.VB6) zum Thema hat.

Zum Thema .net-SerialPort schau Dir mal das Beispiel unter

www.gssg.de -> Visual Basic -> VB.net
-> Serial Port (RS232) Chat

an.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen