OpenEL implemented in C++
OpenEL(Open Embedded Library) is a unified API(Application Programming Interface) for actuators and sensors. The specifications and implementation have been developed by JASA(Japan Embedded Systems Technology Association) since 2011.
https://openel.github.io/
This document explains about Package contents and How to use OpenEL version 3.2.x.
openel-cpp -+- include +- lib +- sample +- LICENSE +- README.md (This file)
include --- Header files for OpenELlib --- Library files for OpenELsample --- A sample program which use OpenEL APILICENSE --- License fileREADME.md --- This file
When you compile a program which use OpenEL API, set PATH to openel-cpp/include/surface and openel-cpp/include/device/your_componentdirectory to use the header file(openEL.hpp etc.) for OpenEL.
For examples, when you use gcc
-Iopenel-cpp/include/surface -Iopenel-cpp/include/device/your_component
Include the header file named "openEL.hpp" etc. to use OpenEL API
For examples,
#include "openEL.hpp"#include "Actuator.hpp"#include "Sensor.hpp"#include "HAL4RT.hpp"#include "HALId.hpp"#include "ReturnCode.hpp"#include "HALComponent.hpp"#include "HALObserver.hpp"#include "EventTimer.hpp"#include "TimerObserver.hpp"#include "Property.hpp"
When you compile a program which use OpenEL API, set LIBRARY PATH to openel-cpp/lib/surface and openel-cpp/lib/device/your_component to link the library file for OpenEL.
For examples, when you use gcc
-Lopenel-cpp/lib-Lopenel-cpp/lib/device/your_component
>Link the library file named "libopenel.a" to use OpenEL API.
For examples,
gcc -o sample sample.cpp -I/.../openel-cpp/include/surface -lopenel -lstdc++
See sample/simLinux/Makefile for details.
$ cd sample/simLinux$ make$ ./sampleopenEL StartHalInit ActuatorSim HAL-ID 1 0 0 1HalInit ActuatorSim HAL-ID 1 0 0 2HalInit SensorSim HAL-ID 2 0 0 1PROPERTY - Name : SimLinuxActuatorPROPERTY - fnc00 : InitPROPERTY - fnc01 : ReInitPROPERTY - fnc02 : FinalizePROPERTY - fnc03 : AddObserverPROPERTY - fnc04 : RemoveObserverPROPERTY - fnc05 : SetValuePROPERTY - fnc06 : GetValuePROPERTY - fnc07 : (null)PROPERTY - fnc08 : (null)PROPERTY - fnc09 : (null)PROPERTY - fnc0A : (null)PROPERTY - fnc0B : (null)PROPERTY - fnc0C : (null)PROPERTY - fnc0D : (null)PROPERTY - fnc0E : (null)PROPERTY - fnc0F : (null)PROPERTY - fnc10 : (null)PROPERTY - fnc11 : (null)PROPERTY - fnc12 : (null)PROPERTY - fnc13 : (null)PROPERTY - fnc14 : (null)PROPERTY - fnc15 : (null)PROPERTY - fnc16 : (null)PROPERTY - fnc17 : (null)PROPERTY - Name : SimLinuxActuatorPROPERTY - fnc00 : InitPROPERTY - fnc01 : ReInitPROPERTY - fnc02 : FinalizePROPERTY - fnc03 : AddObserverPROPERTY - fnc04 : RemoveObserverPROPERTY - fnc05 : SetValuePROPERTY - fnc06 : GetValuePROPERTY - fnc07 : (null)PROPERTY - fnc08 : (null)PROPERTY - fnc09 : (null)PROPERTY - fnc0A : (null)PROPERTY - fnc0B : (null)PROPERTY - fnc0C : (null)PROPERTY - fnc0D : (null)PROPERTY - fnc0E : (null)PROPERTY - fnc0F : (null)PROPERTY - fnc10 : (null)PROPERTY - fnc11 : (null)PROPERTY - fnc12 : (null)PROPERTY - fnc13 : (null)PROPERTY - fnc14 : (null)PROPERTY - fnc15 : (null)PROPERTY - fnc16 : (null)PROPERTY - fnc17 : (null)PROPERTY - Name : SimLinuxSensorPROPERTY - fnc00 : InitPROPERTY - fnc01 : ReInitPROPERTY - fnc02 : FinalizePROPERTY - fnc03 : AddObserverPROPERTY - fnc04 : RemoveObserverPROPERTY - fnc05 : GetPropertyPROPERTY - fnc06 : GetTimePROPERTY - fnc07 : GetValueListPROPERTY - fnc08 : GetTimedValueListPROPERTY - fnc09 : (null)PROPERTY - fnc0A : (null)PROPERTY - fnc0B : (null)PROPERTY - fnc0C : (null)PROPERTY - fnc0D : (null)PROPERTY - fnc0E : (null)PROPERTY - fnc0F : (null)PROPERTY - fnc10 : (null)PROPERTY - fnc11 : (null)PROPERTY - fnc12 : (null)PROPERTY - fnc13 : (null)PROPERTY - fnc14 : (null)PROPERTY - fnc15 : (null)PROPERTY - fnc16 : (null)PROPERTY - fnc17 : (null)motor01 getTime ret=0Motor time = 0sensor01 getTime ret=0Sensor time = 0notify_event201a : 1234notify_error201a : 5678notify_event201b : 1234notify_error201b : 5678timer 4 , 40 , 2 : 0.314 2.487 1.234 0.174 1(tmSen)timer 10 , 100 , 5 : 1.910 5.878 1.234 0.174 1(tmSen)timer 15 , 150 , 7 : 4.122 8.090 1.234 0.342 2(tmSen)timer 20 , 200 , 10 : 6.910 9.511 1.234 0.342 2(tmSen)timer 25 , 250 , 12 : 10.000 10.000 1.234 0.500 3(tmSen)timer 30 , 300 , 15 : 13.090 9.511 1.234 0.500 3(tmSen)timer 35 , 350 , 17 : 15.878 8.090 1.234 0.643 4(tmSen)timer 40 , 400 , 20 : 18.090 5.878 1.234 0.643 4(tmSen)timer 45 , 450 , 22 : 19.511 3.090 1.234 0.766 5(tmSen)timer 50 , 500 , 25 : 20.000 0.000 1.234 0.766 5(tmSen)timer 55 , 550 , 27 : 19.511 -3.090 1.234 0.866 6(tmSen)timer 60 , 600 , 30 : 18.090 -5.878 1.234 0.866 6(tmSen)timer 65 , 650 , 32 : 15.878 -8.090 1.234 0.940 7(tmSen)timer 70 , 700 , 35 : 13.090 -9.511 1.234 0.940 7(tmSen)timer 75 , 750 , 37 : 10.000 -10.000 1.234 0.985 8(tmSen)timer 80 , 800 , 40 : 6.910 -9.511 1.234 0.985 8(tmSen)timer 85 , 850 , 42 : 4.122 -8.090 1.234 1.000 9(tmSen)timer 90 , 900 , 45 : 1.910 -5.878 1.234 1.000 9(tmSen)timer 95 , 950 , 47 : 0.489 -3.090 1.234 0.985 10(tmSen)timer 100 , 1000 , 50 : 0.000 -0.000 1.234 0.985 10(tmSen)timer 105 , 1050 , 52 : 0.000 -0.000 1.234 0.940 11(tmSen)timer 110 , 1100 , 55 : 0.000 -0.000 1.234 0.940 11(tmSen)timer 115 , 1150 , 57 : 0.000 -0.000 1.234 0.866 12(tmSen)timer 120 , 1200 , 60 : 0.000 -0.000 1.234 0.866 12(tmSen)timer 125 , 1250 , 62 : 0.000 -0.000 1.234 0.766 13(tmSen)timer 130 , 1300 , 65 : 0.000 -0.000 1.234 0.766 13(tmSen)timer 135 , 1350 , 67 : 0.000 -0.000 1.234 0.643 14(tmSen)timer 140 , 1400 , 70 : 0.000 -0.000 1.234 0.643 14(tmSen)timer 145 , 1450 , 72 : 0.000 -0.000 1.234 0.500 15(tmSen)timer 150 , 1500 , 75 : 0.000 0.000 1.234 0.500 15(tmSen)timer 155 , 1550 , 77 : 0.489 3.090 1.234 0.342 16(tmSen)timer 160 , 1600 , 80 : 1.910 5.878 1.234 0.342 16(tmSen)timer 165 , 1650 , 82 : 4.122 8.090 1.234 0.174 17(tmSen)timer 170 , 1700 , 85 : 6.910 9.511 1.234 0.174 17(tmSen)timer 175 , 1750 , 87 : 10.000 10.000 1.234 0.000 18(tmSen)timer 180 , 1800 , 90 : 13.090 9.511 1.234 0.000 18(tmSen)timer 185 , 1850 , 92 : 15.878 8.090 1.234 -0.174 19(tmSen)timer 190 , 1900 , 95 : 18.090 5.878 1.234 -0.174 19(tmSen)timer 195 , 1950 , 97 : 19.511 3.090 1.234 -0.342 20(tmSen)timer 200 , 2000 , 100 : 20.000 0.000 1.234 -0.342 20(tmSen)timer 205 , 2050 , 102 : 19.511 -3.090 1.234 -0.500 21(tmSen)timer 210 , 2100 , 105 : 18.090 -5.878 1.234 -0.500 21(tmSen)timer 215 , 2150 , 107 : 15.878 -8.090 1.234 -0.643 22(tmSen)timer 220 , 2200 , 110 : 13.090 -9.511 1.234 -0.643 22(tmSen)timer 225 , 2250 , 112 : 10.000 -10.000 1.234 -0.766 23(tmSen)timer 230 , 2300 , 115 : 6.910 -9.511 1.234 -0.766 23(tmSen)timer 235 , 2350 , 117 : 4.122 -8.090 1.234 -0.866 24(tmSen)timer 240 , 2400 , 120 : 1.910 -5.878 1.234 -0.866 24(tmSen)timer 245 , 2450 , 122 : 0.489 -3.090 1.234 -0.940 25(tmSen)timer 250 , 2500 , 125 : 0.000 -0.000 1.234 -0.940 25(tmSen)timer 255 , 2550 , 127 : 0.000 -0.000 1.234 -0.985 26(tmSen)timer 260 , 2600 , 130 : 0.000 -0.000 1.234 -0.985 26(tmSen)timer 265 , 2650 , 132 : 0.000 -0.000 1.234 -1.000 27(tmSen)timer 270 , 2700 , 135 : 0.000 -0.000 1.234 -1.000 27(tmSen)timer 275 , 2750 , 137 : 0.000 -0.000 1.234 -0.985 28(tmSen)timer 280 , 2800 , 140 : 0.000 -0.000 1.234 -0.985 28(tmSen)timer 285 , 2850 , 142 : 0.000 -0.000 1.234 -0.940 29(tmSen)timer 290 , 2900 , 145 : 0.000 -0.000 1.234 -0.940 29(tmSen)timer 295 , 2950 , 147 : 0.000 -0.000 1.234 -0.866 30(tmSen)timer 300 , 3000 , 150 : 0.000 0.000 1.234 -0.866 30(tmSen)Motor time = 31Sensor time = 31openEL End