From 191292f638dd371233e1b5e65d233e936c14baae Mon Sep 17 00:00:00 2001 From: CorentinLGS Date: Tue, 7 Aug 2018 14:23:11 +0200 Subject: Controller: Converted README to a gitbook version. -Split the README into a gitbook documentation. Change-Id: Iacf94e94d15606d68c925885dac5233d828f29b7 Signed-off-by: CorentinLGS --- docs/Usage.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs/Usage.md (limited to 'docs/Usage.md') diff --git a/docs/Usage.md b/docs/Usage.md new file mode 100644 index 0000000..65f1ce9 --- /dev/null +++ b/docs/Usage.md @@ -0,0 +1,53 @@ +# Usage + +## 1) Add app-controller-submodule as a submodule to include in your project + +```bash +git submodule add https://gerrit.automotivelinux.org/gerrit/apps/app-controller-submodule +``` + +## 2) Add app-controller-submodule as a static library to your binding + +```cmake + # Library dependencies (include updates automatically) + TARGET_LINK_LIBRARIES(${TARGET_NAME} + ctl-utilities + ... other dependencies .... + ) +``` + +## 3) 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} +}; + +``` + +## 4) 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; +``` + +## 5) Execute the controller config during binding init + +```C + int err = CtlConfigExec (ctlConfig); +``` \ No newline at end of file -- cgit 1.2.3-korg