A module is a block of code which is able to communicate with any other modules in the Luos network.
Each module provides a particular set of tasks such as managing a motor, handling a laser range finder, or compute an inverse-kinematics. Each module is hosted in a single nodeHardware element (MCU) hosting and running Luos and hosting one or several modules. (MCU), but a node can handle several modules at the same time and manage communication between them and between other modules hosted in other nodes, using the same interface.
As a developer you will always develop your functionalities into modules, and never into the
main() program. The only information that should be put on the
main() code are MCU setup parameters and modules' run functions.
To properly work, each module owns some properties allowing to other modules to recognize and access it:
|ID||The ID is a unique number given to each module depending on their physical position. The system automatically assigns each ID during the detection phase. If you move a module from a microcontroller A to a microcontroller B on a given device, the ID will change. In the same way, if you change the wiring order of a microcontroler on the network on a given device, the ID will change too.||Integer|
|TYPE||The type defines the module purpose. A few types are predefined and can be used, or new ones can be created. The module type can't be changed after module initialization.||String|
|ALIAS||Alias is the name of the module. It's used to easily identify a module. Each module has a default alias which can be changed by users. For example, a module with the default alias ||String|