Merge "agl-service-unicens: replace legacy sendmessage" into eel
[apps/agl-service-unicens.git] / README.md
index 2610ed9..cf9a380 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,27 +1,35 @@
 ------------------------------------------------------------------------
-AGL-Unicens binding expose Unicens-V2 APIs through AGL framework
+AGL-UNICENS binding expose UNICENS-V2 APIs through AGL framework
 ------------------------------------------------------------------------
 
+Cloning Audio-Binding from Git
+-------------------------------------------------------
+
+```
+git clone --recurse-submodules https://github.com/iotbzh/unicens2-binding
+cd  unicens2-binding
+```
 
 AFB_daemon dependency on Standard Linux Distributions
 -------------------------------------------------------
     # handle dependencies > (OpenSuse-42.2, Fedora-25, Ubuntu 16.04.2LTS)
     gcc > 4.8
-    systemd-devel (libsystemd-dev>=222) 
+    systemd-devel (libsystemd-dev>=222)
     libuuid-devel
     file-devel(OpenSuSe) or libmagic-dev(Ubuntu)
     libjson-c-devel
     alsa-devel
     ElectricFence (BUG should not be mandatory)
     libopenssl-devel libgcrypt-devel libgnutls-devel (optional but requested by libmicrohttpd for https)
+    libxml2-devel
 
-    OpenSuse >=42.2 
-      zypper in gcc5 gdb gcc5-c++ git cmake make ElectricFence systemd-devel libopenssl-devel  libuuid-devel alsa-devel libgcrypt-devel libgnutls-devel libjson-c-devel file-devel mxml-devel
+    OpenSuse >=42.2
+      zypper in gcc5 gdb gcc5-c++ git cmake make ElectricFence systemd-devel libopenssl-devel  libuuid-devel alsa-devel libgcrypt-devel libgnutls-devel libjson-c-devel file-devel libxml2-devel
 
     Ubuntu >= 16.4 libuuid-devel
-      apt-get install cmake git electric-fence libsystemd-dev libssl-dev uuid-dev libasound2-dev libgcrypt20-dev libgnutls-dev libgnutls-dev libjson-c-dev libmagic-dev  libmxml-dev
+      apt-get install cmake git electric-fence libsystemd-dev libssl-dev uuid-dev libasound2-dev libgcrypt20-dev libgnutls-dev libgnutls-dev libjson-c-dev libmagic-dev libxml2-dev
 
-    libmicrohttpd>=0.9.54 (as today OpenSuse-42.2 or Ubuntu-.16.4 ship older versions)
+    libmicrohttpd>=0.9.55 (as today OpenSuse-42.2 or Ubuntu-.16.4 ship older versions)
     afb-daemon from AGL Gerrit git clone https://gerrit.automotivelinux.org/gerrit/src/app-framework-binder
 
 ```
@@ -29,7 +37,7 @@ AFB_daemon dependency on Standard Linux Distributions
     echo "#----------  AGL options Start ---------" >>~/.bashrc
     echo "# Object: AGL cmake option for  binder/bindings" >>~/.bashrc
     echo "# Date: `date`" >>~/.bashrc
-    echo 'export CC=gcc-5; export CXX=g++-5' >>~/.bashrc   # if using gcc5 
+    echo 'export CC=gcc-5; export CXX=g++-5' >>~/.bashrc   # if using gcc5
     echo 'export INSTALL_PREFIX=$HOME/opt' >>~/.bashrc
     echo 'export LD_LIBRARY_PATH=$INSTALL_PREFIX/lib64:$INSTALL_PREFIX/lib' >>~/.bashrc
     echo 'export LIBRARY_PATH=$INSTALL_PREFIX/lib64:$INSTALL_PREFIX/lib' >>~/.bashrc
@@ -42,12 +50,13 @@ AFB_daemon dependency on Standard Linux Distributions
     source ~/.bashrc
 
     # install LibMicroHttpd
-    wget https://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.54.tar.gz
-    tar -xzf libmicrohttpd-0.9.54.tar.gz
-    cd libmicrohttpd-0.9.54
-    ./configure --prefix=$INSTALL_PREFIX
+    LIB_MH_VERSION=0.9.55
+    wget https://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-${LIB_MH_VERSION}.tar.gz
+    tar -xzf libmicrohttpd-${LIB_MH_VERSION}.tar.gz
+    cd libmicrohttpd-${LIB_MH_VERSION}
+    ./configure --prefix=${INSTALL_PREFIX}
     make
-    make install-strip
+    sudo make install-strip
 
     # retrieve last AFB_daemon from AGL
     git clone https://gerrit.automotivelinux.org/gerrit/src/app-framework-binder
@@ -56,7 +65,7 @@ AFB_daemon dependency on Standard Linux Distributions
     cd app-framework-binder; mkdir -p build; cd build
     cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX ..
     make
-    make install 
+    make install
 ```
 
 
@@ -75,12 +84,12 @@ AFB_daemon dependency on Standard Linux Distributions
     firefox http://localhost:1234
 ```
 
-# Archive 
+# Archive
 
 ```
 VERSION=0.1
 GIT_TAG=master
-PKG_NAME=unicens-agent
+PKG_NAME=UNICENS-agent
 git archive --format=tar.gz --prefix=${PKG_NAME}-${VERSION}/ ${GIT_TAG} -o ${PKG_NAME}_${VERSION}.orig.tar.gz
 ```
 
@@ -90,10 +99,9 @@ Warning: technically AGL bindings are shared libraries loaded thought 'dlopen'.
 loaded libraries, but user should be warn that the actual path to sharelib symbols is directly inherited from DLOPEN.
 As a result if you change your directory after binder start with --workdir=xxx then GDB will not find symbols anymore
 
-
 ```
     Examples:
-    
+
     # WORK when running in direct
     afb-daemon --workdir=.. --ldpaths=build --port=1234 --roothttp=./htdocs
 
@@ -113,14 +121,13 @@ from the wrong relative directory, either you have to use 'set solib-search-path
     gdb -args afb-daemon --workdir=.. --ldpaths=build --port=1234 --roothttp=./htdocs
     run
         ...
-        NOTICE: API unicens added
+        NOTICE: API UNICENS added
         NOTICE: Waiting port=1234 rootdir=.
         NOTICE: Browser URL= http://localhost:1234
     (hit Ctrl-C to break the execution)
     info sharedlibrary afb-*
 ```
 
-
 # Running an debugging on a target
 
 ```
@@ -146,4 +153,19 @@ Note: remote-target-populate will
 
 Note that Netbeans impose to set debug directory to ./build/pkgout or it won't find binding symbols for source debugging
 
+# Default Volume of Amplifiers
+The binding currently supports two use cases for amplifiers.
+1. Amplifiers are initialized with a default volume. The head unit uses software volume 
+   to change the volume of streaming data.
+2. Amplifiers are initialized muted. The head unit uses hardware volume (e.g. HAL-MOST-UNICENS)
+   to change the volume of amplifiers remotely.
+
+Use case 2 is the default use case. If you like to use this binding without hardware volume support
+please adopt the ```config_multichannel_audio_kit.xml``` as explained below.
 
+```
+<!-- Register 7: Master Volume (Max Volume=07 00 00 and Min Volume=07 03 FF) -->
+<!--   - together with HAL-MOST-UNICENS binding use "07 03 FF" = muted after start -->
+<!--   - otherwise use "07 01 50" = default volume -->
+<I2CPortWrite Address="0x2A" Payload="07 03 FF"/>
+```