系统函数
初始化SDK
初始化设备与APP交互的上下文环境。注意,填写密钥时,需将官网的一串字符串转换成相应的十六进制编码,即在每个字节前增加0x作为开头。如字符串是5668,转换时应改为0x56,0x68。
iot_s32 iot_start ( struct iot_context* ctx );
struct iot_context结构体的内容如下:
参数 | 长度 | 说明 |
---|---|---|
product_id | 4 | 产品ID,云平台生成,4字节的无符号整型数字 |
product_key | 16 | 产品秘钥,云平台生成,16字节的十六进制编码 |
mcu_version | 5 | mcu固件版本,"xx.xx",0≤x≤9 |
recvbuf_size | 4 | 接收数据buffer大小,范围512-2048 |
sendbuf_size | 4 | 发送数据buffer大小,范围512-2048 |
返回值 | 4 | 0:成功;-1:失败 |
设置设备运行状态
void iot_status_set( DEV_STATUS_T dev_status,
iot_u32 timeout )
参数 | 说明 |
---|---|
dev_status | DEV_STA_UNBIND :设置解绑,设备会解除与APP端的绑定关系。操作成功后自动调用3.3节的回调函数 |
timeout | 设备运行状态保持时长,单位为秒;timeout = 0表示不设置超时状态。 |
下表为3.2中设置参数与3.3中回调参数的对应关系。
设置运行状态 | 设置参数(3.2章节) | 回调参数(3.3章节) |
---|---|---|
恢复出厂 | DEV_STA_BLE_DISCONNECT | 设备BLE断开连接通知:DEV_STA_BLE_DISCONNECT (0) |
允许绑定 | DEV_STA_BLE_CONNECTED | 设备BLE连接成功通知:DEV_STA_BLE_CONNECTED(1) |
解除绑定 | DEV_STA_UNBIND | 解绑成功:DEV_STA_UNBIND(4) |
设备运行状态报告
当设备运行状态发生改变时,sdk自动调用此函数。回调函数中不可执行太多耗时代码。
void iot_status_cb( DEV_STATUS_T dev_status,
iot_u32 timestamp )
参数 | 说明 |
---|---|
dev_status | DEV_STA_BLE_DISCONNECT (0) :设备BLE断开连接DEV_STA_BLE_CONNECTED (1) :设备BLE连接成功DEV_STA_BLE_APP_CONFIRM (2) :与APP注册认证通过DEV_STA_UNBIND (3) : 解绑成功 |
timestamp | 状态改变的时间点 |
获取网络时间
iot_u32 iot_get_onlinetime( void )
参数 | 说明 |
---|---|
返回值 | 0:时间无效>0:实时网络时间戳 |
打印输出函数
此函数用于输出日志信息,需用户自行实现,可根据需要重定向到串口、屏幕、文件等位置。
void iot_print ( const char * str )
参数 | 说明 |
---|---|
str | 输出的日志内容 |
接收设备信息
void iot_info_cb ( INFO_TYPE_T info_type, void* info )
参数 | 说明 |
---|---|
info_type | INFO_TYPE_OTA:OTA下载固件的信息,包括固件类型、固件总大小、固件版本号 |
info | 请求消息类型的数据内容 |
回调函数中不可执行太多耗时代码。该函数用来处理接收的设备信息数据,接收的数据根据info_type的值数据格式不同
①当info_type= INFO_TYPE_OTA时,表示获取的是OTA信息,数据结构体如下
typedef struct ota_info {
iot_u8 owner; //固件类型,0:wifi固件,1:MCU固件
iot_u32 flen; //固件文件大小
char ota_ver[6];//OTA固件版本号
}ota_info_t;
发送数据回调函数
发送数据成功后,sdk自动调用下面这个回调函数。当调用4.1节上传数据、6.1节透传自定义数据。回调函数中不可执行太多耗时代码。
void iot_data_cb( iot_u32 data_seq )
参数 | 说明 |
---|---|
data_seq | 某条数据的序列号,如不关心何时上传成功,可不做处理 |
获取时间结构体
void iot_parse_timestamp ( iot_u32 tick , struct s_time* st );
参数 | 说明 |
---|---|
tick | 需要被转换的时间戳 |
st | 转换后的时间结构体 |
时间结构体定义如下:
struct s_time {
int sec; //秒
int min; //分
int hour; //时
int day; //日
int mon;//月
int year; //年
int week; //周
};