Difference between revisions of "IoTGateway/WiseSnail"
Fred.chang (talk | contribs) (→Requirements) |
Fred.chang (talk | contribs) (→Configure) |
||
Line 7: | Line 7: | ||
=Configure= | =Configure= | ||
+ | This library uses autoconf to handle the makefile system. | ||
+ | |||
+ | '''Optional''' | ||
+ | # --disable-paho: Disable Paho support. | ||
+ | # --disable-mosquitto: Disable Mosquitto support. | ||
+ | |||
=Structures= | =Structures= | ||
==Infospec== | ==Infospec== |
Revision as of 02:52, 7 September 2016
Contents
Introduction
WiseSnail is the short name of Wise Sensor Network Abstract Interactive Layer. It is a layer to define the topology and behavior of sensor network. A complete device represented in WiseSnail includes one virtual gateway, one sensor connectivity interface and several sensor hubs. WiseSnail provides a form-like array which we call it infospec array to define tha parameters of sensor hub. And a form-like data array updates your real time data. So, you can easy to represent your device by creating several arrays.
Requirements
Configure
This library uses autoconf to handle the makefile system.
Optional
- --disable-paho: Disable Paho support.
- --disable-mosquitto: Disable Mosquitto support.
Structures
Infospec
Description
The infospec structure defines your parameters in sensor hub. Those parameter structures will represented in Wise-Paas like a tag. this structure includes two callback functions. You can use the callbacks to define your own get and set function. The parameter button on Wise-Paas will different by whether the set function is defined or not. If the set function is defined, the value is writeable by users on Wise-Paas. |
struct WiseSnail_InfoSpec{ WiseSnail_DataType type; char *name; char *unit; union { float value; char *string; }; float min; float max; char *resourcetype; WiseSnail_SetValue setValue; WiseSnail_GetValue getValue; }; |
Example |
{ WISE_VALUE, //WiseSnail_DataType "Temperature", //name "Cel", //unit 0, //value or string -100, //min 200, //max "ucum.Cel", //resourcetype, optional NULL, //set function NULL //get function } |
Data
Description
The data structure defines your value you want to update in sensor hub. the cliendId and info is for internal used and will be assigned while your callback function(like set) is called. |
struct WiseSnail_Data{ WiseSnail_DataType type; char *name; union { float value; char *string; }; char *clientId; //internal WiseSnail_InfoSpec *info; //internal } |
Example |
{ WISE_VALUE, //WiseSnail_DataType "Temperature", //name 100 //value or string } |
Callbacks
Set Callback |
typedef int (*WiseSnail_SetValue)(WiseSnail_Data *data); |
Get Callback |
typedef int (*WiseSnail_GetValue)(WiseSnail_Data *data); |
Functions
Initial & Uninitial
WiseSnail_Init |
void WiseSnail_Init(char *productionName, char *wanIp, unsigned char *parentMac, WiseSnail_InfoSpec *infospec, int count); |
Parameter | Description |
---|---|
productionName | Name for device. |
wanIp | Ip address. |
parentMac | The mac address of parent device. |
infospec | Optional parameter array. |
count | The size of infospec. |
WiseSnail_Uninit |
void WiseSnail_Uninit(); |
Parameter | Description |
---|---|
None | None |
Register
WiseSnail_RegisterInterface |
void WiseSnail_RegisterInterface(char *ifMac, char *ifName, int ifNumber, WiseSnail_InfoSpec *infospec, int count); |
Parameter | Description |
---|---|
ifMac | The mac address of interface. |
ifName | The name of interface. |
ifNumber | The index number of interface. |
infospec | Interface parameter array. |
count | The size of infospec. |
WiseSnail_RegisterSensor |
void WiseSnail_RegisterSensor(char *deviceMac, char *defaultName, WiseSnail_InfoSpec *infospec, int count); |
Parameter | Description |
---|---|
deviceMac | The mac address of sensor hub. |
defaultName | The default name of sensor hub. |
infospec | Sensor hub parameter array. |
count | The size of infospec. |