crime:sunspot
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
crime:sunspot [2010/07/01 11:11] – cfscholl | crime:sunspot [2011/06/02 12:51] (current) – wamerijc | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
CRIME has been ported for wireless sensor networks. | CRIME has been ported for wireless sensor networks. | ||
In this project we have used sunspots, small nodes equipped with sensors and wireless communication. | In this project we have used sunspots, small nodes equipped with sensors and wireless communication. | ||
Every node sends events over the network which can be received by one or more nodes within communication range. Writing applications which are driven by external events is significantly different from writing traditional sequential programs or algorithms. When applications are driven by external events, the control flow of these applications is also driven by these events which can trigger at any order and at any moment in time. | Every node sends events over the network which can be received by one or more nodes within communication range. Writing applications which are driven by external events is significantly different from writing traditional sequential programs or algorithms. When applications are driven by external events, the control flow of these applications is also driven by these events which can trigger at any order and at any moment in time. | ||
- | In this project we have used CRIME in order to deal with the complexity of composing and deriving meaningful information from a continuos | + | In this project we have used CRIME in order to deal with the complexity of composing and deriving meaningful information from a continuous |
< | < | ||
This project is still under development, | This project is still under development, | ||
</ | </ | ||
+ | |||
===== Repository ===== | ===== Repository ===== | ||
- | The repository for CRIME is located at: | + | The repository for CrimeSPOT |
https:// | https:// | ||
+ | |||
+ | The project is developed using Eclipse. You can check the project out using the normal SVN plugin. Make sure that you use the wizard and import the project as a java project. | ||
+ | |||
+ | Configure the built path by selecting the src folder to be included in the built path. Next add all the jars located in the lib folder the project. | ||
+ | |||
Line 19: | Line 25: | ||
Like the deployment process of any application for the sunspot deploying CRIME on your sunspots is done in two steps. | Like the deployment process of any application for the sunspot deploying CRIME on your sunspots is done in two steps. | ||
- | First the sunspot runtime has to be configured so that it contains all the used libraries. Then the actual application (in this case CRIME) has to be deployed to the sunspot. | + | First the sunspot runtime has to be configured so that it contains all the used libraries. Then the actual application (in this case a CrimeSPOT component) has to be deployed to the sunspot. |
+ | |||
+ | === SunSPOT SDK === | ||
+ | First of all, the SunSPOT " | ||
+ | |||
+ | |||
+ | === LooCI === | ||
+ | As CRIME makes use of the Looci firmware you will have to configure your sunspot runtime in order to include Looci in the sunspot vm. Instructions on how to do this can be found [[http:// | ||
+ | < | ||
+ | Tutorial notes: | ||
+ | |||
+ | 1) Edit ~/ | ||
+ | |||
+ | 2) before " | ||
+ | 1. Start Basestation | ||
+ | 2. Start Shared Basestation | ||
+ | |||
+ | 3) Before "ant host-run", | ||
+ | main.class=be.kuleuven.cs.distrinet.wsn.looci.demo.Demo | ||
+ | </ | ||
+ | |||
+ | === CrimeSPOT === | ||
+ | After installing LooCI, CrimeSPOT also has to be added to the SunSPOT runtime. This can be done in 6 steps: | ||
+ | |||
+ | 1. Checkout the CrimeSPOT project from svn | ||
+ | |||
+ | 2. Build the project: | ||
+ | $ ant jar-app | ||
+ | |||
+ | 3. Move the resulting jar from CrimeSPOT/ | ||
+ | |||
+ | 4. Add the CrimeSPOT jar to the SunSPOT libs by editing the spot.library.addin.jars property in ~/ | ||
+ | spot.library.addin.jars=${sunspot.lib}/ | ||
+ | |||
+ | 5. Rebuild & reflash the SunSPOT library in / | ||
+ | $ ant library | ||
+ | $ ant flashlibrary (to be repeated for each sunspot, connected via usb) | ||
+ | |||
+ | 6. After reflashing the base station, restart it: | ||
+ | $ ant startbasestation | ||
+ | $ ant start-shared-basestation | ||
+ | |||
+ | |||
+ | === CrimeSPOT components === | ||
+ | A CrimeSPOT component can now be deployed | ||
+ | |||
+ | Executing the following commands in the gateway suffices for deploying CrimeSPOTComponent.jar on a SunSPOT with MAC XXXX.XXXX.XXXX.XXXX: | ||
+ | |||
+ | # deploy /path/to/the/ | ||
+ | > ID | ||
+ | # activate ID XXXX.XXXX.XXXX.XXXX | ||
+ | |||
+ | As can be observed, unlike for LooCI components, it's not required to manually add wirings for CrimeSPOT components. The CrimeSPOT runtime automatically adds toAll& | ||
+ | |||
+ | - the internal CrimeSPOT event types, | ||
+ | |||
+ | - all event types for which an // | ||
+ | |||
+ | For debugging purposes, the runtime on a SunSPOT can be monitored by connecting the SunSPOT via USB and executing: | ||
+ | $ ant echo | ||
+ | |||
+ | < | ||
+ | When your sunspot | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Creating a CrimeSPOT Component ====== | ||
+ | ===== Netbeans ===== | ||
+ | Individual CrimeSPOT components can be created in Netbeans. | ||
+ | |||
+ | Steps: | ||
+ | |||
+ | 1. Create a New Project: Sun SPOT Application | ||
+ | |||
+ | 2. Extend the abstract CrimeComponent class and give an implementation for: | ||
+ | |||
+ | o execute(): invoked when the component is activated; expressions can be installed via processExpression(String) or registerRule(String, | ||
+ | |||
+ | o all methods invoked from within the interaction rules (cfr. is-operator) && invoke(String, | ||
+ | |||
+ | 3. Compile the component: | ||
+ | |||
+ | $ ant jar-app | ||
+ | |||
+ | ===== Macro-CrimeSPOT ===== | ||
+ | ==== The network-level dialect ==== | ||
+ | A CrimeSPOT WSN application can be created from the network-level perspective in the Macro-CrimeSPOT dialect. | ||
+ | |||
+ | Examples can be found on https:// | ||
+ | |||
+ | ==== The precompiler ==== | ||
+ | The precompiler for compiling Macro-CrimeSPOT code to node-level component jars can be obtained via SVN: | ||
+ | |||
+ | 1. Checkout the Eclipse project from https:// | ||
+ | |||
+ | 2. Use edu.vub.crimespot.precompiler.Main to compile a source file | ||
- | < | + | 3. The resulting components can be found in Macro_CRIMESpot/components. Their Java code can be further refined, or the jars can be deployed immediately on SunSPOTs. |
- | </code> | + |
crime/sunspot.1277975508.txt.gz · Last modified: 2010/07/01 11:17 (external edit)