API / SDK цифрового двойника Azure IOT PnP для получения определений свойств, команд и телеметрии для устройства / двойника

В настоящее время я изучаю Azure IOT Plug and Play и Digital Twins.

Я использую следующий образец устройства: Azure \ IOT Plug and Play \ azure-iot-samples-csharp \ iot-hub \ Samples \ device \ PnpDeviceSamples \ Thermostat

и соответствующий пример службы: Azure \ IOT Plug and Play \ azure-iot-samples-csharp \ iot-hub \ Samples \ service \ PnpServiceSamples \ Thermostat

Для взаимодействия с термостатом: https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/samples/Thermostat.json

Я хотел бы узнать, какие свойства, телеметрия и команды доступны для устройства / двойника через API / SDK на основе идентификатора двойника, однако я заметил, что Microsoft.Azure.Devices.Device и Microsoft.Azure.Devices.Shared. Классы-близнецы содержат только информацию о свойствах и не определяют команды или телеметрию.

Microsoft.Azure.Devices.RegistryManager registryManager = _registryManager;

Microsoft.Azure.Devices.Device device = await registryManager.GetDeviceAsync(_digitalTwinId);

Microsoft.Azure.Devices.Shared.Twin twin = await _registryManager.GetTwinAsync(_digitalTwinId);

Подскажите, пожалуйста, как мне получить определения команд и телеметрии?


person Stuart Armstrong    schedule 21.10.2020    source источник


Ответы (1)


Чтобы динамически обнаруживать все детали модели устройства в вашем приложении, необходимо сделать следующее:

  1. определить идентификатор модели устройства
  2. разрешить его в файл модели из репозитория
  3. проанализировать файл модели

См. Документацию здесь: https://docs.microsoft.com/en-us/azure/iot-pnp/concepts-model-discovery

Чтобы проанализировать модель, вы можете напрямую прочитать json или использовать библиотеку парсера модели, чтобы получить многофункциональную объектную модель для модели устройства. См. Документы здесь: https://docs.microsoft.com/en-us/azure/iot-pnp/concepts-model-parser

person Stefan Wick MSFT    schedule 22.10.2020