Code fuer Handshake XON/XOFF Protokoll in C



  • Hallo zusammen,

    ich habe ein Programm in C mit dem Programm Dos Borland 3.1 geschrieben. Es dinet dazu Werte von einem Messgeraet ueber eine RS232 Schnittstelle an eine Unit(ADAM-4500) zu senden und von dieser Unit wird dann der Wert ueber RS485 an den Computer gesendet.

    Das Programm wird auf der Unit gespeichert.

    Jetzt mein Problem:

    Ich kann von dem Messgeraet sowohl ueber RS485 und RS232 senden. Bei der RS485 Uebertragung macht es keine Probleme, aber sobald ich ueber RS232 sende, dann bekomme ich immer wieder falsche Werte in meinen Datentransfer rein.

    Also z.B. 0.01 - 0.01 - 0.01 - -1.98 - 0.01 - 0.01 - 5,34 - 0.01

    Ich weiss jedoch leider nicht woran es liegen koennte. Ich denke es muesste irgendwie mit dem Handshake Protokol XON/XOFF zusammenhaengen, da es in dem Manual von dem Messgeraet gefordert wird.
    Ich weiss aber leider nicht, wie ich das programmieren soll.

    Hier mein Codeausschnitt:
    am Com1 muesste das Handshake Verfahren angewandt werden. Der COM2 fuehrt nur zum PC.

    /* Set up Port 1 (COM1) /
    outport((base0+2),0x01); /
    enable FIFO /
    outp(base0+3,0x80); /
    set DLAB=1 /
    outp(base0 ,0x0C); outp(base0+1,0x0); /
    set buad = 9600 /
    outp(base0+3,0x03); /
    set data=8 stop=1 no parity /
    outp(base0+1,0x00); /
    disable COM1 interrupt */

    /* Set up Port 2 (COM2) /
    outport((base1+2),0x01); /
    enable FIFO /
    outp(base1+3,0x80); /
    set DLAB=1 /
    outp(base1 ,0x0C); outp(base1+1,0x0); /
    set baud = 9600 /
    outp(base1+3,0x0B); /
    set data=8 stop=1 odd parity /
    outp(base1+1,0x00); /
    disable COM2 interrupt */
    q=0;

    Im voraus vielen Dank fuer Eure Hilfe

    Gruss
    kego


Anmelden zum Antworten