Join GitHub today
+++ Applying for Google Summer of Code 2015 +++
The Wiselib project is applying for Google Summer of Code 2015!
We hope that we will have the support of Google to give talented students the opportunity to solve interesting problems in algorithms and protocols for networked embedded systems, such as wireless sensor nodes, or smartphones. Projects around the Wiselib involve working with embedded devices, solving diverse challenges w.r.t. communication protocols and standards, embedded platforms, and embedded applications. Depending on the problem at hand this includes programming on PCs, testbeds of sensor nodes, and Android or iOS smartphones. We are looking forward to get to know students that want to work on the Wiselib during GSoC, if you are interested be sure to check out our Wiselib GSoC Page for project ideas and further information and visit our freenode IRC channel #wiselib!
What is the Wiselib?
The Wiselib is an algorithms library for networked embedded devices. It contains various algorithm classes (for instance, localization or routing) that can be compiled for several platforms such as iSense or Contiki, or the sensor network simulator Shawn. It is completely written in C++, and uses templates in the same way as Boost and CGAL. This makes it possible to write generic and platform independent code that is very efficiently compiled for the various platforms.
We provide easy-to-use interfaces to the OS, which simplifies the development process and decreases the need for dealing with low-level functionality of specific hardware platforms. Algorithms can even be run in a simulation environment first (for debugging purposes, for example), and then compiled for real hardware platforms without changing a single line of algorithm code.
Algorithms can be directly integrated in your application. For example, when developing an application for iSense that collects sensor data values, a Wiselib routing algorithm can be used to route the data to a sink. Another scenario are pure Wiselib applications: We provide an own
application_main that is called by Wiselib code, and you can integrate algorithm implementations there. The advantage is that these applications can be compiled for any supported platform, without changing a single line of code (instead, just makefile targets).
Wiselib Download & Support
Anonymous github Access:
Download zipped archive: (probably outdated - use the git!)
- Write an empty mail to
firstname.lastname@example.org, and confirm as described in the received mail.
- If sth doesn't work properly, or you have any not-public questions just write a mail to
- Write an empty mail to
Virtual Machine (contains compilers for all supported systems - Ubuntu, 6.5GB, ~2GB packed)
Anonymous SVN Access (outdated!):
https://svn.itm.uni-luebeck.de/wisebed/wiselib/tags/2011-07-19-github(tag made directly before moving to github)
Wiselib Papers and Presentations
Algorithm Implementations in Wiselib
- Topology control algorithms in WISELIB (ICSE2010) paper,
- A Protocol for Self-Synchronized Duty-Cycling in Sensor Networks: Generic Implementation in Wiselib (MSN10) paper,
- Distributed Game-Theoretic Vertex Coloring (OPODIS'10) paper,
- Bridging the Gap between Simulated Sensor Nodes and the Real World (REALWSN10) paper.
Wiselib as Development Framework for Experimentation
- Distributed algorithm engineering for networks of tiny artifacts (Computer Science Review) paper,
- Distributed Self-organized Societies of Tiny Artefacts book.
- Basic Design Components
- [[C++ Usage: Dos and Dont's within the Wiselib|Cpp-Usage]]
Important: Copy std_config*.h to config*.h
Wiselib Application Development - Examples of how to integrate an algorithm in an application
Generic Wiselib Application (How to write an application that can be compiled for different platforms)
iSense Wiselib Application (Direct integration in iSense applications)
Shawn Wiselib Application (Direct integration in Shawn processor)
- Wiselib Einführung - German Wiselib Introduction Slides
- Wiselib School - Slides and Source Code
- Programming Hints
- All-in-one - Wiselib and Shawn installation and integration
- Updating Wiselib / iSense
Concepts and Models
Wiselib Design (concepts and models) is documented as Doxygen documentation. Follow the link for details:
- Wiselib Design (Doxygen generated Documentation)
- Backup Wiselib Concepts (old Wiki-based documentation)
Message ID Allocation
- General C++ Issues
- C++-Compiler for Embedded Systems (and their restrictions)
- Sensor Node Hardware
- Sensor Node OSs (Information about Contiki, TinyOS, iSense OS, ...)
- Delegates (concept for callback realization without virtual member functions)