设备端API
更新时间:2018-10-19 11:29:34
必选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属性值)
- method_set
- 返回值
- 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(用户不可对此内存进行修改,可拷贝一份到用户空间进行操作)
- method_get
- 返回值
- 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: 失败
- 备注:无