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.
The new version of this software is divided into layers.
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.
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 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:
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...
Link to the mandatory class: