The xpcc project consists of two main parts:
- First part is the xpcc communication module, a packet oriented communication protocol, enabling transparent communication between components on different platforms (from PCs to small 8-bit microcontrollers). It provides an interface to communicate via CAN, TCP/IP or TIPC.
- The second part is a ever growing universal but a bit robotic oriented C++ library for microcontrollers.
The primary aim has been the usage of this system in autonomous robots for the EUROBOT competition, but it can be used for many other purposes as well.
$ git clone git://github.com/roboterclubaachen/xpcc.git xpcc
$ cd xpcc
The main documentation is created from doxygen files in the doc-folder. It can be found [online here] (http://xpcc.kreatives-chaos.com/api/).
The new things we are working on are created on feature branches, and as
soon as they compile, merged into the develop
branch.
We do annual releases on our master
branch. They contain the code that has
been tested on our robot for the past season.
So if you want to have a somewhat stable and tested codebase and you are
satisfied with the features it contains, we recommend you use one of our
releases. On the other hand, if you want to use the most recent code
(and don't mind us breaking APIs now and then), or if you want
to develop for xpcc, you should use the develop
branch.
- build
- Temporary folder, build files created during building the unit tests etc. go in here. Can be deleted to save disk space.
- doc
- Documentation, mainly the doxygen documentation. The online documentation on http://xpcc.kreatives-chaos.com/api/ is build by running 'doxygen doxyfile' in this folder.
- examples
- Example projects that show the usage of parts of the xpcc library. These projects are always up to date and are tested to compile before a release.
- release
- Among other things some test programs which are run before a release to check that everything is compiling correctly.
- scons
-
SCons tools (e.g. xpcc.py for the build process, avr.py for compiling for
AVR microcontrollers, arm.py for compiling for ARM7 and Cortex-M0/3/4, etc.)
Look at the SConstruct files in the example folder and the online documentation to see how to use the provided scons tools.
- src
- Source files for the xpcc library
- templates
- Template files for xpcc, Unit-Tests etc.
- tests
- Test programs, used during the development of the library. May be out of date or not working at all.
- tools
-
Supporting tools for the usage of the library.
For example the communication builder, used to generate header files for the communication architecture from XML-files.
Use the library and give us some feedback. That's the easiest way for you and the best way for us to see if something is unclear or missing.
There is a mailing list: xpcc-dev
If you need a specific feature just drop us a mail and we will look into it. But don't expect a quick response, we are always busy building robots ;-)
If you want to change the library be sure to read the developer section, to familiarize yourself with the coding convention, design decisions etc. The source code is freely available, so feel free to adapt it to your needs. The only thing we ask you to do is to contribute your changes back. That way everybody can profit from it.
Have fun!