Announcement

Collapse
No announcement yet.

Serial Communication LOC (Win98)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Guest's Avatar
    Guest replied
    Lance,

    i just checked it again, the behavior is always the same,
    indepent of the characters received (XON/XOFF , "A"/"B" , "1"/"2" ...
    LOC(1) does not report received characters before 8-20 in buffer.
    I checked also EOF LOF, same results.
    Reading modem status register gives also no more info abt. new chars.

    I need XON/XOFF to communicate with older CNC mashines,
    and to write a new programm ...., result:back to good old dos !

    But thanks for your answer.

    Werner



    ------------------

    Leave a comment:


  • Lance Edmonds
    replied
    I found similar problems with working on PBFax some years ago.

    Basically, I found that Windows intermittently interferes with the XON/XOFF flow control characters, causing all kinds of grief.

    The best solution is to use hardware handshaking instead of software, but if you _HAVE_ to use XON/XOFF then you might either use plain DOS as the OS for the app, or (re)write the app as a Windows app that uses the Windows serial communications functionality instead.

    Sorry!

    ------------------
    Lance
    PowerBASIC Support
    mailto:[email protected][email protected]</A>

    Leave a comment:


  • Guest's Avatar
    Guest started a topic Serial Communication LOC (Win98)

    Serial Communication LOC (Win98)

    I have written a communication programm which works with xon/xoff handshake.
    With MSDOS 6.22 all worked fine for several years.
    In a windows 98 dosbox the LOC function does not work like expected:
    IF a XOFF is received, transmission should stop immediately.
    But LOC does not indicate received characters.
    At least after 8-30 received characters, LOF jumps from 0 to the received character number.
    So it is not possible to react to XOFF/XON.

    Interesting is, that LOC works fine, if no data a sent at same time.
    During transmitting action, LOC gives no buffer information.

    Programm to see the behavior:

    OPEN "COM2:1200,E,7,1,CS0,DS0,CD0" AS #1

    DO
    IF LOC(1) > 0 THEN 'if something in the receive-buffer
    BEEP
    A$ = (INPUT$(1,#1) 'get character
    IF INKEY$<>"" THEN ENDE
    END IF
    IF INKEY$<>"" THEN END
    PRINT #1,"A"; 'without this line, LOC(1) works fine

    LOOP


    Hardware: Asus P4B, COM-Port on board, COM-Port in BIOS and Windows Hardware
    with default values.

    Any ideas ? Is there a workaround ? Thanks for help !



    ------------------
Working...
X