getting_started:tutorials:hal0
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
getting_started:tutorials:hal0 [2017/04/27 15:16] – created graf | getting_started:tutorials:hal0 [2021/03/31 15:46] (current) – ursgraf | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Using the HAL with the Simulator ====== | ====== Using the HAL with the Simulator ====== | ||
- | In the EEROS library you will find a directory with examples. Open a shell in the build directory | + | The [[eeros_architecture: |
- | This examples does: | + | |
- | * Creates a main task //ss// with an execution period of five milliseconds. The task itself is defined of type '' | + | |
- | * Creates a time domain //t1// with a period of five milliseconds. | + | |
- | Both harmonic tasks have a periodic counter which measure its periods | + | In the EEROS library you will find a directory with examples. For this example see [[https:// |
- | Additionally both harmonics have a default monitor function added. This monitor function logs a warning if the measured period differs more than 5%. Depending on your hardware platform and realtime support of your operating system you might get no warnings, several or many warnings. | + | |
+ | Open a shell in the build directory of your EEROS library | ||
+ | < | ||
+ | $ ./halTest1 -c HalTest1Config.json | ||
+ | </ | ||
+ | This examples creates a small control system with a couple of peripheral input and output blocks as shown below. | ||
+ | [{{ : | ||
+ | The dashed lines denote the feedback of the signals by the simulator. \\ | ||
+ | The main sequence alters the values on digital and analog outputs periodically. A separate periodic task logs the digital and analog inputs. | ||
+ | * The state on the digital output 0 is reflected by the simultor to the digital input 0. The control system connects this input to the digital output 1, which in turn is reflected by the simulator to digital input 1. However, the second reflection is '' | ||
+ | * A constant value is output to analog output 0 and 2. These values change every 10 seconds. Both are reflected onto analog inputs 0 and 2, respectively. | ||
+ | |||
+ | ===== Accessing Output Signals Directly ===== | ||
+ | A peripheral output block delivers | ||
+ | |||
+ | Alternatively the signal in the HAL could be accessed by getting an reference to the corresponding output block with | ||
+ | <code cpp> | ||
+ | auto digOut = hal.getLogicOutput(" | ||
+ | </ | ||
+ | The signal value can then be logged with | ||
+ | block with | ||
+ | <code cpp> | ||
+ | log.info() << digOut->get(); // line 47 | ||
+ | </ | ||
+ | You have to make sure to access the output with non-exclusive rights, because the control system already has a handle to it, see line 28 in '' |
getting_started/tutorials/hal0.1493298980.txt.gz · Last modified: 2017/04/27 15:16 by graf