A Signal is a register that stores a runtime value that is written by any thing (board, app, web) and read by others, leading into a seamless communication.
Signal contains the geo-coordinates that are runtime as well. Geo-coordinates may be ignored if location feature is not needed.
Signal also contains a set of static parameters or metadata intended to make the Signal comprehensive for the user
The write and read commands are defined in REST API and might be implemented (or not yet) for the particular thing you are using in our libraries collection.
The starting point is the Workshop where the user can create, edit, delete, list his/her own signals. There the activity logs and raw data can be downloaded.
Feed your Signals or read with API and libs from your things. Something similar as is shown in the available experiments.
Once Signals are defined user can use them in different panels at the Dashboard. Use one panel for every different experiment, it will let you monitor and control the Signals that are yours, shared privately with you or published by others. Actuators and Views are user interface objects that let execute Write and Read actions manually. In a Panel, toggle to "Graph Mode" to see the timeline graphs in real-time or toggle to "Map Mode" to trace the tracks in real-time. Both modes let you download the timeline samples or track samples.
You can publish (or not) your Signal in our community feed.
You can also share a link for the people outside Circus to see your Signal.
Anything (app, board, web) can connect to Circus with our REST API.
You don't really need a library to connect your thing to Circus.
The libraries below will make your life easier for some languages we explored.
|Targeted Thing||Firmware||Library file|
|Arduino + ESP01||Arduino IDE||
|PC||Debian / Linux||circusdebianlib_1.1-1.deb|
|Raspberry Pi||Raspbian / Linux||CircusRaspiLib.deb|
|Thing running JAVA||JAVA||