The onboard software was developed in C++, runs on a Linux kernel, and is composed by a set of independent processes. In this way, not only the system modularity and robustness are increased but also its debugging and recovery from unexpected events are much simpler. Communications between the modules rely on a message passing mechanism, using the User Datagram Protocol. This allows connectionless data transmissions, with reduced processing overhead, as required in this kind of applications. The data path between different processes can be easily reconfigured, increasing therefore the flexibility of the system and simplifying the integration of new modules. Moreover, it is also possible to modify data paths when the software is running by issuing special commands to the relevant modules.
Was this article helpful?