问题描述
假设我想使用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
更通用,可用于查询模块,并可用于读取标签,所需/报告的属性。但除此之外,除非我缺少某些内容,否则它们似乎或多或少具有相同的信息。
所以我只是想知道,是否存在根本的区别,或者两者基本相同?
解决方法
尽管它们共享某些属性,但它们并不相同。
“设备”是一种简单类型,在所有集线器SKU(基本,标准和免费)中都可用。它报告有关设备状态和身份的属性。
“双胞胎”是一种类型,它揭示了设备双胞胎的强大概念,该概念使设备可以报告应用程序特定的状态,并允许后端将设置应用于设备。它是通过JSONHub来实现的,IoTHub会为每个设备维护和同步该文档。此功能仅在标准SKU和免费SKU中可用(在基本版本中不可用)。
在此处阅读有关此内容的更多信息: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-device-twins