azure - 适用于 C 的 Azure IoT Hub SDK:使用哪个客户端模块?
问题描述
我们正在使用 Azure IoT Hub 作为后端解决方案来制作 IoT 产品。主应用程序是用 C 编写的,我们将使用 Azure SDK for C。我们研究了 SDK 并决定使用低级客户端。但事情是这样的 - Azure SDK 中有多个模块似乎是独立的-iothub_client_ll.h
和. 使用哪一个?iothub_device_client_ll.h
iothub_client_core_ll.h
我们还注意到它iothub_device_client_ll.h
没有异步处理设备方法的能力,我们真的需要那个东西。但是 device_client 模块似乎是最新的——也许微软的人打算iothub_client_ll
从 SDK 中删除模块?
我们无法在 Azure 网站或 github 存储库文档和讨论中找到这些问题的答案。任何人都可以帮助我们理解这些东西吗?
解决方案
如果您查看源文件,您会发现它们都调用了iothub_client_core_ll,因此您使用哪个几乎没有关系。这些不同版本的存在只是为了向后兼容。
我不明白你所说的异步处理是什么意思。这些文件中的 ll 代表低级别,这意味着它们比没有 ll 的版本具有更少的依赖关系。其中之一是它在内部不使用任何线程,因此代码可以在不支持线程的处理器上运行,因此一切都将在单个线程上运行,并且您将需要IoTHubClient_LL_DoWork
定期调用(想想 100 次第二)为了连接到集线器并发送和接收消息。如果您需要在第二个线程中处理设备方法,那么您应该使用没有ll 指定的版本。
推荐阅读
- c - 基于计数排序的问题中的 SIGSEGV 错误
- xcode - 自定义字体未显示在我的开发窗格中
- python - tcp server 结合 Python3.7 asyncio 和 multiprocess
- amazon-web-services - 安全组和网络接口出现 AWS CloudFormation 错误,参数组合无效
- sql-server - 结合表数据和历史表
- c# - 使用多租户缓存用户数据
- java - 如何在一段时间内拒绝对方法的访问?
- vue.js - 强制优酷的所有第三方请求通过 https 而不是 http
- python - 从 http 响应中获取特定值
- javascript - 如何在 js 文件中自动保存数组以及一些文本?