设备端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
        1. linkkit_method_set_property_value
        2. linkkit_method_set_event_output_value
        3. linkkit_method_set_service_output_value
      • thing_id: 物对象ID
      • identifier: TSL属性标示符
      • value: 输入的属性值
        1. 属性类型为int、enum或者bool时,value为int*
        2. 属性类型为float,value为float*
        3. 属性类型为date, value为long long*
        4. 属性类型为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
        1. linkkit_method_get_property_value
        2. linkkit_method_get_event_output_value
        3. linkkit_method_get_service_input_value
        4. linkkit_method_get_service_output_value
      • thing_id:物对象ID
      • identifier: TSL属性标识
      • value:获取的属性值
        1. 属性类型为int、enum或者bool时,value为int*
        2. 属性类型为float,value为float*
        3. 属性类型为date, value为long long*
        4. 属性类型为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: 失败
    • 备注:无

results matching ""

    No results matching ""