EIS Service SDK
Contents
Introduction
This is a SDK for receiving and sending control command to EdgeSense system. Application can use the SDK to communication with EdgeSense southbound devices.
Device Service SDK
Device service SDK supports cross-platform / OS and multiple language as below. User can ealy to get/set southbound services by it.
OS: Windows, Linux
CPU: x86/x64 and ARM / RISC
Language: C/C++, Node.JS
How To
Soure Code
C/C++
git@advgitlab.eastasia.cloudapp.azure.com:EdgeSense/Service-SDK.git
Node.JS
git@advgitlab.eastasia.cloudapp.azure.com:EdgeSense-Open/device-service-sdk-node.js.git
Definition
Service Return Code
typedef enum {
SV_ER_NOT_IMPLEMENT = -13, /* Does Not Support this command (501) */
SV_ER_TIMEOUT = -12, /* Request Timeout (408) */
SV_ER_SYS_BUSY = -11, /* System is busy (503) */
SV_ER_VALUE_OUT_OF_RNAGE = -10, /* Value is out of range (416) */
SV_ER_SYNTAX_ERROR = -9, /* Format is correct but syntax error (422) */
SV_ER_FORMAT_ERROR = -8, /* Format error (415) */
SV_ER_REQUEST_ERROR = -7, /* Request error (400) */
SV_ER_RESOURCE_LOSE = -6, /* SenHub disconnect (410) */
SV_ER_RESOURCE_LOCKED = -5, /* Resource is in setting (426) */
SV_ER_NOT_FOUND = -4, /* Resource Not Found (404) */
SV_ER_WRITE_ONLY = -3, /* Read Only (405) */
SV_ER_READ_ONLY = -2, /* Write Only (405) */
SV_ER_FAILED = -1, /* Failed (500) */
SV_OK = 0, /* Success (200) */
SV_INITILIZED = 1, /* Library had initilized */
} SV_CODE;
Service Status
typedef enum
{
SV_UNINIT = 0,
SV_INIT = 1,
SV_JOINED = 2,
SV_LEAVED = 3,
}SV_STATUS;
Service Event
Callback Function
typedef SV_CODE (SVCALL *Service_Cb) ( SV_EVENT e, char *ServiceName, void *inData, int dataLen, void *pUserData )
Service Event Type
typedef enum
{
SV_E_JoinServiceSystem = 0, // Connected to the Service System
SV_E_LeaveServiceSystem = 1, // Disconnected from the Service System
SV_E_RegisterService = 2, // Registed a new Service ( ex: HDD_PMQ Plugin )
SV_E_DeregisterService = 3, // Deregisted a Service
SV_E_UpdateServiceCapability = 4, // Update Service's Capability
SV_E_UpdateData = 5, // Update Service's data value
SV_E_ActionResult = 6, // Reply Message of Get / Set
SV_E_EventNotify = 7, // EventNotify
}SV_EVENT;
Example
| e | ServiceName | inData | dataLen | pUserData |
| SV_E_JoinServiceSystem |
ServiceSystem |
"" | 0 | point of user data |
| SV_E_LeaveServiceSystem |
ServiceSystem |
"" | 0 | point of user data |
| SV_E_RegisterService |
HDD_PMQ |
InfoSpec of Service refer to SenHub |
Length of data |
point of user data |
| SV_E_DeregisterService |
HDD_PMQ |
"" | 0 | point of user data |
| SV_E_UpdateServiceCapability |
HDD_PMQ |
InfoSpec of Service refer to SenHub |
Length of data |
point of user data |
| SV_E_UpdateData |
HDD_PMQ |
data value of Service refer to SenHub |
Length of data |
point of user data |
| SV_E_ActionResult |
HDD_PMQ |
result of action |
Length of data |
point of user data |
| SV_E_EventNotify |
HDD_PMQ |
event notify refer to EventNotify |
Length of data |
point of user data |
Functions
| Item | Function Name | Description |
| 1 | SV_Initialize | Initialize the Service SDK |
| 2 | SV_Uninitialize |
UnInitialize the Service SDK |
| 3 | SV_GetVersion |
Get version of Service SDK |
| 4 | SV_GetServiceStatus |
Get status of Service System |
| 5 | SV_Query_Service |
Query All of Service Name |
| 6 | SV_GetCapability |
Get Service's Capability |
| 7 | SV_AutoReportStart |
Start Auto Report |
| 8 | SV_AutoReportStop |
Stop Auto Report |
| 9 | SV_Action |
Function for Get / Set Command |
Initial & Uninitial
SV_CODE SV_Initialize( Service_Cb fn, void *pInUserData )
- Description:Initialize the Service SDK
- Parameter:
Service_Cb fn: point of callback function
void* pInUserData: user data will pass when callback
- Return value:
SV_CODE - SV_OK : Successful
SV_ER_FAILED : Failed to call
- History: 06/26/2017 Modified
SV_CODE SV_Uninitialize( );
- Description: UnInitialize the Service SDK
- Parameter: NONE
- Return value:
SV_CODE - SV_OK : Successful
SV_ER_FAILED : Failed to call
- History: 06/26/2017 Modified
Information
SV_CODE SV_GetVersion(char *outVersion, int bufSize );
- Description: Get version of Service SDK
- Parameter:
- char * outVersion (out): point of result buffer size ( recomd: 128 bytes ) =>v1.0.1
- int bufsize (in): max size of buffer
- Return value:
SV_CODE - SV_OK : Successful
- SV_ER_FAILED: Failed to call
- History: 06/26/2017 Modified
- Example:
outVersion: "v1.0.1"
SV_STATUS SV_GetServiceStatus( );
- Description: Get status of Service System
- Parameter:
NONE
- Return value:
SERVICE_STATUS - SV_UNINIT: SDK NOT Initilize
- SV_INIT : Init Status
- SV_JOINED: Joined to Service System
- SV_LEAVED: Leaved from Service System
- History: 06/26/2017 Modified
SV_CODE SV_Query_Service( char *outBuf, int bufSize );
- Description: Query All of Service Name
- Parameter:
- char * outBuf (out): point of result buffer size ( recomd: 1024 bytes ) => { "Service":{"e":[{"n":"HDD_PMQ},{"n":"Modebus"}] }
- int bufsize (in): max size of buffer
- Return value:
SV_CODE - SV_OK : Successful
- SV_ER_FAILED: Failed to call
- History: 06/26/2017 Modified
- Example:
outBuf=> {"Service":{"e":[ ] }} or {"Service":{"e":[{"n":"HDD_PMQ},{"n":"Modebus"}]}}
Function for Service
SV_CODE SV_GetCapability( const char *ServiceName, char *outBuffer, int bufSize )
- Description: Get Service's Capability
- Parameter:
- const char * ServiceName (in): Service Name => HDD_PMQ
- char * outBuffer (out): buffer point for Service's Info Spec ( Recommend:4096 characters )
- int bufSize (in): Max buffer size ( Recommend: 4096 )
- Return value:
SV_CODE - SV_OK : Successful
- SV_ER_FAILED: Failed to call
- History: 06/26/2017 Modified
- Example:
ServiceName : HDD_PMQ
outBuffer : Capability of Serice refer to SenHub
SV_CODE SV_AutoReportStart( const char *ServiceName , char *inData, int inDataLen );
- Description: Start Auto Report
- Parameter:
- const char * ServiceName (in): Service Name => HDD_PMQ
- char * inData (in): Start JSON Data
- int inDataLen (in): Data Length
- Return value:
SV_CODE - SV_OK : Successful
- SV_ER_FAILED: Failed to call
- History: 06/26/2017 Modified
{
"susiCommData":{
"requestID":1001,
"catalogID": 4,
"commCmd": 2053, //general_start_auto_upload_req
“handlerName”:”general”,
"requestItems":{"All":{}}
"autoUploadIntervalSec": 30
}
}
SV_CODE SV_AutoReportStop( const char *ServiceName, char *inData, int inDataLen );
- Description: Stop Auto Report
- Parameter:
- const char * ServiceName (in): Service Name => HDD_PMQ
- char * inData (in): Start JSON Data
- int inDataLen (in): Data Length
- Return value:
SV_CODE - SV_OK : Successful
- SV_ER_FAILED: Failed to call
- History: 06/26/2017 Modified
- Example:
ServiceName : HDD_PMQ
inData :
{
"susiCommData": {
"requestID":1001,
"catalogID": 4,
"commCmd": 2056, //general_stop_auto_upload_req
“handlerName”:”general”
"requestItems":{"All":{}}
}
}
Reply:
Topic: /cagent/admin/<devID>/agentcallbackreq
{
"susiCommData":{
"requestID":1001,
"catalogID": 4,
"commCmd": 2054, //general_start_auto_upload_rep
“handlerName”:”general”,
“result”:”SUCCESS”
}
}
SV_CODE SV_Action( const char *ServiceName , char *szAction, void *pUserData );
- Description: Action function for Get / Set Command
- Parameter:
- const char * ServiceName (in) : Service Name => HDD_PMQ
- char * szAction (in) : Action Command with JSON
- void * pUserData ( in): User data will return when result is callbacked
- Return value:
SV_CODE - SV_OK : Successful
- SV_ER_FAILED: Failed to call
- History: 06/26/2017 Modified
- Example:
ServiceName : HDD_PMQ
szAction:
{
"susiCommData":{
"sessionID":"2746E3B65BAB115338B9668CDC5C35C4",
"sensorIDList":{
"e":[
{
"n":"SenHub/Info/sw"
}
]
},
"commCmd":523,
"requestID":0,
"agentID":"",
"handlerName":"SenHub",
"sendTS":1466057267
}
}
Reply:
Topic: /cagent/admin/<devID>/agentactionreq
{
"susiCommData":{
"commCmd":524,
"handlerName":"SenHub",
"sessionID":"2746E3B65BAB115338B9668CDC5C35C4",
"sensorInfoList":{
"e":[
{
"n":"/Info/sw",
"sv":"1.0.00",
"StatusCode":200
}
]
}
}
}
Release & Sample Code
| Item | Package Name | Date | Note | Download ( Windows ) |
| 1 | ServiceSDK_v1.0.1beta_20170704.zip |
2017/07/04 | initial beta release | v1.0.1_beta |
| 2 | EISServiceSDKSetup_1.0.3.zip |
2017/12/28 | |
v1.0.3 |