Microsoft.Azure.Devices.Device 和 Microsoft.Azure.Devices.Shared.Twin 有什么区别?
What is the difference between Microsoft.Azure.Devices.Device and Microsoft.Azure.Devices.Shared.Twin?
假设我想使用 Microsoft.Azure.Devices package/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
更通用,可用于查询模块,可用于读取标签,Desired/Reported 属性。但除此之外,他们似乎或多或少有相同的信息,除非我遗漏了什么。
所以我只是想知道,两者是否存在任何根本差异或基本相同?
虽然它们共享一些属性,但它们并不相同。
“设备”是所有 Hub SKU(基本、标准和免费)中都可用的简单类型。它报告有关设备状态和身份的属性。
“孪生”是一种公开设备孪生的强大概念的类型,它使设备能够报告应用程序的特定状态,并使后端能够将设置应用到设备。它通过 IoTHub 为每个设备维护和同步的 JSON 文档来实现。此功能仅在标准和免费 SKU 中可用(在基本 SKU 中不可用)。
在此处阅读更多相关信息:
https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-device-twins
假设我想使用 Microsoft.Azure.Devices package/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
更通用,可用于查询模块,可用于读取标签,Desired/Reported 属性。但除此之外,他们似乎或多或少有相同的信息,除非我遗漏了什么。
所以我只是想知道,两者是否存在任何根本差异或基本相同?
虽然它们共享一些属性,但它们并不相同。
“设备”是所有 Hub SKU(基本、标准和免费)中都可用的简单类型。它报告有关设备状态和身份的属性。
“孪生”是一种公开设备孪生的强大概念的类型,它使设备能够报告应用程序的特定状态,并使后端能够将设置应用到设备。它通过 IoTHub 为每个设备维护和同步的 JSON 文档来实现。此功能仅在标准和免费 SKU 中可用(在基本 SKU 中不可用)。
在此处阅读更多相关信息: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-device-twins