User Tools

Site Tools


eeros_architecture:control_system:executor

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
eeros_architecture:control_system:executor [2021/02/10 11:20] – [Add More Timedomains] ursgrafeeros_architecture:control_system:executor [2021/02/10 15:28] (current) – [Using the Executor] ursgraf
Line 8: Line 8:
 In this example we have the safety system as the main task. It has the fastest execution period together with the time domain 1. The time domain 2 runs with the same period but only after time domain 1 has finished. Time domain 3 has a harmonic relationship to the main task with a ratio of 2. In this example we have the safety system as the main task. It has the fastest execution period together with the time domain 1. The time domain 2 runs with the same period but only after time domain 1 has finished. Time domain 3 has a harmonic relationship to the main task with a ratio of 2.
          
-===== Initialize the Executor ======+===== Using the Executor  ======
 First you have to define the executor. First you have to define the executor.
 <code cpp> <code cpp>
Line 14: Line 14:
 </code> </code>
  
-Next we have to define the main task. In general the main task will be the safety system. To make matters simple we omit the definition of the safety system. Please check for this in [[getting_started:tutorials:safetysystem|]].+Next we have to define the main task. In general the main task will be the safety system. 
 <code cpp> <code cpp>
   SafetySystem ss(properties, 0.001); // runs every millisecond   SafetySystem ss(properties, 0.001); // runs every millisecond
Line 44: Line 44:
 IMPORTANT Please make sure to run an application using the executor with root privileges. This is necessary for the executor to be able to create threads with realtime priorities.  IMPORTANT Please make sure to run an application using the executor with root privileges. This is necessary for the executor to be able to create threads with realtime priorities. 
  
-===== Add More Timedomains ====== +===== Add More Time Domains ====== 
-The picture at the top of this page shows another two time  +The picture at the top of this page shows another two time domains. Time domain 2 runs after time domain 1. It can be created and added to time domain 1 as follows 
 +<code cpp> 
 +  eeros::control::TimeDomain td1("td1", 0.001, true); 
 +  eeros::task::Periodic per1("per1", 0.001, td1); 
 +  eeros::control::TimeDomain td2("td2", 0.001, true); 
 +  eeros::task::Periodic per2("per2", 0.001, td2); 
 +  per1.after.push_back(per2); 
 +  executor.add(per1);  
 +</code> 
 +Time domain 3 runs concurrently to time domain 1. It can therefore be created simply with 
 +<code cpp> 
 +  eeros::control::TimeDomain td3("td3", 0.002, true); 
 +  executor.add(td3);  
 +</code>
eeros_architecture/control_system/executor.1612952450.txt.gz · Last modified: 2021/02/10 11:20 by ursgraf