Archive:AllJoyn IoT framework

From Official Kodi Wiki
Revision as of 04:53, 4 August 2020 by Karellen (talk | contribs) (Karellen moved page AllJoyn IoT framework to Archive:AllJoyn IoT framework without leaving a redirect: Product no longer available)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
AllSeen Alliance

About

AllJoyn is an Open Source Internet of Things (IoT) framework. It is supported by the Linux Foundation and the AllSeen Alliance Community. It is avaliable for all major platforms and aims to provide a common way for devices and apps to interact and speak to each other.

The framework fits well with Kodi as a device to be controlled and somewhere to control from.

Building

The AllJoyn source can be downloaded from the website or from the AllSeen github account.

Ubuntu Utopic amd64

Pre-requisites

apt-get install build-essential libgtk2.0-dev libssl-dev xsltproc lib32ncurses5 libxml2-dev  libpcap-dev 
apt-get install python scons

Optional (Docs)

apt-get install doxygen graphviz
apt-get install texlive-full      <---Beware: HUGE - only needed if you want pdf's

Build

cd <AllJoyn Root>
scons BINDINGS=cpp WS=off BR=off ICE=off DOCS=html

scons options

  • WS=off - This turns off the whitespace checker. The whitespace checker is for developers to ensure that the code they write conforms to our coding standard is not necessary for customers to use.
  • BR=off - This disables the bundled AllJoynrouter functionality. If you intend to use a stand-alone AllJoynRouter, this should be set to off. Setting it to “on” will include the AllJoynRouter - note that the default is “on”.
  • OS=linux - This is for building AllJoyn for desktop Linux (and is the default).
  • CPU=x86_64 - This is for building 64-bit binaries. If you are running on a 32-bit Linux machine then set this to “x86”.
  • BINDINGS=cpp - This controls what to build. By specifying just “cpp”, only the AllJoynRouter, C++ libraries, and C++ sample/test code is built. Other bindings that can be built are C, Java, and a browser plugin for a JavaScript binding.
  • SERVICES=“notification,controlpanel,config,onboarding” - This specifies the Service Frameworks to build. “About” is always built by default and doesn’t need to be specified. The standard service framework options include “notification, controlpanel, config, onboarding”.
  • VARIANT=release - This builds AllJoyn in release mode. If there is a need to get verbose debug messages and run AllJoyn code in a debugger, then this can be set to “debug”.
  • DOCS="none,pdf,html,dev,chm,sandcastle" - This selects the docs to build (Default: none). dev will produce HTML files that includes all developer files not just the public API.

Kodi Intergration

It is intended to build AllJoyn as a binary add-on to Kodi, however, there are many pieces that will need to be written .

AllJoyn Component Kodi Component Notes
C++ API Python API Using SWIG to convert between the two
scons build system cmake build system cmake custom target will need to be written using External Project
Core: About Server Settings Interface Allows Kodi to be discovered by other devices. Advertises capabilities of Kodi.
Core: About Client Services Add-on ? Allows Kodi to discover devices nearby
Base: Configuration Server ? Local configuration of Kodi is probably sufficient initially
Base: Configuration Client Settings Interface ? Allows one to configure certain attributes of an application/device, such as its friendly name.
Base: Notifications Kodi Notifications Text initially but support for audio and images later (may need to upgrade Kodi notification system for this). Notifications have 3 levels, Information, Warning, Emergency
Base: Control Panel new Services Add-on ? Will allow remote devices advertising a virtual control panel to be rendered by Kodi
Base: Audio Streaming Source The service provides controls to pause, stop, play, volume up/down, and mute.
Base: Audio Streaming Sink