Technology Careers Contact
Documentation Community Download Support

Modules

A module is a block of code which is able to communicate with any other modules in the Luos network.

A module can be an application or a driver.

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.

Module properties

To properly work, each module owns some properties allowing to other modules to recognize and access it:

NameDescriptionFormat
IDThe 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
e.g. Id=1
TYPEThe 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
e.g. type=DISTANCE_MOD
ALIASAlias 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 motor_mod can be named left_knee_motor by user. This new name will be stored in the non-volatile memory of the board. As we don't want to have multiple modules with the same name, a duplicate name on your system will be automatically assigned with an incrementing number at its end, in the network. You can go back to the default name by setting a void name ("") to a module.String
e.g. alias="gate"

Follow Watch Star