Author: Nicholas Merizzi (merizzn@mcmaster.ca)
Date: September 2005
This is a Sensor Network patch which includes work from various
developers all integrated under one package for J-Sim version 1.3.
Installation Instructions:
1) Delete the current drcl/inet/sensorsim and drcl/inet/mac packages.
2) Unpack the package onto your desktop. This will give you a folder
called j-sim1.3.
and overwrite the current version that is there.
2a) In the zip file navigate to the /script/drcl/inet/ directory
and copy the 'sensorsim' folder which contains sample
scripts to your $J_SIM\script\drcl\inet\sensorsim\ directory.
This should not overwrite anything. Prompt "yes" to any
file overrides.(caution you will loose your old work if
you made modifications)
2b) copy the 'conf_file' directory from the extracted zip file to
the $J_SIM root directory. These are sample configuration
files that can be used by the file parser.
2c) Open the 'src' folder in the zip file and copy over the 'parser'
and 'visualSensorNet' directories into '$J_SIM\src\'
These are two packages which provides a GUI for sensor networks
and a file parser to load topologies.
3c) Navigate to the 'src\drcl\inet\' directory of the extracted zip
file and copy both the 'mac' and the 'sensorsim' folders to
$J_SIM/src/drcl/inet/ (you deleted the original folders that
were there in step 1).
3d) Copy the 'InetPacket.java' and 'Protocol.java' file from the zip
to the '$J_SIM/src/drcl/inet' directory. This will prompt you if
you want to overwrite. Agree to overwritte.
3e) The last file to copy over is the 'drcl/inet/contract/PktSending.java'
file which needs to overwrite the current one you have located
at 'J_SIM/drcl/inet/contract' ... agree to overwrite it.
3) replace the $J_SIM\Makefile with the Makefile provided in the package
4) Delete the `classes` folder and recompile everything from scratch
to prevent having any old classes lingering around. To recompile
after deleting the `$J_SIM\classes` directory just type make at
directory $J_SIM (or if using Ant and Windows type `ant compile`
in the $J_SIM directory.
5) Now you are ready to run the various sample .tcl scripts which will are
located at $J_SIM/script/drcl/inet/sensorsim
6) Or for a graphical frontend navigate to the $J_SIM\classes\visualSensorNet
directory and type: java visualSensorNet.SensorSim this will provide you
with a graphical frontend for simulating sensor networks.
This patch contains:
1) A localization protocol: D. Niculescu and B. Nath. "Ad hoc positioning system (APS)," In Proc. of IEEE GLOBECOM'01.
The associated files can be found in the following package:
drcl.inet.sensorsim.APS
2) A directed diffusion protocol: C. Intanagonwiwat, R. Govindan, and D. Estrin. "Directed diffusion: A scalable and robust communication paradigm for sensor networks," In Proc. of ACM MobiCom'00.
The associated files can be found in the following package:
drcl.inet.sensorsim.diffusion
3) Additions and modifications to the sensorsim package:
a- AcousticProp and AcousticChannel: added an acoustic propagation model and an acoustic channel.
b- TargetPacket, TargetAgent, SensorAgent and SensorAppAgentContract: Added sequence number (seqNum) and binary data (body) fields to TargetPacket.
c- SensorPhy, SensorPositionReportContract and SensorNodePositionTracker: Added a new port (toSensorNodePositionTracker) to SensorPhy so that whenever a sensor node detects a signal from a target node, it will send a SensorPositionReportContract.Message to SensorNodePositionTracker.
d- SensorPacket, SensorAppWirelessAgentContract, WirelessAgent and SensorApp: Modified SensorPacket to set and get the binary data field in the superclass (Packet).
e- SensorLocationInformation and SensorNodePositionTracker: Added a separate class for SensorLocationInformation instead of being a static class within SensorNodePositionTracker.
f- SensorNeighborQueryContract: Modified SensorNeighborQueryContract to be able to report the locations of the neighboring nodes.
g- SensorChannel: Kept the timer port so that the sensor channel can forward data packets after a fixed propagation delay.
4) New non-persistent CSMA MAC protocol (drcl.inet.mac.CSMA)
5) New Application level protocols for Sensor Networks (LEACH, One-hop,
One-Hop/TDMA, Multi-Hop,) The associated files can be found in the following
packages:
drcl.inet.sensorsim.OneHop
drcl.inet.sensorsim.OneHopTDMA
drcl.inet.sensorsim.LEACH
drcl.inet.sensorsim.MultiHop
6) Integrated Battery model that combines sensorsim's energy package with
the wireless protocol stack energy package
7) Cross-layer design with new ports and contracts which allows
the application layer to directly control the hardware.
8) A visual frontend developed by Gilles Tredan which allows one to see
the positioning of their sensors on the screen graphically. This aids
in testing various protocols by being able to visually see the movements
of nodes.The associated files can be found in the following
packages:
visualSensorNet.*
9) A file parser developed by Gilles Tredan which allows a Java program
to load a configuration file which defines your topology. The files
that include this work is located in the `parser` package and sample
configuration files are located at: $JSIM\conf_files
10) Modification to various other files in the drcl.inet.mac.* package
were required. A detailed discussion of those modifications will be
included here soon.
Known Bugs:
-Constant work under progress.
For more information visit: http://www.cas.mcmaster.ca/~merizzn/
or email me at: merizzn@mcmaster.ca