diff options
author | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2020-10-14 13:26:09 +0200 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2020-10-14 11:28:17 +0000 |
commit | 93c1058794d8bdab19c49df6d402a40963be65ec (patch) | |
tree | ab893f78a3b9928cf409cd3b63f6129381e4f5aa /docs/3_Developer_Guides/5_Controller_Guides/3.6.3_Usage.md | |
parent | 11d46ac01cf2b4bbc2e8ffe9b70ca27783af0137 (diff) |
Added Documentation for Jellyfish
(rewrote majority of them and updated with minor changes)
(removed whitespaces, added contribution guide, corrected rcar-gen3 section 7, added aglsetup.h flags to hardware support, some minor changes)
Bug-AGL: [SPEC-3633]
Signed-off-by: Shankho Boron Ghosh <shankhoghosh123@gmail.com>
Change-Id: Ifd6b3c1cdaa41f05a74c1affe6db9e24763921b9
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/documentation/+/25411
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'docs/3_Developer_Guides/5_Controller_Guides/3.6.3_Usage.md')
-rw-r--r-- | docs/3_Developer_Guides/5_Controller_Guides/3.6.3_Usage.md | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/docs/3_Developer_Guides/5_Controller_Guides/3.6.3_Usage.md b/docs/3_Developer_Guides/5_Controller_Guides/3.6.3_Usage.md deleted file mode 100644 index b28d8b2..0000000 --- a/docs/3_Developer_Guides/5_Controller_Guides/3.6.3_Usage.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -edit_link: '' -title: Usage -origin_url: >- - https://git.automotivelinux.org/src/libappcontroller/plain/docs/Usage.md?h=master ---- - -<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/libappcontroller-guides-devguides-book.yml --> - -# Usage - -## Add libappcontroller as a static library to your binding - -In your `config.cmake` file, add a dependency to the controller library, i.e: - -```cmake -set(PKG_REQUIRED_LIST - json-c - afb-daemon - appcontroller --> this is the controller library dependency name. -) -``` - -Or you can also use the [FIND_PACKAGE](https://cmake.org/cmake/help/v3.6/command/find_package.html?highlight=find_package) -CMake command to add it. - -## Declare your controller config section in your binding - -```C -// CtlSectionT syntax: -// key: "section name in config file" -// loadCB: callback to process section -// handle: a void* pass to callback when processing section -static CtlSectionT ctlSections[]= { - {.key="plugins" , .loadCB= PluginConfig, .handle= &halCallbacks}, - {.key="onload" , .loadCB= OnloadConfig}, - {.key="halmap" , .loadCB= MapConfigLoad}, - {.key=NULL} -}; - -``` - -## Do the controller config parsing at binding pre-init - -```C - // check if config file exist - const char *dirList= getenv("CTL_CONFIG_PATH"); - if (!dirList) dirList=CONTROL_CONFIG_PATH; - - const char *configPath = CtlConfigSearch(apiHandle, dirList, "prefix"); - if(!confiPath) return -1; - - ctlConfig = CtlConfigLoad(dirList, ctlSections); - if (!ctlConfig) return -1; -``` - -## Execute the controller config during binding init - -```C - int err = CtlConfigExec (ctlConfig); -``` - -## (Optional) Migrate from the git submodule version - -### Remove the git submodule version - -If you already use the controller component but use the submodule version then -you have to get rid of it to be sure to link and use the library version. To do -so, you have to do the following: - -* deinitialize the submodule using `git` - -```bash -# This example assumes that the git submodule is named app-controller-submodule -# and is located at your root project repository. -git submodule deinit app-controller-submodule -``` - -* remove the relative submodule lines from the `.gitmodules` file - -```bash -vim .gitmodules -``` - -* remove the `ctl-utilities` target link from any CMake target you specified. - Those lines look like: - -```bash -TARGET_LINK_LIBRARIES(${TARGET_NAME} - ctl-utilities # REMOVE THIS LINE - ${link_libraries} - ) -``` - -### Use the native af-binder functions - -The controller redefined some binder's functions to add an abstraction between -several binding versions. But now, as the controller is binding v3 only, the -abstraction layer from the controller has been removed and you should switch -your functions from the old controller's definitions to binder's definitions. - -You have to replace any `include` statements of `afb-definitions.h` by -`afb/afb-binding.h` if you included it somewhere. If you have only included -`ctl-config.h` file then you are fine. - -```diff -- #include <afb-definitions.h> -+ #include <afb/afb-binding.h> -``` - -To help migrating gracefully the old controller's definitions, you could use the -sed script to automate the migration for you. From your project root directory, -executes the following commands: - -```bash -wget -O controller-migration.sed https://iot.bzh/download/public/tools/controller-migration.sed -for f in $(find . -name *.c -o -name *.h) -do -sed -i -rf controller-migration.sed ${f} -done -``` - -> **NOTE**: `AFB_ServiceCall` and `AFB_ServiceSync` has been migrated to their -> homologue `afb_api_call_legacy` and `afb_api_call_sync_legacy` respectively -> but you have to be aware that they are *legacy* functions and you should use -> the news call functions `afb_api_call` and `afb_api_call_sync` instead. -> Cf [Binder API functions reference](../../../apis_services/reference/af-binder/reference-v3/func-api.html#calls-and-job-functions) -> for more details on these functions. - -As a reminder, here are the old controller's functions definitions that you -should migrate: - -```c - #define AFB_ReqNone NULL - typedef afb_req_t AFB_ReqT; - typedef afb_api_t AFB_ApiT; - typedef afb_event_t AFB_EventT; - - #define AFB_EventIsValid(eventid) eventid - #define AFB_EventPush afb_event_push - #define AFB_ReqSubscribe afb_req_subscribe - #define AFB_EventMake(api, name) afb_api_make_event(api, name) - - #define AFB_ReqJson(request) afb_req_json(request) - - #define AFB_ReqSuccess afb_req_success - #define AFB_ReqSuccessF afb_req_success_f - #define AFB_ReqFail afb_req_fail - #define AFB_ReqFailF afb_req_fail_f - - #define AFB_ReqNotice(request, ...) AFB_REQ_NOTICE (request, __VA_ARGS__) - #define AFB_ReqWarning(request, ...) AFB_REQ_WARNING (request, __VA_ARGS__) - #define AFB_ReqDebug(request, ...) AFB_REQ_DEBUG (request, __VA_ARGS__) - #define AFB_ReqError(request, ...) AFB_REQ_ERROR (request, __VA_ARGS__) - #define AFB_ReqInfo(request, ...) AFB_REQ_INFO (request, __VA_ARGS__) - - #define AFB_ApiVerbose(api, level, ...) afb_api_verbose(api, level, __VA_ARGS__) - #define AFB_ApiNotice(api, ...) AFB_API_NOTICE (api, __VA_ARGS__) - #define AFB_ApiWarning(api, ...) AFB_API_WARNING (api, __VA_ARGS__) - #define AFB_ApiDebug(api, ...) AFB_API_DEBUG (api, __VA_ARGS__) - #define AFB_ApiError(api, ...) AFB_API_ERROR (api, __VA_ARGS__) - #define AFB_ApiInfo(api, ...) AFB_API_INFO (api, __VA_ARGS__) - - #define AFB_GetApiSettings afb_api_settings - - #define AFB_ReqIsValid(request) request - #define AFB_EvtIsValid(evtHandle) evtHandle - - #define AFB_ServiceCall(api, ...) afb_api_call_legacy(api, __VA_ARGS__) - #define AFB_ServiceSync(api, ...) afb_api_call_sync_legacy(api, __VA_ARGS__) - - #define AFB_ApiCall(api, ...) afb_api_call(api, __VA_ARGS__) - #define AFB_ApiSync(api, ...) afb_api_call_sync(api, __VA_ARGS__) - - #define AFB_ReqVCBData afb_req_get_vcbdata - #define AFB_ReqGetApi afb_req_get_api - #define AFB_GetEventLoop(api) afb_api_get_event_loop(api) - #define AFB_RootDirGetFD(api) afb_api_rootdir_get_fd(api) - #define AFB_RequireApi(api, ...) afb_api_require_api(api, __VA_ARGS__) - - #define AFB_ClientCtxSet(request, replace, createCB, freeCB, handle) afb_req_context(request, replace, createCB, freeCB, handle) - #define AFB_ClientCtxClear(request) afb_req_context_clear(request) - - #define AFB_ReqSetLOA(request, level) afb_req_session_set_LOA(request, level) - - #define AFB_NewApi afb_api_new_api - - #define AFB_ApiAddVerb afb_api_add_verb - - #define AFB_ApiSetUserData afb_api_set_userdata - #define AFB_ApiGetUserData afb_api_get_userdata - - #define AFB_ApiOnEvent afb_api_on_event - #define AFB_ApiOnInit afb_api_on_init - #define AFB_ApiSeal afb_api_seal -```
\ No newline at end of file |