Hi,
I am using TOSSIM to simulate a multihop flooding protocol. I use Tinyviz to produce the topology of the network and the radio model plugin to control node's transmission range. The node in the middle of the topology broadcast a message to its neighbor, and when its neighbor received it, they will broadcast the message again and so on.
The problem is sometimes the receiver will get the message in which some byte is different with the original one and CRC check get wrong result. I add dbg in AMstandard.nc to get the sent and received message:
The original message is: ff ff 09 7d 04 01 03 01 04 00 00 00......
The message received is: ff ff 09 7d 04 01 ff 01 04 00 00 00......
The fist 5 bytes come from TOS_Msg Header, the rest is defined by :
typedef struct ClusterMsg
{
uint8_t type;
uint8_t src;
uint8_t CHid;
uint8_t hop;
} ClusterMsg_t;
{
uint8_t type;
uint8_t src;
uint8_t CHid;
uint8_t hop;
} ClusterMsg_t;
The src field is wrong! The mistake does not happen to every node. But if I use the same topology, the mistake take place every time to the same node.
The situation is: A, B, C, D four nodes. B, C, D are in the transmission range of A. When A broadcast a message, the other 3 nodes receive the correct message, they begin broadcast again. C and D are very close, they are in the range of each other. When C broadcast, A gets the wrong message.
What is the possible reason of it? Will the interfere or collision cause the wrong byte?
And another problem is the debug information shows sometimes the node begins sending message and turn to Tx state, but because of some reason, after a very short time, it switches to Rx state, and nobody receives it (something like the message has not been actually sent out). What is the possible reason of it?
Thanks.
_______________________________________________ Tinyos-help mailing list [email protected] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
