Difference between revisions of "IoTGateway/SDK/NALInterface"
From ESS-WIKI
(→Structures for Network Interface) |
(→Structures for Network Interface) |
||
| Line 92: | Line 92: | ||
==Structures for Network Interface== | ==Structures for Network Interface== | ||
| − | Interface's Capability | + | '''Interface's Capability''' |
typedef struct '''_SNInfInfo''' | typedef struct '''_SNInfInfo''' | ||
{ | { | ||
| Line 102: | Line 102: | ||
}'''SNInfterfaceInfo,SNInfInfo'''; | }'''SNInfterfaceInfo,SNInfInfo'''; | ||
| − | Get Multi Net Interfaces' Capability | + | '''Get Multi Net Interfaces' Capability''' |
typedef struct '''_SNInfInfos''' | typedef struct '''_SNInfInfos''' | ||
{ | { | ||
| Line 109: | Line 109: | ||
SNInfInfo SNInfs[MAX_SN_INF_NUM]; // Detail Information of Sensor Network Interface | SNInfInfo SNInfs[MAX_SN_INF_NUM]; // Detail Information of Sensor Network Interface | ||
}'''SNInterfaceInfos,SNInfInfos,SNMultiInfInfo'''; | }'''SNInterfaceInfos,SNInfInfos,SNMultiInfInfo'''; | ||
| + | |||
| + | '''Update IoTGW Interface InfoSpec''' | ||
| + | typedef struct _SNInterfaceSpec | ||
| + | { | ||
| + | char sInfName[MAX_SN_INF_NAME]; // Interface Name | ||
| + | char sInfID[MAX_SN_INF_ID]; // Unique ID for identify (ex: 0000+MAC: remove '-' and ':' ) | ||
| + | InDataClass inDataClass; // iTypeCount = 1, psType: Info, psData: {"n":"SenNodeList","sv":"","asm":"r"},{"n":"Topology","sv":"","asm":"r"}, | ||
| + | {"n":"Health","v":-1,"asm":"r"},{"n":"Name","sv":"WSN0","asm":"r"},\ | ||
| + | {"n":"sw","sv":"1.0.0.1","asm":"r"},{"n":"reset","bv":0,"asm":"rw"} | ||
| + | void *pExtened; | ||
| + | }'''SNInterfaceSpec,SNInfSpec'''; | ||
Revision as of 09:35, 26 February 2016
Contents
Abstract
- The main way WSN API SDK can be extended is to add new "NET" modules into its palette. Customer can follow the general C API, structure, command, event and define ( called "NAL" layer Interface ) to add its own "NET" modules (ex: zigbee, bluetooth... ).
Basic Definition
Definition
MAX_SN_INF_NAME 16 // Max size of Interface's Name MAX_SN_INF_ID 64 // Max size of Interface's Unique ID MAX_SN_INF_NUM 8 // Max supports interface number MAX_SN_COM_NAME 32 // Max size of Communication(Net) Type Name MAX_SN_UID 64 // Max size of SenHub Unique ID MAX_SN_HOSTNAME 32 // Max size of SenHub Name MAX_SN_SNO 32 // Max size of SenHub's Serial Number MAX_SN_PRODUCT_NAME 32 // Max size of SenHub's Product Name
Callback Event ID
typedef enum {
// Interface: 1000 ~ 1999
SN_Inf_UpdateInterface_Data = 1000, // Update Interface data from Sensor Network Library
SN_Inf_SendInfoSpec = 1001, // Update Interface InfoSpec (Capability)
// Sensor Node: 2000 ~ 2999
SN_SenHub_Register = 2000, // Sensor Hub Register
SN_SenHub_SendInfoSpec = 2001, // Update Sensor Hub InfoSpec (Capability)
SN_SenHub_AutoReportData = 2002, // Update Sensor Hub data
SN_SenHub_Disconnect = 2003, // Sensor Hub disconnect
SN_SetResult = 3000,
}SN_EVENT_ID;
Control ID
typedef enum {
SN_Set_ReportSNManagerDataCbf = 3000,
// Get / Set
SN_Inf_Get = 6000,
SN_Inf_Set = 6001,
SN_SenHub_Get = 6020,
SN_SenHub_Set = 6021,
}SN_CTL_ID;
Return Code
typedef enum {
SN_ER_NOT_IMPLEMENT = -13, /* Does Not Support this command (501) */
SN_ER_TIMEOUT = -12, /* Request Timeout (408) */
SN_ER_SYS_BUSY = -11, /* System is busy (503) */
SN_ER_VALUE_OUT_OF_RNAGE = -10, /* Value is out of range (416) */
SN_ER_SYNTAX_ERROR = -9, /* Format is correct but syntax error (422) */
SN_ER_FORMAT_ERROR = -8, /* Format error (415) */
SN_ER_REQUEST_ERROR = -7, /* Request error (400) */
SN_ER_RESOURCE_LOSE = -6, /* SenHub disconnect (410) */
SN_ER_RESOURCE_LOCKED = -5, /* Resource is in setting (426) */
SN_ER_NOT_FOUND = -4, /* Resource Not Found (404) */
SN_ER_WRITE_ONLY = -3, /* Read Only (405) */
SN_ER_READ_ONLY = -2, /* Write Only (405) */
SN_ER_FAILED = -1, /* Failed (500) */
SN_OK = 0, /* Success (200) */
SN_INITIALIZED = 1, /* Library had initialized */
}SN_CODE;
Basic In/Out Data Structure
Input Data Base Structure
typedef struct _InBaseData
{
char *psType; // 64 ( reference size )
int iSizeType; // Buffer size of psType
char *psData; // 2048 ( reference size )
int iSizeData; // Buffer size of psData
void *pExtend; // Extend
}InBaseData;
Input Data Class Structure
typedef struct _InDataClass
{
int iTypeCount; // Number of Type
InBaseData *pInBaseDataArray; // Point of first BaseInData Array
void *pExtened; // Extend
}InDataClass;
Output Data Base Structure
typedef struct _OutBaseData
{
char *psType; // 64 ( reference size )
int iSizeType; // Buffer size of psType
char *psData; // 2048 ( reference size ) => If the data length is more than buffer size, user can reallocate this buffer point and re-assign the iSizeData.
int *iSizeData; // Buffer size of psData
void *pExtend; // Extend
}OutBaseData;
typedef struct _OutDataClass
{
int iTypeCount; // Number of Type
OutBaseData *pOutBaseDataArray; // Point of the first BaseOutData Array
void *pExtened; // Extend
}OutDataClass;
Structures for Network Interface
Interface's Capability
typedef struct _SNInfInfo
{
char sInfName[MAX_SN_INF_NAME]; // Interface Name
char sInfID[MAX_SN_INF_ID]; // Unique ID for identify (ex: MAC )
OutDataClass outDataClass; // iTypeCount = 1, psType: Info, psData:{"n":"SenHubList","sv":"","asm":"r"},{"n":"Topology","sv":"","asm":"r"},{"n":"Health","v":-1,"asm":"r"},
{"n":"Name","sv":"WSN0","asm":"r"}, {"n":"sw","sv":"1.0.0.1","asm":"r"},{"n":"reset","bv":0,"asm":"rw"}
void *pExtened; // Reserve for use
}SNInfterfaceInfo,SNInfInfo;
Get Multi Net Interfaces' Capability
typedef struct _SNInfInfos
{
char sComType[MAX_SN_COM_NAME]; // Communication Type Name
int iNum; // Number of Sensor Network Interface
SNInfInfo SNInfs[MAX_SN_INF_NUM]; // Detail Information of Sensor Network Interface
}SNInterfaceInfos,SNInfInfos,SNMultiInfInfo;
Update IoTGW Interface InfoSpec
typedef struct _SNInterfaceSpec
{
char sInfName[MAX_SN_INF_NAME]; // Interface Name
char sInfID[MAX_SN_INF_ID]; // Unique ID for identify (ex: 0000+MAC: remove '-' and ':' )
InDataClass inDataClass; // iTypeCount = 1, psType: Info, psData: {"n":"SenNodeList","sv":"","asm":"r"},{"n":"Topology","sv":"","asm":"r"},
{"n":"Health","v":-1,"asm":"r"},{"n":"Name","sv":"WSN0","asm":"r"},\
{"n":"sw","sv":"1.0.0.1","asm":"r"},{"n":"reset","bv":0,"asm":"rw"}
void *pExtened;
}SNInterfaceSpec,SNInfSpec;