В случае, когда ваше приложение IoT C является НЕ устаревшим приложением, вы можете использовать предварительное приложение IoT C (которое является CapabilityModel управляемым типом модели) с поддержкой API REST для вызова вашего устройства. В настоящее время предварительная версия не имеет функции, которой вы пытаетесь достичь, такой как отправка C2D-сообщения на устройство.
Предварительный просмотр IoT C поддерживает только вызов метода устройства - Выполнить команду . Следующие фрагменты экрана продемонстрировали эту функцию. В этом примере я использую свой Azure IoT Hub Tester , где виртуальные устройства используют протокол MQTT непосредственно к базовому IoT Hub Центрального приложения IoT.
Я создал бесплатное приложение IoT Central с шаблоном AzureKit ESP32 , зарегистрировано и подготовлено для device1 и подключено с помощью Azure IoT Hub Tester:
Отображение команды echo Модель PnP:
Вызов команды echo вызовом REST POST. Обратите внимание, что sastoken авторизации должен быть создан на странице Токены администрирования / API .
Устройство
1 получило прямой вызов и опубликовало свой ответ (обратите внимание, что этот экран не был снят из-за его короткого ограничения времени ответа). В следующем фрагменте экрана показан полный вызов syn c REST с устройством1. Обратите внимание, что эта предварительная версия не обрабатывает полезную нагрузку ответа на основе упомянутого документа и модели PnP.
Наконец, этот фрагмент экрана показывает историю этого командного действия через REST:
Обратите внимание, что также отсутствует объект ответа от устройства, как описано, описан в схеме CapabilityModel.
ОБНОВЛЕНИЕ
Я добавил отсутствующий фрагмент экрана на стороне устройства, когда метод echo было вызвано:
Как видно на рисунке выше, устройство получило полезную нагрузку REST POST и опубликовало ответ на invoker на основе схемы модели PnP.
ОБНОВЛЕНИЕ 2
Следующие фрагменты экрана демонстрируют вызов команды upgrade для device4 . Обратите внимание, что device4 - это устройство PnP, созданное из шаблона SmartConnect FM-201 IoT Gateway .
device4 получил сообщение прямым методом upgrade :
device4 отправлено ответ обратно на invoker и приложение IoT C. На следующем рисунке показана его история:
Обратите внимание, снова отсутствует объект ответа в ответе REST, а также в приложении IoT C , Я надеюсь, что это ошибка в этой предварительной версии, и она скоро исправит ее, следуя схеме CapabilityModel.