This module shows how a dashboard can remotely display data from a sensor in real time.
The sensor chosen in this example is the accelerometer of an Android device but the same could be done with other sensors.
The module has a dashboard with just two widgets: a graph and a switch.
The switch is bound to the @active exterior function:
(function (context act)
(if (= act null)
(if act (register_acc) (unregister_acc))
When the switch is activated, the register_acc function is called to register a listener for the accelerator data. This is done through the sensor function of the android Library:
(if (not active)
(set accelerometer/x d/2)
(set accelerometer/y d/3)
(set accelerometer/z d/4)
(### "Update the graph widget")
(set active true)
(### "Update the switch widget")
After that, the accelerometer data
is saved in the accelerator variable
("x" => -0.061676025390625 "y" => 5.7689208984375 "z" => 8.949508666992188)
and displayed in the graph widget.
When the user deactivates the switch, the unregister_acc funcion is called to remove the listener of the accelerator data.
(sensor "unregister" "accelerometer")
(set active false)
This is how the dashboard looks like when accelerator data is being captured:
Note that the dashboard can display the accelerometer data in real time even when we are connected remotelly.