Difference between revisions of "EdgeSense Southbound Service Development"

From ESS-WIKI
Jump to: navigation, search
(.)
(.)
 
(46 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
= Introduction =
 
= Introduction =
  
You will need SRP-Plugin and Agentlite.
+
This guide will help you build an EdgeSense Southbound service.
  
SRP-Plugin is xxx
+
You can develop WISE-Agent plugin (a.k.a Northbound plugin) by SRP-Plugin.
  
Agentlite is for run-time.
+
And your plugin (built with SRP-Plugin) also can be running as a Southbound service.
  
= Development =
+
At first, please refer to below documenation to develop a plugin.
 +
 
 +
*[http://advgitlab.eastasia.cloudapp.azure.com/WISE-PaaS-Documentation/Documentation/blob/master/documents/RMM/Agent/123-plugin.md How to Develop Customized Plugin Step by Step]
 +
 
 +
After the completion of your plugin development, you will need EdgeSense Device SDK to pack your plugin as a Southbound service.
 +
 
 +
To accellerate the development of EdgeSense southbound service, you will need to install EdgeSense Device SDK.
 +
 
 +
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.
 +
 
 +
= Run EdgeSense Southbound service =
  
 
== Requirement ==
 
== Requirement ==
 +
 +
To build and run Southbound Service, please setup below softwares:
 +
 +
*Compiler Tools
 +
*MQTT Broker
 +
*WISE-Agent
 +
 +
 +
 +
1. Compiler Tools
  
 
For Windows development,
 
For Windows development,
Line 15: Line 35:
 
*Please install Visual Studio 2008 or above. Visual Studio is available at [https://visualstudio.microsoft.com/ official website].
 
*Please install Visual Studio 2008 or above. Visual Studio is available at [https://visualstudio.microsoft.com/ official website].
  
For Ubuntu 16.04 development,
+
For Ubuntu 16.04 development, please install below software,
 +
<pre>$ sudo apt install autoconf autotools-dev libtool libmosquitto1 sqlite3 libxml2-dev libcurl4-openssl-dev libx11-dev libxtst-dev libxext-dev libmosquitto-dev libssl-dev
 +
</pre>
 +
 
 +
 
 +
 
 +
2. MQTT Broker
 +
 
 +
MQTT Broker For Windows
 +
 
 +
*[https://www.dropbox.com/s/slnv815o5g3o0j4/MQTTBrokerSetup_1.0.3.exe?dl=0 download]
  
== Download SRP-Plugin and Agentlite ==
+
MQTT Broker for Ubuntu 16.04
  
Download SRP-Plugin
+
*[https://www.dropbox.com/s/ixpazs0hlpxots8/MQTTBrokerSetup-1.0.5-Ubuntu_16.04-x86_64.run?dl=0 download]
<pre>git clone http://advgitlab.eastasia.cloudapp.azure.com/SRP-Connect/SRP-Plugin.git
+
<pre>$ sudo chmod +x MQTTBrokerSetup-1.0.5-Ubuntu_16.04-x86_64.run
 +
$ sudo ./MQTTBrokerSetup-1.0.5-Ubuntu_16.04-x86_64.run
 
</pre>
 
</pre>
  
Download Agentlite
+
 
 +
 
 +
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 Agentlite for Windows development
 
<pre>git clone https://github.com/ADVANTECH-Corp/agentlite.git
 
<pre>git clone https://github.com/ADVANTECH-Corp/agentlite.git
 
</pre>
 
</pre>
  
 +
Download Agentlite for Ubuntu 16.04 development
 +
<pre>git clone -b Ubuntu-16.04 https://github.com/ADVANTECH-Corp/agentlite.git
 +
</pre>
 +
 +
== Run EdgeSense device service on Windows ==
 +
 +
1. Copy&nbsp;HandlerSample.dll&nbsp;to agentlite\prebuilt\module folder.
 +
 +
When we download agentlite, it looks like this picture:
 +
 +
[[File:EdgeSense Southbound Service Agentlite files.png|RTENOTITLE]]
 +
 +
Copy&nbsp;HandlerSample.dll to agentlite\prebuilt\module folder.
 +
 +
[[File:EdgeSense Southbound Service module folder.png|RTENOTITLE]]
 +
 +
2. Modify agentlite\prebuilt\module\module_config.xml
 +
<pre><ModuleNum>1</ModuleNum>
 +
<ModuleName1>HandlerSample</ModuleName1>
 +
<ModulePath1>\module\HandlerSample.dll</ModulePath1>
 +
<ModuleEnable1>TRUE</ModuleEnable1>
 +
</pre>
 +
 +
3. Modify agentlite\prebuilt\agent_config.xml
 +
<pre><DeviceName>HandlerSample</DeviceName>
 +
<DevID>HandlerSample</DevID>
 +
<SN>HandlerSample</SN>
 +
<DevType>Service</DevType>
 +
<WorkDir></WorkDir>
 +
<ServiceName>Agent_HandlerSample</ServiceName>
 +
</pre>
 +
 +
4. Run Southbound service.
 +
<pre>cd agentlite\prebuilt
 +
CAgent.exe -n 
 +
</pre>
 +
 +
[[File:EdgeSense Southbound Service run.png|RTENOTITLE]]
 +
 +
== Run EdgeSense device service on Ubuntu 16.04 ==
 +
 +
1. Build SRP-Plugin and HandlerSample service
 +
<pre>$ cd SRP-Plugin
 +
$ sudo ./pre-install_ubuntu.sh
 +
$ ./build-srpplugin.sh
 +
</pre>
 +
 +
2. After build is complete, HandlerSample service is generated in SRP-Plugin/Release/module folder.
 +
<pre>$ 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
 +
</pre>
  
 +
3. Copy HandlerSample to agentlite/prebuilt/module folder.
 +
<pre>cp -af HandlerSample.so* agentlite/prebuilt/module
 +
</pre>
  
== Development for Windows ==
+
4. Modify agentlite/prebuilt/module/module_config.xml
 +
<pre><ModuleNum>1</ModuleNum>
 +
<ModuleName1>HandlerSample</ModuleName1>
 +
<ModulePath1>/module/HandlerSample.so</ModulePath1>
 +
<ModuleEnable1>TRUE</ModuleEnable1>
 +
</pre>
  
1. Open SRP-Plugin\SRP-Plugin.sln with Visual Studio.
+
5. Modify agentlite/prebuilt/agent_config.xml
 +
<pre><DeviceName>HandlerSample</DeviceName>
 +
<DevID>HandlerSample</DevID>
 +
<SN>HandlerSample</SN>
 +
<DevType>Service</DevType>
 +
<WorkDir></WorkDir>
 +
<ServiceName>Agent_HandlerSample</ServiceName>
 +
</pre>
 +
 
 +
6. Run Southbound service.
 +
<pre>$ cd agentlite/prebuilt
 +
$ ./cagent -n
 +
</pre>
 +
 
 +
Then you will see HandlerSample is loaded.
 +
<pre>$ ./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!
 +
</pre>
  
2. Change Solution Configurations to Release , change Solution Platforms to Win32.
+
= Demo on WISE-PaaS/EdgeSense =
  
[[File:EdgeSense Southbound Service VS.png|RTENOTITLE]]
+
In WISE-PaaS/EdgeSense , HandlerSample service is listed in&nbsp;Device Monitoring page.
  
3.&nbsp;In Solution Explorer, choose HandlerSample and build it.
+
[[File:EdgeSense Southbound Service monitor1.png|RTENOTITLE]]
  
[[File:EdgeSense Southbound Service HandlerSample.png|RTENOTITLE]]
+
[[File:EdgeSense Southbound Service monitor2.png|RTENOTITLE]]
  
4. After build is completed, HandlerSample plugin is generated in SRP-Plugin\Release\module folder.
+
In&nbsp;WISE-PaaS/EdgeSense,&nbsp;you can &nbsp;read sensor data in&nbsp;Get/Set Sensor Data&nbsp;page.
  
[[File:EdgeSense Southbound Service release folder.png]]
+
[[File:EdgeSense Southbound Service get sensor1.png|RTENOTITLE]]
  
== Development for Ubuntu 16.04 ==
+
[[File:EdgeSense Southbound Service get sensor2.png|RTENOTITLE]]

Latest revision as of 11:50, 1 August 2019

Introduction

This guide will help you build an EdgeSense Southbound service.

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.

At first, please refer to below documenation to develop a plugin.

After the completion of your plugin development, you will need EdgeSense Device SDK to pack your plugin as a Southbound service.

To accellerate the development of EdgeSense southbound service, you will need to install EdgeSense Device SDK.

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.

Run EdgeSense Southbound service

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 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

Run EdgeSense device service on Windows

1. Copy HandlerSample.dll to agentlite\prebuilt\module folder.

When we download agentlite, it looks like this picture:

RTENOTITLE

Copy HandlerSample.dll to agentlite\prebuilt\module folder.

RTENOTITLE

2. Modify agentlite\prebuilt\module\module_config.xml

<ModuleNum>1</ModuleNum>
<ModuleName1>HandlerSample</ModuleName1>
<ModulePath1>\module\HandlerSample.dll</ModulePath1>
<ModuleEnable1>TRUE</ModuleEnable1>

3. Modify agentlite\prebuilt\agent_config.xml

<DeviceName>HandlerSample</DeviceName>
<DevID>HandlerSample</DevID>
<SN>HandlerSample</SN>
<DevType>Service</DevType>
<WorkDir></WorkDir>
<ServiceName>Agent_HandlerSample</ServiceName>

4. Run Southbound service.

cd agentlite\prebuilt
CAgent.exe -n  

RTENOTITLE

Run EdgeSense device service on 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.

RTENOTITLE

RTENOTITLE

In WISE-PaaS/EdgeSense, you can  read sensor data in Get/Set Sensor Data page.

RTENOTITLE

RTENOTITLE