eeros_architecture:hal:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
eeros_architecture:hal:start [2017/04/16 20:33] – [Inputs and Outputs of the Safety System] graf | eeros_architecture:hal:start [2019/03/26 11:39] (current) – gehrig | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Hardware Abstraction Layer ====== | ====== Hardware Abstraction Layer ====== | ||
The HAL provides an interface between the robot control system (consisting of control system, safety system, and sequencer) and the hardware of the robot. Any signal from a hardware input or output must pass through the HAL. | The HAL provides an interface between the robot control system (consisting of control system, safety system, and sequencer) and the hardware of the robot. Any signal from a hardware input or output must pass through the HAL. | ||
+ | * [[eeros_architecture: | ||
+ | * [[eeros_architecture: | ||
+ | * [[eeros_architecture: | ||
+ | * [[eeros_architecture: | ||
+ | * [[eeros_architecture: | ||
+ | * [[eeros_architecture: | ||
+ | * [[eeros_architecture: | ||
+ | * [[eeros_architecture: | ||
+ | * [[eeros_architecture: | ||
===== Configuration of the HAL ===== | ===== Configuration of the HAL ===== | ||
- | The inputs and outputs of the system are given by a specific hardware setup. This can vary widely among different systems. To account for many possible hardware settings we use a configuration file. This file describes the current hardware together with the necessary library to access them, see [[coming soon]]. | + | The inputs and outputs of the system are given by a specific hardware setup. This can vary widely among different systems. To account for many possible hardware settings we use a configuration file. This file describes the current hardware together with the necessary library to access them, see [[Configuration File]]. |
The configuration given in the file can be loaded as follows: | The configuration given in the file can be loaded as follows: | ||
<code cpp> | <code cpp> | ||
Line 15: | Line 23: | ||
hal.readConfigFromFile(& | hal.readConfigFromFile(& | ||
</ | </ | ||
+ | Now, you can pass the configuration file with | ||
+ | < | ||
+ | $ ./ | ||
+ | </ | ||
+ | Note: This HAL option has to be the first option if additional command line options are used. | ||
+ | |||
This call causes the following actions: | This call causes the following actions: | ||
* the configuration file will be parsed | * the configuration file will be parsed | ||
Line 20: | Line 34: | ||
* for each channel an appropriate object is created with the id given in the configuration file | * for each channel an appropriate object is created with the id given in the configuration file | ||
* these objects will be registered in the HAL manager | * these objects will be registered in the HAL manager | ||
- | ===== Using HAL Objects ===== | + | ===== Available |
- | Hal objects | + | All input objects |
- | ==== Inputs and Outputs | + | The following functions are available: |
- | The safety system can check for each of its safety levels whether the level of certain channels meet given criterias. Such channels are called critical | + | |
- | The safety system will get a handle to tha HAL object with: | + | |
<code cpp> | <code cpp> | ||
- | | + | |
+ | Output< | ||
+ | ScalableOutput< | ||
+ | InputInterface* getInput(std:: | ||
+ | | ||
+ | ScalableInput< | ||
</ | </ | ||
- | Here, you get a reference to an digital input representing the emergency button. Please make sure that the id (" | ||
- | |||
- | ==== Inputs and Outputs of the Control System ==== | ||
- | The control system can read from or write to the hardware solely through its [[eeros_architecture: | ||
- | |||
- | <code cpp> | ||
- | eeros:: | ||
- | eeros:: | ||
- | </ | ||
- | Please make sure that the ids (" | ||
- | |||
eeros_architecture/hal/start.1492367629.txt.gz · Last modified: 2017/04/16 20:33 (external edit)