Microsoft.Azure.Devices.Device和Microsoft.Azure.Devices.Shared.Twin有什么区别?

问题描述

假设我想使用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();

DeviceTwin似乎共享大多数属性Twin更通用,可用于查询模块,并可用于读取标签,所需/报告的属性。但除此之外,除非我缺少某些内容,否则它们似乎或多或少具有相同的信息。

所以我只是想知道,是否存在根本的区别,或者两者基本相同?

解决方法

尽管它们共享某些属性,但它们并不相同。

“设备”是一种简单类型,在所有集线器SKU(基本,标准和免费)中都可用。它报告有关设备状态和身份的属性。

“双胞胎”是一种类型,它揭示了设备双胞胎的强大概念,该概念使设备可以报告应用程序特定的状态,并允许后端将设置应用于设备。它是通过JSONHub来实现的,IoTHub会为每个设备维护和同步该文档。此功能仅在标准SKU和免费SKU中可用(在基本版本中不可用)。

在此处阅读有关此内容的更多信息: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-device-twins