Atlascar Base module

atlascar_base

The atlascar_base package

This module establishes communication with the atlascar control PLC, handling all control communications.

It also preforms many other operations that the respective owners should explain expanding this page.

Multi layer architecture

The new version of this software is divided into layers.

There are tree layers in total: the hardware layer, the low level software layer and the middle level software layer.

Hardware layer

This layer is responsible for the control of each individual system on a firmware level, so the code is not present here (references for the hardware folders should be presented here).

The hardware is composed of a number of different systems:

Expansion to accommodate new modules is possible.

Low level software layer

The low level software layer establishes communications with the firmware layer and relays commands from the middle layer.

This layer should not interpreter in anyway, other than to check the limits, the commands being received.

System status coming from the hardware should not be changed in anyway.

Each system is comprised of tree files at the low level:

The style of each of these files is very restrictive and should follow the style in plc.cpp and plc.h that are already complete.

The authors of each class must pay special attention to the use of namespaces, mandatory common functions, naming and function operation.

The use of global variables is strictly prohibited!!

The node of each system should be as similar as possible to easy code interpretation.

All low level classes are obliged to use atlascar_base::CommandQueuePriority class to interpreter command messages. The documentation of the class provides details into its use.

These are some recommendations to the poor fellows that will make the code.

Links to the mandatory classes:

All the messages that will be transmitted between the low level and the middle layer are already created:

Middle level software layer

This layer coordinates communication from the outside to each of the systems.

It is still not implemented, but the main functions will be status messages coordination and single publishing, calibration of variables, state machine control in several operating modes (still to be defined), etc...

The code of the middle level will be very similar to the low level layer, class declaration in manager.h, implementation in manager.cpp and node in manager_node.cpp.

Link to the mandatory class:

Gearbox

Instructions to initialize manually gearbox:

Initialize Software of maneuvers:

Calibration:



atlascar_base
Author(s): Jorge Almeida, Sérgio Pinho, Miguel Oliveira, Pedro Salvado, Andre Oliveira and Pedro Pinheiro
autogenerated on Mon Mar 2 2015 01:31:23