IMEC sensing engine in w-iLab.t office
Following w-iLab.t nodes are equipped with the IMEC sensing engine (currently, only one node is accessible to the general public):
- node24 @w-iLab.t Office
Basic usage
From earlier experiments we could observe that the sensing engine can grab the 2.4 ISM band (in 768 FFT bins) ca. 60 times a second. (This rate depends on the resources of the host machine, it is possible that the alix becomes a bottle neck here.) To reduce this rate we decided to scale back to 3 times a second with a software max-hold filter.
w-iLab.t Office
- The experimenter must run an iPlatform on the nodes where he/she wants to use the sensing engine.
- He/she should invoke the /work/startImecSensing on the node itself from the command line or from the iPlatform start_mount_code.
- The resulting data of the IMEC sensing engine is then stored in the seIMEC table of the mysql database wilabinfo. If you don't have access please ask the maintainers of the lab.
- The information of seIMEC table can be used as any other information in the visualiser and analyser tools.
We experienced that the current code is consuming all the CPU resources of the alix.
Advanced usage
A more advanced use of the sensing engine is based on changing the code that can be found on the wilabfs file server at /work/imec-sensing/sensing_engine_20120210/. The two scripts located in this directory are essential, they are called setup.csh which should be used on wilabfs to build your code with the Makefile and the run.csh which should be invoked on the node itself to start the sensing engine.
To be able to change the code you should copy the directory or at least the main.c to your local directory on wilabfs. After a successful setup.csh the resulting binary can only be executed on the nodes that are equipped with the IMEC sensing engine. More information on the API of the IMEC sensing engine can be found in the header files located at /work/imec-sensing/sensing_engine_20120210/library. If you have more questions on this matter please do not hesitate to contact the maintainers of the lab.
Behind the scenes of the distributed sensing
... or streaming the data coming from the sensing engines towards a central database.
We used a recent version of ncat which you get here.
On the server
For the basic usage we create a table in the wilabinfo database as described in the attachment createTableSeIMEC.txt .
We define a script with name myServerScript like this:
#!/bin/bash MYSQL_CMD='mysql -uwilabinfo -pwilabinfo wilabinfo -B -s -e' while read data; do $MYSQL_CMD "insert seIMEC values ($data)"; done
We run this in command line on myServer, here we selected 25 as the number of maximum clients
ncat -m 25 -kvlu myPort -e myServerScript
On the client
Currently the stderr of the run.csh is redirected to /tmp/sensingData.dat which was setup with the following commands.
mkfifo /tmp/sensingData.dat chmod 666 /tmp/sensingData.dat
We define a script with name myClientScript like this:
#!/bin/bash while true; do cat /tmp/sensingData.dat | while read line; do echo $line done done
And we execute ncat and execute the IMEC code:
ncat myServer myPort -p myPort -ue myClientScript & run.csh 2> /tmp/sensingData.dat
Attachment | Size |
---|---|
createTableSeIMEC.txt | 15.18 KB |