RS232 Steuerzeichen
-
Guten 'Morgen' zusammen
ich muss gerade mit der Seriellen Schnittstelle arbeiten und habe damit ein problem.
Und zwar bekomme ich manche Steuerzeichen, wie z.B DLE (0x10h), EOT (0x04h), STX (0x02h) und ETX (0x03h) einfach nicht eingelesen.
Ich verwende die TComm Klasse von http://cc.codegear.com/Item.aspx?id=20172
Verwendet wird Borland '06 mit WinXP und internet, serieller Schnittstelle.
Leider muss ich den vollen Bereich von 0x01h bis 0x7Fh als Daten verwenden, da das ****** Protokoll so aufgebaut ist.
Gibt es eine Möglichkeit, mein Problem irgendwie zu lösen?
mfg
P.G.
München
-
Hallo,
gib doch mal in die Forumsuche "*RS232*" ein (inklusive *), da ist bestimmt etwas dabei (Unterforum VCL(C++Builder) einstellen).
MfG
-
hi,
schon längst erledigt, bisher habe ich aber nichts brauchbares gefunden, deshalb mein Beitrag hier.
mfg
P. G.
-
Hallo,
dann weite die Suche mal auf das ganze Forum aus... ich bin mir fast sicher, dass ich hier im Forum schon Code gesehen habe, mit dem man beliebige HEX-Werte von der seriellen Schnittstelle holen kann!
MfG
Edit: Folgende WinAPI-Funktionen stehen im Zusammenhang mit der seriellen Schnittstelle:
BuildCommDCB
BuildCommDCBAndTimeouts
ClearCommBreak
ClearCommError
CloseHandle
CommConfigDialog
CreateEvent
CreateFile
DeviceolControl
EscapeCommFunction
Get-/Set-CommConfig
Get-/Set-CommMask
GetCommModemStatus
GetCommProperties
Get-/Set-CommState
Get-/Set-CommTimeouts
Get-/Set-DefaultCommConfig
PurgeComm
SetCommBreak
SetupComm
TransmitCommChar
WaitCommEvent
-
Hallo alle zusammen,
es hat jetzt tatsächlich 3 Arbeitstage gekostet um die Lösung zu finden. Leider ist selbige wenig schmeichelhaft.
Ich war absolut sicher, dass bei den angeschlossenen Geräten eine ByteSize von 8 Bit verwendet wurde.
Wie jetzt durch Zufall heraus kam, sind es aber nur 7 Bit.
Durch die dadurch verursachte verschiebung, wurden einige der übertragenen Zeichen als 0x90h und ähnlichem empfangen.
Na dann auf ein neues
Peter G.
-
Peter G. schrieb:
Ich war absolut sicher, dass bei den angeschlossenen Geräten eine ByteSize von 8 Bit verwendet wurde.
Kenne zwar Deine Geräte nicht, aber nicht selten haben sie bei 7 Bit Datenbreite auch zwei Stoppbits, nur mal so als Hinweis.
Martin