假设我想使用 Microsoft.Azure.Devices 包/SDK 加载设备信息,这与我所说的有什么区别:
RegistryManager regManager = RegistryManager.CreateFromConnectionString(connectionString);
Device device = await regManager.GetDeviceAsync("Device_1");
// OR
Twin twin = (await regManager.CreateQuery("SELECT * FROM devices WHERE deviceId = 'Device_1'")
.GetNextAsTwinAsync())
.First();
Device
和 Twin
似乎共享大多数属性。 Twin
更通用,可用于查询模块,并可用于读取标签、所需/报告属性。但除此之外,他们似乎有或多或少相同的信息,除非我遗漏了一些东西。
所以我只是想知道,是否存在任何根本差异或者两者基本上相同?
最佳答案
虽然它们共享一些属性,但它们并不相同。
“设备”是一种简单类型,适用于所有 Hub SKU(基本、标准和免费)。它报告有关设备状态和身份的属性。
“双胞胎”是一种展示设备双胞胎强大概念的类型,它使设备能够报告应用程序特定的状态,并使后端能够将设置应用到设备。它通过 IoTHub 为每个设备维护和同步的 JSON 文档来实现此目的。此功能仅在标准和免费 SKU 中可用(在基本 SKU 中不可用)。
在这里阅读更多相关信息: https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-device-twins
关于c# - Microsoft.Azure.Devices.Device 和 Microsoft.Azure.Devices.Shared.Twin 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64648515/