/iqrf-daemon

IQRF GW daemon with the multiple communication channels - UDP/MQ/MQTT.

Primary LanguageC++Apache License 2.0Apache-2.0

IQRF GW daemon

Build Status

IQRF GW daemon with the multiple communication channels - UDP/MQ/MQTT.

See the daemon architecture
See the daemon component model
See the daemon component instances

How to install the daemon

http://repos.iqrfsdk.org/

  • iqrf-daemon_0.6.0-1_amd64.deb
  • iqrf-daemon_0.6.0-1_armhf.deb
  • libpaho.mqtt.c_1.1.0_amd64.deb
  • libpaho.mqtt.c_1.1.0-1_armhf.deb

Download public key to verify the packages from the repository

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 66CB9A85

Add repository to the source list

  • For Debian (amd64)
echo "deb http://repos.iqrfsdk.org/debian jessie testing" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
  • For Ubuntu (amd64)
echo "deb http://repos.iqrfsdk.org/ubuntu xenial testing" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
  • For Raspbian (armhf)
echo "deb http://repos.iqrfsdk.org/raspbian jessie testing" | sudo tee -a /etc/apt/sources.list
sudo apt-get update

Install or update the daemon

sudo apt-get install iqrf-daemon

or

sudo apt-get update
sudo apt-get upgrade iqrf-daemon

Check the daemon service status

sudo systemctl status iqrf-daemon.service

● iqrf-daemon.service - IQRF daemon iqrf_startup
   Loaded: loaded (/lib/systemd/system/iqrf-daemon.service; enabled; vendor preset: enabled)
   Active: active (running) since Čt 2017-03-30 23:46:50 CEST; 2min 58s ago
 Main PID: 9540 (iqrf_startup)
   CGroup: /system.slice/iqrf-daemon.service
           └─9540 /usr/bin/iqrf_startup /etc/iqrf-daemon/config.json

Set your configuration

CK-USB-04a or GW-USB-06 devices must be switched to USB CDC IQRF mode using IDE menu: tools/USB classes/Switch to CDC IQRF

Follow the guidance here

Configure/check mainly following components:

  • config.json (tip: enable/disable daemon components)
  • IqrfInterface.json (tip: configure your IQRF interface - SPI/CDC)
  • TracerFile.json (tip: check your logging)
  • MqttMessaging.json (tip: configure your MQTT brokers - you can enable second mqtt instance)
  • BaseService.json (tip: see names of running instances of basic service - needed for scheduler)
  • Scheduler.json (tip: configure your regural DPA tasks if any)

and restart the service:

sudo systemctl restart iqrf-daemon.service

Content of iqrf-daemon (v0.6.0) package

dpkg -L iqrf-daemon

/.
/usr
/usr/bin
/usr/bin/iqrfapp
/usr/bin/iqrf_startup
/usr/share
/usr/share/doc
/usr/share/doc/iqrf-daemon
/usr/share/doc/iqrf-daemon/copyright
/usr/share/doc/iqrf-daemon/changelog.gz
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/iqrf-daemon.service
/etc
/etc/iqrf-daemon
/etc/iqrf-daemon/UdpMessaging.json
/etc/iqrf-daemon/config.json
/etc/iqrf-daemon/MqMessaging.json
/etc/iqrf-daemon/TracerFile.json
/etc/iqrf-daemon/JsonSerializer.json
/etc/iqrf-daemon/IqrfInterface.json
/etc/iqrf-daemon/SimpleSerializer.json
/etc/iqrf-daemon/MqttMessaging.json
/etc/iqrf-daemon/Scheduler.json
/etc/iqrf-daemon/iqrfapp.json
/etc/iqrf-daemon/BaseService.json

Changes for iqrf-daemon

0.5.1 -> 0.6.0

News:

  • json dpa structure according to the description in wiki (Only type raw and raw-hdp are fully implemented!)

0.5.0 -> 0.5.1

Fixes:

  • iqrfapp cmdline parser
  • json dpa response timestamps
  • json dpa response fields order

Content of libpaho.mqtt.c (v1.1.0) package

dpkg -L libpaho.mqtt.c

/.
/usr
/usr/lib
/usr/lib/libpaho-mqtt3c.so.1.1.0
/usr/lib/libpaho-mqtt3as.so.1.1.0
/usr/lib/libpaho-mqtt3cs.so.1.1.0
/usr/lib/libpaho-mqtt3a.so.1.1.0
/usr/bin
/usr/bin/MQTTVersion
/usr/share
/usr/share/doc
/usr/share/doc/libpaho.mqtt.c
/usr/share/doc/libpaho.mqtt.c/copyright
/usr/share/doc/libpaho.mqtt.c/changelog.gz

How to build iqrf-daemon from the source code

See the guidelines here

How to run iqrf-daemon in Docker container

See the guidelines here