On Dec 18, 2006, at 11:10 PM, Philip Levis wrote:


I think it might be a bug in BaseStationCC2420, where it is not correctly copying the source address over. Instead, you're seeing two bytes of the 15.4 packet, which are aligned differently. Rather than this:

    msg = uartQueue[uartOut];
    tmpLen = len = call RadioPacket.payloadLength(msg);
    id = call RadioAMPacket.type(msg);
    addr = call RadioAMPacket.destination(msg);

It should be doing something like this:

    am_addr_t source = call RadioAMPacket.source(msg);
    msg = uartQueue[uartOut];
    tmpLen = len = call RadioPacket.payloadLength(msg);
    id = call RadioAMPacket.type(msg);
    addr = call RadioAMPacket.destination(msg);
    call SerialAMPacket.setSource(source);

I just verified that this is the problem. I'm testing the code now, and will check in the fix shortly. I fixed it in both directions. Note, however, that the radio stack by default fills in the source address. So in the current implementation, the BaseStationCC2420 is not a perfect bridge, as packets will come from its source address. I'll talk with Jonathan on how to fix this.

Phil
_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to