本章主要描述,在驱动开发过程中遇到的问题及其解决方法。

  • leda_register_and_online_by_device_name(const char *product_key, const char *device_name, leda_device_callback_t *device_cb, void *usr_data)接口的device_cb作用是什么?

    答:

    用于接收来自云端或其他边缘应用对设备的服务请求调用。分别是请求获取设备属性、请求设置设备属性,请求调用设备服务。

  • typedef struct leda_device_callback
    {
    
       ...
       int  service_output_max_count;   /* 设备服务回调结果数组最大长度 */
    } leda_device_callback_t;

    字段service_output_max_count表示什么意思?

    答:

    用于设置call_service_cb回调接口output_data数组的最大长度。

  • leda_init(const char *module_name, int worker_thread_nums)接口的worker_thread_nums是用来做什么的?

    答:

    用于初始化驱动的线程池。初始的线程池处理来自云端或边缘应用对设备的请求调用,具体大小可根据接入设备量进行合理设置。

  • leda_register_and_online_by_device_nameleda_register_and_online_by_local_name有什么区别?

    答:

    • by_device_name表示用此接口实现设备注册的设备名称device_name,必须与在阿里云物联网平台创建设备时的名称一样。
    • by_local_name表示用此接口实现设备注册的设备名称device_name,可使用自定义名称。
      说明 针对同一ProductKey下的设备注册,必须保证只能使用同一接口。即by_device_nameby_local_name接口不允许在同一ProductKey下同时使用。
  • 设备正常上线且从设备所在驱动的日志中看到设备数据正常上报,但在物联网平台控制台,设备数据上报内容没有被更改?

    答:

    确认是否在物联网平台控制台配置了消息路由,详细操作请参见设置消息路由内容。