The ProFuN TG tool
ProFuN TG (Task Graph) is a high-level programming environment for wireless sensor networks. It helps the application programmer with software design, deployment and maintenance.
Features:- Design task graphs using Node-RED-like frontend
- Specify performance requirements on dataflows
- Specify a model of the network
- Map the tasks to a model of the network
- Define and use custom tasks and custom objective functions
- Simulate applications using Cooja
- Build firmware images and automatically upload them on real, connected sensor nodes
- Wirelessly control the runtime state of tasks in the network
- Monitor the performance of the network; receive alerts on failures
- Collect sensor data and alert notifications from the network through a JSON-speaking gateway server
Task graph view
Network + allocation view
Tutorials
Basic example Data collection and visualization Constraints More advanced task graphs Custom task functions Tuning the task allocator
Why task graphs?
Thinking about applications as task graphs opens up a number of benefits - here are some of them.
Automated task mapping
Using a single click, map the task graph to a network in a way that optimizes energy-efficiency or another objective function.
Constrain the mappings by describing requirements for node hardware components and properties; setup task copies per-node or per-region. Automatically build firmware images with the right components enabled.
In the example, a simple Sensor (S) -> Actuator (A) task graph is instantiated in the network in three copies.
Integrated performance requirements
Specify the minimal acceptable path quality between a communicating pair of source and destination tasks. Describe link-qualities either with simple number of complex probability distributions and let the the tool automatically infer the path quality.
Adaptations
Achieve higher reliability through automated task reallocation on link, node or sensor failures.
Redundancy
(a) For increased reliability and coverage create multiple task copies on redundant sensor nodes. (b) For increased energy efficiency, reduce the number of copies as long as acceptable performance is achieved. (c) On node failures, the task copies are automatically moved around.
Demo
Demo web UI (try out the task allocation functionality!) (Note: for now, mobile browsers are not supported)Demo virtual machine image (2.2 GB unzipped; MD5 hash: bb4b080eb7ed07b72944d4cb2b19ce5a
)A short demo video Tutorial: Introduction Tutorial part 1: Building Task Graph and Network Topology Tutorial part 2: Setting up nodes and tasks and performing task allocation Tutorial part 3: Simulation and visualisation Tutorial part 4: Task allocation and runtime constraints Tutorial part 5: Final remarks and features of the tool