aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2018-11-23Use specific binder's event handlersguppy_6.99.2guppy/6.99.26.99.2Romain Forlot6-69/+85
Use specific binder's event handlers which allows you to bind a callback with an incoming event based on a pattern matching. This replace the global event listener and internal callback search algorythm which is now delegated to the binder. Clean unused constructor Bug-AGL: SPEC-1968 Change-Id: I4b22c003661189fb71498efc4d9021c1a54ae866 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-11-23Binding migration to v3guppy_6.99.1guppy/6.99.16.99.1Romain Forlot15-89/+71
Change-Id: I8a5bc18a0bf8ad05ce83b6ff64d4329d42bff2b0 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-11-06Change .gitmodules following submodule migrationFrederic Marec1-3/+0
Remove app-template in .gitmodules Change-Id: Ie248e1a43dfda832acca830a7fab0bd8c82fd86c Signed-off-by: Frederic Marec <frederic.marec@iot.bzh>
2018-11-03Handle new metadata signal's fieldRomain Forlot1-2/+3
Change-Id: I4c02d4a576459a0a1915893fa5526d4c8cffe6e6 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-11-03Update basic configurations filesRomain Forlot4-37/+20
Update basic configurations files with the latest controller key used. There were update not followed since a rework a how an action is load from a configuration file which does not use anymore 2 key 'uri' + 'function' but only one 'action'. Change-Id: I455f69064bd91dd3b845e83d0904aca1c11cacb8 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-10-31Migrate app-templates to CMake moduleRomain Forlot2-5/+7
Bug-AGL SPEC-1682 Change-Id: I1578d1e71d66813ed45dfac80b2fceee7c012150 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-10-09Use feature 'required-binding'Jose Bollo1-1/+4
The feature "urn:AGL:widget:required-binding" is now preferred to the feature "urn:AGL:widget:required-api" for requiring a local binding. Bug-AGL: SPEC-1800 Change-Id: I0a257cf66b11b944cfce90c270827da1413c8eed Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2018-10-04Fix: lua detection for debian like distroRomain Forlot2-1/+1
And remove unnecessary dependency upon libmicrohttpd Change-Id: I10de18065517a6033d75519ced16a4ee04518851 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-27Add tests on sources injection at runtimeRomain Forlot3-0/+83
This adds some basic tests about adding dummy sources into the signal composer in addition of signals. Change-Id: I028faa612b749866a3ab986a2f46fe00dd2d7884 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-27Reorder and format testsRomain Forlot1-80/+121
Change-Id: I9072205022d9ef3baec3868ef0bc6a912013ac59 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-27Fix wrong JSON unpack typeRomain Forlot1-15/+22
This correct the retention value extraction as an 'int' instead of a Json object. Also made 'api' field mandatory. Format and improve log messages. Change-Id: I00b337839a49fc1952be8589b48bf1a38b863549 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-27Use the unified script to launch testsRomain Forlot3-42/+6
This use the dedicated script to launch tests on native development environment and get rid of the dedicated script afb-test.sh. Change-Id: Ic254a3df90939df683e6d2ec5c72afcebc963b75 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-27More accurate (un)subscribe answerRomain Forlot1-5/+12
Answer a failure when attempting to subscibe a non-existent signal but don't report error on unsubscription. Change-Id: Iac4bfe52ce84b47fbfa5717cd9ee2bf02231f52f Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-27Handle errors on signal initializationRomain Forlot5-13/+45
This reports errors at signals getSignals action call and removed incorrect signals from the source. This allows the binding to correctly respond to the user if there was an error in its signal definitions. Change-Id: I7779ab9339a979fcb2b7b41f8ebf4aa27b8af3a1 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-27Fix: finding JSON file even if absolute path givenRomain Forlot2-4/+11
Here, assuming the absolute path leads to a non existent file then only take the file name and do a research in the default search path given by environment var or pre-processor defined variables. Change-Id: Id57428141be908cda65b07f66ca59568708d3608 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-25Update controller submoduleRomain Forlot2-0/+0
Submodule ctl-utilities 02bbf59..d6eb01e: > Change loading configuration object behavior > app-controller-submodule doc: Changed doc to fit new format. > Fix: compatibility with binder FF.RC4 Change-Id: I21efecc6de8e8db91827b83cdf26ab62cb52d1ce Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-23txc-binding: migration to AFB_BINDING_VERSION 3guppy_6.90.0guppy/6.90.06.90.0Clément Bénier7-32/+41
txc-binding.c is moving to version 3 in order to be compatible with app-afb-test fix some typo error: - rename txc api into txc-binding - wrong path files Change-Id: I9c59cbc59a457611fbf495a64f116170ef7898d8 Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
2018-09-20doc: Changed doc to new formatSebastien Douheret14-1099/+1
- split book.json to match new format - changed description in README.md - remove useless files Change-Id: I235c6f033ad12eeac86cab16f4c311e61ca60351 Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
2018-09-12txc-binding: in conf files, rename api to txcClément Bénier6-39/+28
fix multiples errors, rename txc into txc-binding Change-Id: I9cd32cf157e407d98293bc869ed08cc93518a555 Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
2018-09-05afb-test.sh: launch 2 binders for testflounder_5.99.6flounder/5.99.65.99.6Clément Bénier1-19/+27
one binder for afb-test binding another for signal-composer binding Change-Id: Ie049715775e315eeb4e2d01e178ff55bb68f36e0 Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
2018-08-23Missing API_NAME for the test widgetflounder_5.99.5flounder_5.99.4flounder/5.99.5flounder/5.99.45.99.55.99.4Romain Forlot1-0/+1
Change-Id: I9b4da627485ad16bc4ed925e97b3a8a320dd7238 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-08-23Fix: segfault at object additionRomain Forlot2-8/+14
JSON object release is done by the appfw so no need to release the object in the request. Tiny typo about the filepath in testsuite. Change-Id: I8347adafbb5fa8e9e3b89c2e6db74c37f4910adf Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-08-23Bump submodulesRomain Forlot3-0/+0
Submodule afb-helpers a37225f..f0ce5b6: > wrap-json: Fix duplicated lines in header file > Add '@' as binder middle name separator. > Enhance 'wrap_json_clone_depth' description Submodule conf.d/app-templates f0b24b0..52ae181: > Fix: typo Submodule ctl-utilities a58d83b..bdf1a6b: > ctl-lua: Fixed memory corruption > Migration to v3 > Adds v3 function to get binding settings > New function returning the binding root directory > Change the default GLOB pattern > Fix wrong computed length > Add path to the installed widget path. > Controller: Converted README to a gitbook version. > New defaults useful functions on lua table > More precise log message when loading a Lua file > Fix: wrong legacy function signature > Split loading JSON controller file. > Release arguments once C function returned. Change-Id: I9d7b7dee7e0e3473734ff869080a4e672ba3f951 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-08-22Setup the project for afb-test frameworkClément Malléjac19-15/+885
Wrote a couple of basic API tests Setup mock apis for the test binding Added script to launch tests on native Linux machines Change-Id: I606752e7b46cb2afdc10f3319a24ef15675faa3b Signed-off-by: Clément Malléjac <clementmallejac@gmail.com>
2018-08-08Typos, cleaning.flounder_5.99.3flounder/5.99.35.99.3Romain Forlot1-18/+2
Change-Id: I1f2b7484216271f97205cb9933bfd5ef2990bb2e Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-08-07Fix: segfault after adding new objectsRomain Forlot1-1/+0
This let the application framework handle the JSON object lifetime. Change-Id: Iff48f478d71e71e25ed79d2c7c13b45a7b6a7bf9 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-31Returns error in request responseRomain Forlot4-78/+94
Returns error in request response instead of binder log when you try to get a signal value. Change-Id: I12809591801db5718aa4713034f2bb1801b6bf2d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-27Fix: wrong default getSignals action defined.Romain Forlot1-4/+3
Since last controller changes this hardcoded default action definition. Change-Id: I0021fef000b2085efe0deda550cff243afd6711d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-25Improved performanceRomain Forlot9-176/+126
Before value was translated to a C type variable two times, at the reception then at the emission. Now it just receives and sends the signal value without translation nor interpretation except if you ask for an average, minimum or maximum value. Then in those cases it interprets the json to return you a value or an error if there is no numeric values to compute. Remove unneeded log message at event reception. Improved signal search engine, will search in source's signals map by the signal ID not the event name which lead to a more direct map match. Bugs-AGL: SPEC-1612 Depends-On: I43e79ed73a507ac2ca7ed4cdc3f16ec009392194 Change-Id: Ie253c3fe1e8cde42dabe8832da74e9f9bf442c14 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-23Adds a signal's metadata attributeflounder_5.99.2flounder/5.99.25.99.2Romain Forlot5-40/+27
This adds a signal's metadata attribute which lets you store any kind and number of metadata attributes to your signal. These metadata are just reissued at the event emission without alteration. Special case of "unit" attribute which is kept as a signal attribute and not as a metadata because it is an intrinsic signal attribute that all signals should have. Bug-AGL: SPEC-1419 Change-Id: I531b4012ac9b22f312a4ccebc1a07a8d93129403 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-22Fix the build for master with latest binderRomain Forlot11-18/+8
Update config.cmake file with app-templates improvments: - Now versioning is handled by app-templates based on gerrit tags - Binding version set up in config.cmake rather than in code. - Update variables name for build type and install prefix. Submodule afb-helpers 43ec971..a37225f: > Fix: use of GetBindingDirPath without dynapi > Retrieve directory list from environment variables > Remove the file .gitmodules > Remove unnecessary 'AFB_DEBUG' redefinition > Use binding version to handle dynapi > At search, use the prefix parameter as a prefix > Remove deprecated use of cmake/Qt macro > Rename method to avoid conflict with Qt's one Submodule conf.d/app-templates aa68dbd..f94e45e: > Align sample on actual default compile options > Add support to binding version 3. > Warning if not using wgtpkg-pack to make a widget > Rework CMAKE_INSTALL_PREFIX and INSTALL_PREFIX var > Be able to overwrite BUILD_TYPE using CLI > Use CACHE variable for other common CMAKE variable > Fix:: wrong wgt using RELEASE BUILD TYPE > Fix: SYSROOT location detection... Wrong test. > Change the default debug compilation options. > Clearer coverage compilation options configuration Submodule ctl-utilities 1ff524b..ff14c58: > Fix : typo introduced in a previous commit. > Use prefix variable to find controller's plugins > Use binding version to set controller definitions > ctl-lua: typo fix > asynchronism for test: LockWait added > Fix: plugin api assignement order > Execute ConfigExec only if section is existing > Always set the api member even if NULL. > Ability to add a plugin after the initial load > Be able to dispatch required api at the wanted time Depends-On : I135a723d21d70b8c54f4cab1c534210757318ed0 Change-Id: I90938f53dd1f606b3aa39a549e618c0fe413870c Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Update submodulesRomain Forlot14-176/+14
Submodule conf.d/app-templates 6e1a3c3..aa68dbd: > Don't overwrite the autobuild script if it exists > Disable the in-tree build method. > Detect Yocto as OS distribution > Fix: wrong compile options added > Fallback using zip format if no wgtpkg-pack found > 02-variables.cmake: Avoid checking CXX version if not required > config.cmake.sample: Remove dependency to libsystemd > config.cmake.sample: Remove dependency to libmicrohttpd > Added -D_FORTIFY_SOURCE=2 to CFLAGS > start-on-target: uses RSYNC_PREFIX path for config > Fixed spelling. > Improve OS detection > Fix: OS detection > Launch from workdir > Change closing that could fix native debugging Submodule ctl-utilities 0129510...1ff524b: > Change LUA package path at LUA interpreter load > Don't load two times a plugin even for LUA > Fixed hidden bound variable (apiHandle) > Fixed null value when push Lua arguments > Adjust to compile with incoming bindings v3 > Remove declaration to not existing functions > Add 2 lua utilities function > Update README.md for new metadata keys. > Fix a compilation issue due to modif of AFB_ReqSuccess > README:md: update README accordingly to new json scheme. > Fixed crash due to call to json_object_put > Fix segfault when printing long message from lua > Fixed spelling of AFB_ReqSuccess > Remove an unnecessary variable > Make parsing of action loading non blocking > Use an external file for app fw functions link > Use macro to test request validity > Fixed build warnings with gcc >= 7.3 > Increase lua script max message size > Prevent lost of config file path when searching > Correct way that api actions are handled in controller > Handle more metadata in the controller. > Add possibility to set prefix to NULL in CtlConfigScan > Fixed compilation warnings with gcc-7.2.0 > Add an external field to CtlConfigT > Make action item from a LUA action mandatory > Handle no prefix given > Good usage of strncat and strncpy > Update to the new JSON syntax > Detect failure at OnLoad action calls > Improve reliability and function calls > Correctly release request JSON object > Add AFB macros > Don't use assert in controller. > Change lua2c JSON syntax. > Search for Event section > Fix: changes key name. > Fix: arguments pointer NULL check > Fix wrong error message. > Simplify action definition > Fix: Dyn API Action loading procedure > Use new version of function GetBindingDirPath > Format > Merge changes from topic 'sandbox/claneys/wip' > Upgrade config schema > Fix: callback execution condition < Format < Fix: callback execution condition < New action loading function. < Upgrade config schema Adapt json config file to new syntax Fix: prefix now add the "-" so it'isn't needed to add it in the prefix at search (signal-composer.cpp) Fix: calling a api verb without json_object fails because of config arguments not retrieved. (sources.cpp) Change-Id: I48c1bca9fbac485e6a34b4645e683d9bdb1cbf2b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Reintoduce the old builtin pluginRomain Forlot4-1/+93
We use only one function of two from the plugin which could be called from the LUA script to be able to set a signal value from a LUA callback. Change-Id: Ic7a0fcd3d8c4c2370828c1d09fff9ed88a0dc15b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Fix: release json_objectRomain Forlot1-1/+4
This ensure that the json_object is correctly released after. Then after that the call will have enough reference count. Also fix a GCC warning using "if" instead of trigraph Change-Id: I41776d9009465f48f6c0b236614c0a32244f5cfb Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Remove useless variable settingRomain Forlot1-1/+1
By default Efence isn't enable. You now have to specifically set it up if you want to use the Efence library Change-Id: I7803636bed08fc248f820df2db64310d96d57d8e Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Rework loading sources and signals.Romain Forlot16-103/+89
Some function that are now included in the controller submodule do not need to be in the composer as well. Also initialize sources and signals in the same way . JSON configuration needs to be updated to fit this changes Change-Id: I2043791e7ee80f8350f33ed15bdf9980c0773b82 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Move "action" load to controllerRomain Forlot2-139/+11
Change-Id: Ic1a0621d9c0bbbffb7dcc0f9daf148a372818cdb Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Return separately last timestamp and valueRomain Forlot1-4/+2
Last timestamp and value is those ones directly store as object's attributes not the last from the history. Simple... Change-Id: Id2c808a1b236dfa36821cf9fc5a5bcd6a4114f10 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Change, clean plugins.Romain Forlot6-150/+93
Improve GPS plugin to be able to calculate the heading also remove the builtin plugin that was an error. We need to pass GPS plugin in C++ to be able to use the context. Handle "double" and "int" signal's value. Change-Id: I6d902e4ac76a0e933326c0b4c43922645c9c5a4c Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Change when to notifyRomain Forlot1-1/+0
The notify was in fact called 2 times. It is attended that a callback should "set" the signal value to record it. Setting the signal's value already call notify which an action should do at the end. Notifying has a meaning only if a signal value has been modified. Change-Id: I4a8128317a88bf7459b2c4aa0f575c4b2524e816 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Use Nanosecond precision by defaultRomain Forlot2-12/+21
This is the default precision returned by the kernel when calling get_clocktime(), so this avoid useless division to get a less precise time. Also signaling event should have this kind of precision to be able to correctly debugging system on signals heavy load. Change-Id: I010b98305cff7387787fd8f8a1e8a0f9107a170a Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Use a better parameter name, more explicitRomain Forlot1-16/+17
Change-Id: I4c2a31f5c395c0d85ec810b25fb88c70cf691375 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Implement the signal's update default methodRomain Forlot2-5/+47
Adding != operator to Signal class This operator is needed to exclude signal inclusion in notify function and make possible to add a signal at last position Change-Id: I95f3434019383e52928c37f396aae938f2cfae05 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Fix wrong initializationRomain Forlot1-2/+2
boolean and numerical case initialized the same way. Change-Id: I274b5d898761c12f555ea59a178e363efe18f81d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Rename afb-utilities to afb-helpersRomain Forlot4-3/+3
Update submodules Change-Id: I7f3a8e0059ce05e6bf46315d1de80c25cb87b2cf Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Improve signal handlingRomain Forlot5-16/+32
- Fix memleak: RRelease the Signal JSON representation once used - Change equality condition between signals - Use a REALTIME clock to retrieve the timestamp if not provided by the signal. This is the most simple to date a signal and use that time for further usage. - Add a method to retrieve the last_timestamp value from a signal This with the commit from ctl-utilities submodule "8ff0fe3c454ea32ba383a3cfa9c4e91237d6c494" fixes the issue. Change-Id: Ifed66796f92d789c80f10b161318f6bef788dda7 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Initialize sources at binding start.Romain Forlot3-4/+16
This has changed and is now explicitly launched because last step of Controller configuration doesn't execute it. Change-Id: I104011b912172da62114b62eeab90c76e41459dd Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Use signal subscription args if presentRomain Forlot3-3/+16
By default subscription argument request from signal are passed if present, else the one from the signal's source if present. If nothing is specified for sources then argument is set as a NULL pointer. Change-Id: I18db0a9922039f41d475cd08758a2afd4acaa9d4 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Make 2 set of configurationsRomain Forlot14-22/+1618952
1 for normal multi low level sources 1 for TXC-demo Future goal will be to merge them Also reorganize data resources files Bump app-template: Submodule conf.d/app-templates dd0cec7..30e78a5: > Adding cmake file at the root directory > Adds commit hash to the version. > Change default sample settings. Change-Id: I31838723da58fc33b25bc7cd5f42396a1805e34d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-04Merge changes from topic 'OpenXC-signal_composer'Romain Forlot1-0/+5
* changes: Added .gitreview file Add objects directly from JSON argument