Platforms
Commotion runs on multiple software and hardware platforms: Embedded routers, smart phones, desktops and laptops, and open source GSM basestations. Development on each of these platforms occurs in parallel. Where possible, a common set of tools are used to develop Commotion, no matter the platform. However, there are certain platforms where unique tools are required.
- Commotion-Router development guide
- Commotion-Android app development guide
- Linux app development guide
- Windows app development guide
- Mac OS X app development guide
- Open GSM development guide
Architectures
All Commotion platforms share a common core: a shared network medium (usually ad-hoc Wifi, known as IBSS) and an IP routing protocol (OLSRd). Read more about the Commotion architecture and how it varies across platforms on the Developer Wiki.
Code
Commotion is written in a combination of C, Lua, Javascript, Python, Java, shell, Objective-C, PHP. All of our source code is hosted on Github. To see the relationship between code repositories and the Commotion architecture, read the architecture documents above.
See the GitHub Workflow page on the Commotion Wiki for information on the Commotion team's GitHub workflow.
Debugging Tools
Commotion developers rely on a combination of tools, experience, and intuition to debug. We use gdb, ddms and unit testing. Read more about our testing procedures and methodologies and procedures for lab testing on the Developer Wiki.
Read more about common debugging procedures we use on the Developer Wiki. To report bugs and submit fixes, use our issue tracker.