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


Anmelden zum Antworten