On Oct 14, 2010, at 9:44 AM, Philip Levis wrote:

> On Sep 19, 2010, at 1:27 AM, Eric Decker wrote:
> 
>> I'm pretty sure the following is a problem under heavy receive loads on the 
>> serial link.  This is especially true for high baud rates that have
>> interarrival character times that are quite small.
> 
> Eric,
> 
> Can you test that this patch works:
> 
> ===================================================================
> --- SerialP.nc        (revision 5198)
> +++ SerialP.nc        (working copy)
> @@ -445,9 +445,15 @@
>         if (isDelimeter) { /* handle end of frame */
>           if (rxByteCnt >= 2) {
>             if (rx_current_crc() == rxCRC) {
> +           rxInit();
> +           call SerialFrameComm.resetReceive();
> +           if (offPending) {
> +             rxState = RXSTATE_INACTIVE;
> +             testOff();
> +           }
>               signal ReceiveBytePacket.endPacket(SUCCESS);
>               ack_queue_push(rxSeqno);
> -              goto nosync;
> +              goto done;
>             }
>             else {
>               goto nosync;

I tested a slight modification of this bug fix under high RX and TX load. It 
seems to hold up. I've checked it in. If others could let me know if there are 
any problems, I'd appreciate it.

Phil
_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to