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.
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 OpenEL lib --- Library files for OpenEL sample --- A sample program which use OpenEL API LICENSE --- License file README.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_component directory 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 $ ./sample openEL Start HalInit ActuatorSim HAL-ID 1 0 0 1 HalInit ActuatorSim HAL-ID 1 0 0 2 HalInit SensorSim HAL-ID 2 0 0 1 PROPERTY - Name : SimLinuxActuator PROPERTY - fnc00 : Init PROPERTY - fnc01 : ReInit PROPERTY - fnc02 : Finalize PROPERTY - fnc03 : AddObserver PROPERTY - fnc04 : RemoveObserver PROPERTY - fnc05 : SetValue PROPERTY - fnc06 : GetValue PROPERTY - 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 : SimLinuxActuator PROPERTY - fnc00 : Init PROPERTY - fnc01 : ReInit PROPERTY - fnc02 : Finalize PROPERTY - fnc03 : AddObserver PROPERTY - fnc04 : RemoveObserver PROPERTY - fnc05 : SetValue PROPERTY - fnc06 : GetValue PROPERTY - 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 : SimLinuxSensor PROPERTY - fnc00 : Init PROPERTY - fnc01 : ReInit PROPERTY - fnc02 : Finalize PROPERTY - fnc03 : AddObserver PROPERTY - fnc04 : RemoveObserver PROPERTY - fnc05 : GetProperty PROPERTY - fnc06 : GetTime PROPERTY - fnc07 : GetValueList PROPERTY - fnc08 : GetTimedValueList 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) motor01 getTime ret=0 Motor time = 0 sensor01 getTime ret=0 Sensor time = 0 notify_event201a : 1234 notify_error201a : 5678 notify_event201b : 1234 notify_error201b : 5678 timer 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 = 31 Sensor time = 31 openEL End