Hello all,

I'm simulating a protocl in TOSSIM, which requires me
to modify the TOSSIM source code so that it provides me with a  
lossless network. I have tried several things, but I am still  
unsuccessful and would appreciate any help on this matter.

I began by using root permissions to modify the file  
UscGainInterferenceModelC.nc under $TOSROOT/tos/lib/tossim/

I commented out line 220 to remove the possibility of packetloss:

         // rcv->lost = 1;

Now, at this point, there is still the possibility of packet loss due  
to collisions. The MAC layer proved to be insufficient to eliminate  
the problem fully. Therefore I also commented out line 144 to  
eliminate collisions.

         // list->lost = 1;

I put these changes into a copy of the original file called  
UscGainInterferenceModelC.nc_no_loss_no_coll, which I keep in my  
project directory. The original, unmodified file is copied into my  
project directory as UscGainInterferenceModelC.nc_original. Prior to  
compiling my project, I copy the modified file into the tinyos  
dirctory using the following command in Ubuntu Linux:

         gksudo cp  
$PROJECTDIR/UscGainInterferenceModelC.nc_no_loss_no_coll  
$TOSROOT/tos/lib/tossim/UscGainInterferenceModelC.nc

after compilation, the original is copied back in an analogous manner.

After these changes, I ran my program and found that there was still  
packet loss in the network. After some work I began to suspect that my  
changes had not taken effect. To make sure, I went back to  
UscGainInterferenceModelC.nc and changed it again by removing a  
semicolon in an obvious spot. This change breaks the component, thus  
if I get a compiler error in the affected spot, then I know the file  
is being recompiled. When I attempted to recompile my project, it  
succeeded without any such error. Therefore, it is now clear that my  
attempt to modify $TOSROOT/tos/lib/tossim/UscGainInterferenceModelC.nc
is not taking effect because the make system will not cause that part  
of the tinyos-2.x source tree to recompile.

So now I attempted to find a way to force that file to recompile. I  
first attempted the following command:

         gksudo touch $TOSROOT/tos/lib/tossim/UscGainInterferenceModelC.nc

This updates the "Modified" date and time on the file to the current  
time, in the hope that the make system will recogize that the file has  
been changed and then recompile it rather than linking to an existing  
object file somewhere. Unfortunately, while the date was changed as  
expected, another compilation of my project did not force  
UscGainInterferenceModelC.nc to recompile.

I then searched the various subdirectories under $TOSROOT in hopes of  
finding the original object file (presumably with the .o extension).  
In theory, if I can delete the file using root permissions, then the  
make system will be forced to recompile the source, as it has no objct  
file to link to. Yet when I searched, I could not find that file, or  
any other obect file whatsoever in the tinyos-2.x tree. I also tried  
deleting the tossim.o file that appears in $PROJECTDIR/simbuild after  
compilation of the project, but still no success.

I have also tried manualy modifying the file linkgain.out rather than  
running the LinkLayerModel java program. I hoped to get better links  
this way. I tried to set the gain at -130.00 if I DON'T want two nodes  
to communicate, and I tried setting gains of -1.00 or -5.00 if I DO  
want them to communicate. The noise entries were all set with the  
value pair -100.00, 3.50 But with these changes, no nodes can  
communicate at all.

It is essential that I get the network to be either perfect or near  
perfect if my work is to continue. Any help would be greatly  
appreciated.

Thanks

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

Reply via email to