Xmera Modules#

This chapter covers the fundamentals of designing Xmera modules and how to write a module using C++, C, or Python. As with all code documentation, it is never truly complete and is always a work in progress.

For general developer resources—including coding guidelines, forking the repository, building the Sphinx documentation system, and more—see the Support/Developer Information section in Xmera Modules.

The following pages walk through the primary tasks required to create a Xmera module. Topics include how to design a module, how the message-passing system works, what methods are required in a module, and more. Note that dynamics modules are both Xmera modules and subclasses of either:

  • dynamicEffector — provides external forces and torques acting on the spacecraft, but does not have internal state differential equations.

  • stateEffector — includes internal state differential equations that couple with the spacecraft rigid body.

Warning

The goal of this documentation is to support the module creation process. However, it does not eliminate the need to study the Xmera source code, particularly how existing modules are implemented, to fully understand the module architecture.