接口文档

最近更新时间:2019-09-12 11:34:05

SDK 使用了一些系统资源,例如线程、消息队列等。

数据接收回调函数

接口说明

SDK 接收到推送数据时,通知给上层应用接口。

typedef void (*xgAgentRecvDataCB_t)(uint8_t *data, uint32_t len)

参数说明

  • data:透传后台推送的 data 字段数据,为 json 格式字符串。
  • len:data 字段所占字节数。

示例代码

void testRecvDataCB(uint8_t *data, uint32_t len)
{
    if(NULL != data) {
        printf("[demo Debug]$$$$$$$$$$$$$$$$$$$$$$$\n");
        printf("[demo Debug]Recv data %dByte: %s \n", len, data);
    }
}

状态通知回调函数

接口说明

SDK 状态变化时,通知给上层应用接口。

typedef void (*xgAgentStatusCB_t)(xgStatus_t status)

参数说明

  • status:SDK 的运行状态。
typedef enum {
    STATUS_IDEL,
    STATUS_GET_BROKER_SUCCESS,
    STATUS_CLOUD_CONNECTED,
    STATUS_CLOUD_DISCONNECT
}xgStatus_t;
说明:

  • STATUS_IDEL:空闲状态。
  • STATUS_GET_BROKER_SUCCESS:获取 broker 信息成功。
  • STATUS_CLOUD_CONNECTED:连接云端成功。
  • STATUS_CLOUD_DISCONNECT:与云端断开连接。

示例代码

void testStatusCB(xgStatus_t status)
{
    switch(status) {
        case STATUS_GET_BROKER_SUCCESS:
            printf("[demo Debug]We will go to connect xg cloud\n");
            xgAgentConnect();
            break;
        case STATUS_CLOUD_CONNECTED:
            printf("[demo Debug]We connect xg cloud success\n");
            break;
        case STATUS_CLOUD_DISCONNECT:
            printf("[demo Debug]We disconnect xg cloud\n");
            break;
        default:
            break;
    }
}

SDK 初始化

接口说明

用于 SDK 初始化、资源申请、获取云端 broker 信息等操作。

void xgAgentInit(xgAgentConfig_t *config)

参数说明

config:SDK 的配置信息。

typedef struct {
    uint8_t accessKey[ACCESS_KEY_LEN+1];
    uint8_t deviceName[DEVICE_NAME_LEN+1];
    uint32_t accessID;
    xgAgentRecvDataCB_t recvCBFunc;
    xgAgentStatusCB_t statusCBFunc;
}xgAgentConfig_t;
说明:

  • accessID:数字型,控制台创建的应用 ID。
  • accessKey:字符型,控制台创建的应用 Key。
  • deviceName:设备名称,一般使用 mac 或自行定义。
  • recvCBFunc:后台推送数据的回调通知。
  • statusCBFunc:SDK 状态通知。

示例代码

xgAgentConfig_t config;

config.accessID = ACCESSID;
config.recvCBFunc = testRecvDataCB;
config.statusCBFunc = testStatusCB;
strcpy(config.accessKey, ACCESSKEY);
strcpy(config.deviceName, DEVICE_NAME);
xgAgentInit(&config);

SDK 退出

接口说明

用于 SDK 退出、资源释放、断开云端连接等操作。

void xgAgentExit(void)

参数说明

无参数。

示例代码

xgAgentExit();

连接云端

接口说明

用于连接云端,需要在 SDK 状态为STATUS_GET_BROKER_SUCCESS后调用。

void xgAgentConnect(void)

参数说明

无参数。

示例代码

void testStatusCB(xgStatus_t status)
{
switch(status) {
    case STATUS_GET_BROKER_SUCCESS:
        printf("We will go to connect xg cloud\n";);
        xgAgentConnect();
    break;
    ...
    default:
    break;
    }
}

与后台断开连接

接口说明

用于与云端断开连接。

void xgAgentDisconnect(void)

参数说明

无参数。

示例代码

xgAgentDisconnect();