diff options
Diffstat (limited to 'docs/Usage.md')
-rw-r--r-- | docs/Usage.md | 53 |
1 files changed, 53 insertions, 0 deletions
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 |