Next century challenges: mobile networking for “Smart Dust”
MobiCom '99 Proceedings of the 5th annual ACM/IEEE international conference on Mobile computing and networking
The C++ Programming Language
C++ Templates
Maté: a tiny virtual machine for sensor networks
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
A java virtual machine architecture for very small devices
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Contiki - A Lightweight and Flexible Operating System for Tiny Networked Sensors
LCN '04 Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks
Design and implementation of a framework for efficient and programmable sensor networks
Proceedings of the 1st international conference on Mobile systems, applications and services
The squawk virtual machine: Java™ on the bare metal
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Marionette: using RPC for interactive development and debugging of wireless embedded networks
Proceedings of the 5th international conference on Information processing in sensor networks
TinyECC: A Configurable Library for Elliptic Curve Cryptography in Wireless Sensor Networks
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
MacroLab: a vector-based macroprogramming framework for cyber-physical systems
Proceedings of the 6th ACM conference on Embedded network sensor systems
Macro-programming wireless sensor networks using Kairos
DCOSS'05 Proceedings of the First IEEE international conference on Distributed Computing in Sensor Systems
Topology control algorithms in WISELIB
Proceedings of the 2010 ICSE Workshop on Software Engineering for Sensor Network Applications
Distributed game-theoretic vertex coloring
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
Demo abstract: bridging the gap between simulated sensor nodes and the real world
REALWSN'10 Proceedings of the 4th international conference on Real-world wireless sensor networks
Debugging the internet of things: a 6LoWPAN/CoAP testbed infrastructure
ADHOC-NOW'12 Proceedings of the 11th international conference on Ad-hoc, Mobile, and Wireless Networks
Configuration and operation of networked control systems over heterogeneous WSANs
ACM Transactions on Embedded Computing Systems (TECS) - Special Section on ESTIMedia'10
Hi-index | 0.00 |
One unfortunate consequence of the success story of wireless sensor networks (WSNs) in separate research communities is an ever-growing gap between theory and practice. Even though there is a increasing number of algorithmic methods for WSNs, the vast majority has never been tried in practice; conversely, many practical challenges are still awaiting efficient algorithmic solutions. The main cause for this discrepancy is the fact that programming sensor nodes still happens at a very technical level. We remedy the situation by introducing Wiselib, our algorithm library that allows for simple implementations of algorithms onto a large variety of hardware and software. This is achieved by employing advanced C++ techniques such as templates and inline functions, allowing to write generic code that is resolved and bound at compile time, resulting in virtually no memory or computation overhead at run time. The Wiselib runs on different host operating systems, such as Contiki, iSense OS, and ScatterWeb. Furthermore, it runs on virtual nodes simulated by Shawn. For any algorithm, the Wiselib provides data structures that suit the specific properties of the target platform. Algorithm code does not contain any platform-specific specializations, allowing a single implementation to run natively on heterogeneous networks. In this paper, we describe the building blocks of the Wiselib, and analyze the overhead. We demonstrate the effectiveness of our approach by showing how routing algorithms can be implemented. We also report on results from experiments with real sensor-node hardware.