EdgeSense Southbound Service Development
Contents
Introduction
You can develop WISE-Agent plugin (a.k.a Northbound plugin) by SRP-Plugin.
And your plugin (built with SRP-Plugin) also can be running as a Southbound service.
To accellerate the development of EdgeSense southbound service, you will need to install EdgeSense Device SDK.
Once your device service is built with EdgeSense Device SDK, it can be running on Northbound or Southbound.
This is very helpful to shorten the time for integratoin, to build a flexible and powerful EdgeSense device service in fastest and most stable way.
About developing a device service, here is a guide you can refer to:
Development
Requirement
To build and run Southbound Service, please setup below softwares:
- Compiler Tools
- MQTT Broker
- WISE-Agent
1. Compiler Tools
For Windows development,
- Please install Visual Studio 2008 or above. Visual Studio is available at official website.
For Ubuntu 16.04 development, please install below software,
$ sudo apt install autoconf autotools-dev libtool libmosquitto1 sqlite3 libxml2-dev libcurl4-openssl-dev libx11-dev libxtst-dev libxext-dev libmosquitto-dev libssl-dev
2. MQTT Broker
MQTT Broker For Windows
MQTT Broker for Ubuntu 16.04
$ sudo chmod +x MQTTBrokerSetup-1.0.5-Ubuntu_16.04-x86_64.run $ sudo ./MQTTBrokerSetup-1.0.5-Ubuntu_16.04-x86_64.run
3. WISE-Agent
WISE-Agent for Windows
- Download from WISE-PaaS/EdgeSense Portal, Settings Page.
WISE-Agent for Ubuntu 16.04
- Ask support AE to get latest WISEAgent.
Download EdgeSense Device SDK
Download SRP-Plugin
git clone http://advgitlab.eastasia.cloudapp.azure.com/SRP-Connect/SRP-Plugin.git
Download Agentlite for Windows development
git clone https://github.com/ADVANTECH-Corp/agentlite.git
Download Agentlite for Ubuntu 16.04 development
git clone -b Ubuntu-16.04 https://github.com/ADVANTECH-Corp/agentlite.git
Development for Windows
1. Open SRP-Plugin\SRP-Plugin.sln with Visual Studio.
2. Change Solution Configurations to Release , change Solution Platforms to Win32.
3. In Solution Explorer, choose HandlerSample and build it.
4. After build is completed, HandlerSample service is generated in SRP-Plugin\Release\module folder.
5. Copy HandlerSample.dll to agentlite\prebuilt\module folder.
When we download agentlite, it looks like this picture:
Copy HandlerSample.dll to agentlite\prebuilt\module folder.
6. Modify agentlite\prebuilt\module\module_config.xml
<ModuleNum>1</ModuleNum> <ModuleName1>HandlerSample</ModuleName1> <ModulePath1>\module\HandlerSample.dll</ModulePath1> <ModuleEnable1>TRUE</ModuleEnable1>
7. Modify agentlite\prebuilt\agent_config.xml
<DeviceName>HandlerSample</DeviceName> <DevID>HandlerSample</DevID> <SN>HandlerSample</SN> <DevType>Service</DevType> <WorkDir></WorkDir> <ServiceName>Agent_HandlerSample</ServiceName>
8. Run Southbound service.
cd agentlite\prebuilt CAgent.exe -n
Development for Ubuntu 16.04
1. Build SRP-Plugin and HandlerSample service
$ cd SRP-Plugin $ sudo ./pre-install_ubuntu.sh $ ./build-srpplugin.sh
2. After build is complete, HandlerSample service is generated in SRP-Plugin/Release/module folder.
$ ls -1 SRP-Plugin/Release/module/ HandlerSample.so HandlerSample.so.0 HandlerSample.so.0.0.0 ModbusSample.so ModbusSample.so.0 ModbusSample.so.0.0.0 module_config.xml
3. Copy HandlerSample to agentlite/prebuilt/module folder.
cp -af HandlerSample.so* agentlite/prebuilt/module
4. Modify agentlite/prebuilt/module/module_config.xml
<ModuleNum>1</ModuleNum> <ModuleName1>HandlerSample</ModuleName1> <ModulePath1>/module/HandlerSample.so</ModulePath1> <ModuleEnable1>TRUE</ModuleEnable1>
5. Modify agentlite/prebuilt/agent_config.xml
<DeviceName>HandlerSample</DeviceName> <DevID>HandlerSample</DevID> <SN>HandlerSample</SN> <DevType>Service</DevType> <WorkDir></WorkDir> <ServiceName>Agent_HandlerSample</ServiceName>
6. Run Southbound service.
$ cd agentlite/prebuilt $ ./cagent -n
Then you will see HandlerSample is loaded.
$ ./cagent -n HandlerLoader loaded DllInitializer DllFinalizer DllInitializer GeneralHandler loaded general> Initialize DllInitializer Load HandlerSample Successful HandlerSample> InitializeSADataSync_Initialize() > HandlerSample StartAgent Initialized Agent_HandlerSample no-service is start successfully!
Demo on WISE-PaaS/EdgeSense
In WISE-PaaS/EdgeSense , HandlerSample service is listed in Device Monitoring page.
In WISE-PaaS/EdgeSense, you can read sensor data in Get/Set Sensor Data page.