Developer Resources

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.

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.