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