常见问题
本文主要描述,在驱动开发过程中遇到的问题及其解决方法。
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 { get_properties_callback get_properties_cb; /*设备属性获取回调*/ set_properties_callback set_properties_cb; /*设备属性设置回调*/ call_service_callback call_service_cb; /*设备服务回调*/ 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_name
和leda_register_and_online_by_local_name
有什么区别?答:
by_device_name
表示用此接口实现设备注册的设备名称device_name,必须与在阿里云物联网平台创建设备时的名称一样。by_local_name
表示用此接口实现设备注册的设备名称device_name,可使用自定义名称。说明针对同一ProductKey下的设备注册,必须保证只能使用同一接口。即
by_device_name
和by_local_name
接口不允许在同一ProductKey下同时使用。