lkml.org 
[lkml]   [2007]   [Aug]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: serial flow control appears broken
    Maciej W. Rozycki wrote:

    >On Fri, 27 Jul 2007, Lee Howard wrote:
    >
    >
    >
    >>Okay, so let's say we've got a loop around a blocking read on the modem file
    >>descriptor...
    >>
    >> for (;;) {
    >> read some data from modem
    >> process data from modem
    >> if (end-of-data detected) break;
    >> }
    >>
    >>Are you suggesting that the application should be using deasserting RTS after
    >>the read and asserting it before?
    >>
    >>
    >
    > It certainly could -- you were asking how it would know. ;-)
    >

    So, to test... I put this in the application before every read:

    int flags;
    ioctl(modemFd, TIOCMGET, &flags);
    flags |= TIOCM_RTS;
    ioctl(modemFd, TIOCMSET, &flags);

    and this after:

    int flags;
    ioctl(modemFd, TIOCMGET, &flags);
    flags &= ~TIOCM_RTS;
    ioctl(modemFd, TIOCMSET, &flags);

    Now I can see the RTS light blink on the modem (and during heavy
    communication it merely "dims" depending on the amount of delay in the
    processing.

    However, it does not help. Data still goes missing.

    Thanks,

    Lee.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-08-04 20:21    [W:0.022 / U:60.764 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site