2016-05-09 2 views
1

из того, что я могу видеть здесь: https://github.com/telefonicaid/iotagent-node-lib/blob/master/lib/services/ngsi/ngsiService.js в createRequestObject только /updateContext и /queryContext используются - так, ТОЛЬКО API NGSI 10.Агенты IoT - только NGSI 10 (нет NGSI 9)?

Является ли NGSI 9 когда-либо используемым в IoT Agents и как?

Я удивлен, потому что я ожидал, что регистрация устройства вызовет NGSI 9 registerContext, но это не тот случай, и вызывается только NGSI 10 /updateContext.

BR,

Drasko

ответ

0

агенты используют оба NGSI 10 и NGSI 9, но они не принимают NGSI 9 запросов. I.e .: Агенты работают как поставщики контекста, когда вы определяете ленивые атрибуты или команды, регистрируясь в NGSI 9 в Контекст-брокере; являясь Контекст-провайдерами, они должны принимать запросы NGSI 10 (а не NGSI 9), чтобы Контекстный Брокер составлял ответ на сторонний контекстный запрос. Все это поведение объясняется диаграммами последовательностей в библиотеке IoAgent Node.js: https://github.com/telefonicaid/iotagent-node-lib#device-to-ngsi-mapping. На этих диаграммах вы можете увидеть, как агенты IoT отправляют запросы registerContext для своих ленивых/командных атрибутов.

С другой стороны, IOTAs не принимают запросы NGSI, так как они не выполняют перенаправления контекстных запросов (как Orion do), поскольку агенты IoT являются поставщиками контекста, а не Контекст-брокеры.

+0

«Агенты работают как поставщики контекста, когда вы определяете ленивые атрибуты или команды, регистрируясь в NGSI 9 в Контекст-брокере»; - не могли бы вы указать мне код для этой регистрации? Где именно мы отправляем запросы регистрации NGSI 9 в код «iotagent-node-lib», потому что я не могу их найти - все, что я вижу, это запросы NGSI 10 (обновление, запрос и подписка). –

+0

И кстати - в чем разница между «Регистратором» и «ЛАЗИНЫМИ Атрибутами» в смысле NGSI 9? Я вижу, что они оба отправляют '/ registerContext'. То есть «Regitesr Device» также вызывает NGSI 9 устройства Orion и регистрирует устройство как поставщик контекста (даже если мы никогда не используем Lazy Attributes, то есть если устройство является только активным провайдером, отправляет обновления сам по себе, например, каждые 5 минут). –

+0

Что касается кода NGSI9, вы можете найти его здесь: https://github.com/telefonicaid/iotagent-node-lib/blob/master/lib/services/devices/registrationUtils.js Вы можете проследить, где его вызывается оттуда (при основном обеспечении устройств). Что касается вашего следующего вопроса, я не понимаю, о чем вы говорите. Lazy атрибуты являются одним из трех доступных типов атрибутов, в то время как RegisterDevice - это процесс создания устройства и его исходного объекта в агенте. Он должен зарегистрировать IOTA в качестве поставщика контекста, если есть какие-либо ленивые атрибуты или команды. В противном случае у нас есть ошибка. –

Смежные вопросы