设备端API
更新时间:2019-06-05 11:25:55
必选API
int linkkit_start(int max_buffered_msg, int get_tsl_from_cloud, IOT_LogLevel log_level, linkkit_ops_t *ops, void *user_context)
启动linkkit服务,与云端建立连接并安装回调函数
参数
max_buffered_msg: 消息队列大小
get_tsl_from_cloud: 获取TLS路径(0:从本地获取,非0:从云端获取)
log_level: 设置打印的日志等级, 接受入参从1到5, 数字越大, 打印越详细
ops: linkkit事件回调函数
user_context:用户上下文环境指针
返回值
0: 成功
-1: 失败
备注:无
int linkkit_end()
停止linkkit服务,与云端断开连接并回收资源
参数:无
返回值
0: 成功
-1: 失败
备注:无
int linkkit_dispatch()
事件分发函数,触发linkkit_start安装的回调
参数:无
返回值
0: 成功
-1: 失败
备注:无
int linkkit_set_value(linkkit_method_set_t method_set, const void* thing_id, const char* identifier, const void* value, const char* value_str);
根据identifier设置物对象的TSL属性
参数
method_set
linkkit_method_set_property_value
linkkit_method_set_event_output_value
linkkit_method_set_service_output_value
thing_id: 物对象ID
identifier: TSL属性标示符
value: 输入的属性值
属性类型为int、enum或者bool时,value为int*
属性类型为float,value为float*
属性类型为date, value为long long*
属性类型为text, value为char *
value_str:字符串类型的value(如果value为空,则val_str作为TSL属性值)
返回值
0: 成功
-1: 失败
备注
- value及val_str不能同时为NULL
int linkkit_get_value(linkkit_method_get_t method_get, const void* thing_id, const char* identifier, void* value, char** value_str);
根据identifier获取物对象的TSL属性
参数
method_get
linkkit_method_get_property_value
linkkit_method_get_event_output_value
linkkit_method_get_service_input_value
linkkit_method_get_service_output_value
thing_id:物对象ID
identifier: TSL属性标识
value:获取的属性值
属性类型为int、enum或者bool时,value为int*
属性类型为float,value为float*
属性类型为date, value为long long*
属性类型为text, value为char *
value_str:字符串类型的value(用户不可对此内存进行修改,可拷贝一份到用户空间进行操作)
返回值
0: 成功
-1: 失败
备注:无
int linkkit_answer_service(const void* thing_id, const char* service_identifier, int response_id, int code)
对云端服务请求进行回应
参数
thing_id:物对象ID
service_identifer: 服务标识符
response_id: 回复ID
code: 回复状态码
返回值
0: 成功
-1: 失败
备注:无
int linkkit_invoke_raw_service(const void* thing_id, int is_up_raw, void* raw_data, int raw_data_length)
向云端发送裸数据
参数
thing_id: 物对象ID
is_up_ram: 消息类型(非0:raw上行, 0:raw下行回复)
raw_data: 裸数据
raw_data_length: 裸数据长度
返回值
0: 成功
-1: 失败
备注:无
int linkkit_trigger_event(const void* thing_id, const char* event_identifier, const char* property_identifier)
上报设备事件到云端
参数
thing_id: 物对象ID
event_identifier: 事件标示符
property_identifier: 属性标示符
返回值:
0: 成功
-1: 失败
备注:
- 如果触发的事件的method为"event.property.post",则会向云上报指定的property,否则上报所有的property
int linkkit_yield(int timeout_ms)
linkkit主循环函数,用于报文的发送及接收;如果允许多线程,请不要调用此函数
参数
- timeout_ms: 超时时间(毫秒)
返回值
0: 成功
-1: 失败
TSL相关
void* linkkit_set_tsl(const char* tsl, int tsl_len);
从本地读取TSL文件,生成Thing对象并添加到linkkit中
参数
tsl:设备描述信息(JSON类型)
tsl_len:设备描述信息长度
返回值
NULL: 失败
other: 生成的物对象id
备注:无
OTA相关
int linkkit_ota_init(handle_service_fota_callback_fp_t callback_fp)
初始化OTA服务,并安装回调函数
参数
- callback_fp: OTA回调函数
返回值
0: 成功
-1: 失败
备注:无
int linkkit_invoke_ota_service(void* data_buf, int data_buf_length)
执行OTA服务
data_buf: OTA接收buffer,OTA服务程序将会使用这段内存接收BIN
data_buf_length:OTA 接收buffer大小
返回值
0: 成功
-1: 失败
备注:无