Чтение из конечной точки Azure IoT

У меня есть небольшой проект IoT с одним устройством. Arduino отправляет некоторые значения в azure, где приложение-функция обрабатывает их и отправляет инструкции для arduino в конечную точку в центре Интернета вещей. (/devices/MKR1000/messages/devicebound?api-version=2016-02-03) Мне нужно получать данные с этой конечной точки в режиме реального времени, поэтому я хочу, чтобы arduino считывал только последние (самые новые ) сообщение каждый раз, но оно начинается с самого старого.

Можно заставить Arduino читать все сообщения с конечной точки и показывать последние, но я ищу более эффективный способ.

Спасибо.


person Openzz    schedule 08.02.2018    source источник
comment
вам нужно отбросить старые сообщения и обработать только последние?   -  person Devis L.    schedule 09.02.2018
comment
Да, точно. .   -  person Openzz    schedule 09.02.2018
comment
Если вас интересует только самая последняя информация, отправленная из облачного приложения, вы можете рассмотреть возможность использования дубликатов устройств вместо сообщений. Это декларативный шаблон, поэтому вы можете использовать его для выражения желаемого состояния вашего устройства (в отличие от вызова команды или отправки сообщения). Изменения двойника устройства можно прослушивать, используя подмодель паба, регистрируя обратный вызов, и при изменении вы будете читать двойник устройства, чтобы увидеть новое желаемое состояние.   -  person Devis L.    schedule 09.02.2018
comment
@Openzz, какой у устройства протокол? В случае протоколов MQTT или AMQP использование прямых методов устройства может помочь в управлении связью в реальном времени между облачной серверной частью и устройством.   -  person Roman Kiss    schedule 09.02.2018


Ответы (1)


Вы получаете старые сообщения, так как они все еще находятся в очереди в Центре Интернета вещей Azure из-за того, что устройство не "завершает" эти сообщения. Центр Интернета вещей поддерживает возможность завершать/отклонять/отклонять сообщения C2D через HTTPS и AMQP только в данный момент.

Другим вариантом является установка ExpiryTimeUtc (в функциональном приложении?) для более быстрого выпуска старых сообщений (минимум 1 минута. По умолчанию: 1 час).

Дополнительную информацию вы можете найти по ссылке Отправить облако сообщения на устройство из Центра Интернета вещей".

person Rita Han    schedule 09.02.2018