Last Updated on October 17, 2006 9:43 PM .
<tos>/myApps
where <tos>
is
the location of your TinyOS installation (for Windows users, it
is usually /opt/tinyos-1.x
).
If you're unsure what it is, type echo
$TOSROOT
or look in /etc/profile.d/tinyos.sh
.<tos>/myApps
.
The NesC portion of Agilla is located in <tos>/myApps/Agilla
.
From here on, this directory is <agilla>
.<tos>/tools/java
.
Agilla's agent injector is now in <tos>/tools/java/edu/wustl/mobilab/agilla
./etc/profile
. # Agilla Aliases alias cda="cd $TOSROOT/myApps/Agilla" alias cdaj="cd $TOSROOT/tools/java/edu/wustl/mobilab/agilla" alias ri="java -Djava.security.policy=java.policy edu.wustl.mobilab.agilla.AgentInjector \ -comm COM1:57600 -d &" alias ri_sim="java -Djava.security.policy=java.policy edu.wustl.mobilab.agilla.AgentInjector \ -comm tossim-serial -d &" alias ri_nc="java -Djava.security.policy=java.policy edu.wustl.mobilab.agilla.AgentInjector \ -nc -d &" alias ri_rmi="java -Djava.security.policy=java.policy edu.wustl.mobilab.agilla.AgentInjector \ -comm RMI:localhost -d &" alias mj="cd $TOSROOT/tools/java/edu/wustl/mobilab/agilla; javac *.java" alias riall_m2="cd $TOSROOT/myApps/Agilla; gawk -f installer_m2.awk" alias riall_mz="cd $TOSROOT/myApps/Agilla; gawk -f installer_mz.awk"
These aliases allow you to quickly compile and install Agilla. Here is a brief description of each:
For additional convenience, I recommend adding the following additional aliases to the profile file for navitgating around TinyOS in general:
alias cdj="cd $TOSROOT/tools/java" alias cdtos="cd $TOSROOT" alias cdxbowapps="cd $TOSROOT/contrib/xbow/apps" alias cdapps="cd $TOSROOT/apps" alias cdmyapps="cd $TOSROOT/myApps" alias runsf_pc="cd $TOSROOT/tools/java; java net.tinyos.sf.SerialForwarder \ -comm tossim-serial &" alias runsf_com1="cd $TOSROOT/tools/java; java net.tinyos.sf.SerialForwarder \ -comm serial@COM1:mica2 &"
<tos>/tools/make
. Customize the
radio frequency, group address and serial port number defined
within it. The group address should be unique to you. The serial
port number is the port that your mote programming board is connected
to.<tos>/tos/system/Reset.h
and
add || defined (PLATFORM_MICAZ)
<agilla>/installer_m2.awk
or <agilla>/installer_mz.awk
!
Specifically, change the programming board and COM port settings
on line 20 to fit your setup.riall_m2
riall_mz
cda make [platform] reinstall.[id][programming board],[port]
[platform]
is
the target platform (e.g., mica, mica2, mica2dot, or micaz), [id]
is
the mote ID, [programming
board]
is the programming board (e.g., MIB510
), and [port]
is
the serial port the programming board is attached to (e.g., COM1
). cdaj make
rmic -d ../../../../../.. edu.wustl.mobilab.agilla.rmi.agentInjector.AgentInjectorServerSide java.lang.Exception: compiler exited with status: 1 at gnu.java.rmi.rmic.CompilerProcess.compile(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.RMIC.compile(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.RMIC.processClass(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.RMIC.run() (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.RMIC.main(java.lang.String[]) (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.CompilerProcess.compile(java.lang.String) (/usr/lib/libgcj.so.5.0.0) ...4 moreGo into the base java directory (e.g.,
/opt/tinyos-1.x/tools/java
) and type
$ rmic edu.wustl.mobilab.agilla.rmi.remoteTupleSpace.RemoteTupleSpaceServerSide $ rmic edu.wustl.mobilab.agilla.rmi.agentInjector.AgentInjectorServerSideto generate the stub files.
<tos>/tools/java
. rmiregistry
as
shown below:
java.rmi.RemoteException:
failed to export: class gnu.java.rmi.dgc.DGCImpl
error,
be sure your path is set to point to the correct version of
rmiregistry. On a Windows system running Cygwin, it is usually
/cygdrive/c/tinyos/jdk1.4.1_02/j2sdk1.4.1_02/bin/rmiregistry
.ri
. You should
see:java -Djava.security.policy=java.policy edu.wustl.mobilab.agilla.AgentInjector \ -comm COM1:57600 -d &
Ctrl+r
while looking at the motes. All motes should
blink all 3 LEDs on for 1 second indicating that they are resetting. If
this does
not
occur,
check
to ensure
mote (0,0)
is correctly seated on the programming board and hit the programming board's
reset button.