2016-06-29 1 views
1

В этом вопросе у меня есть проблема, что условия Ориона не были удовлетворены, но она была решена путем удаления котировки на особой ценности Why this orion subscription don't works as I want?Почему cepheus не отправляет int без кавычек в orion?

Новая проблема заключается в том, что, когда я обрабатываю событие с КЭП, который вычисляет mFlag Int атрибут отправляет его в orion, но, по-видимому, он отправляет с кавычками (та же проблема, что описана в связанном вопросе, опубликованном ранее), потому что объект orion изменен, но уведомление не запускается.

Цефей КЭП конфигурации из, как этот:

"out":[ 
    { 
     "id":"algo", 
     "type":"Event", 
     "brokers":[ 
     { 
      "url":"http://localhost:1026" //orion 
     } 
     ], 
     "attributes":[ 
     { "name":"IdEvent", "type":"int" }, 
     { "name":"mFlag", "type":"int" } 
     ] 
    } 
    ], 

Является ли эта проблема Цефей КЭП или это ошибка Ориона не интерпретировать тип атрибута в условиях?

ответ

2

Возможно, вы столкнулись с несовместимостью в реализации протокола NGSIv1 между Cepheus и Orion.

NGSIv1 был хорошо определен для его формата XML (как стандарт OMA), но не для его версии JSON. Команда Cepheus основывала реализацию JSON на одном из существующих документов, определяющих формат JSON NGSIv1: API Walkthough of the Orion documentation.

В этом документе все значения обмениваются (как в формате XML stantard) в виде строк. Поэтому Cepheus использует строки независимо от типа значения.

Если бы мы решили использовать какое-либо другое представление, кроме строк JSON для значений, нам нужен документ (правильная спецификация для NGSIv1 JSON!), Определяющая, какие типы могут быть представлены как число JSON.

+0

Хорошо, давайте посмотрим, если @fgalan может предоставить полный документ ngsi v1 или комментарий, если orion не интерпретирует поле типа в условиях. Спасибо за ответ –

+1

Насколько я знаю, нет никакого «формального» документа JSION NGSIv1. Тем не менее, руководство по использованию Orion API (https://fiware-orion.readthedocs.io/en/develop/user/walkthrough_apiv1/index.html) и связанные с ним документы в руководстве пользователя Orion можно использовать в качестве «неофициального» руководства. Однако, отметив это, отметим, что по ограничениям парсера NGSIv1, используемого Orion, числа интерпретируются как строки, поэтому, даже если Cepheus отправляет '5' в качестве значения атрибута с использованием NGSIv1, Orion будет интерпретировать его как« 5 »(см. https://fiware-orion.readthedocs.io/en/develop/user/v1_v2_coexistence/index.html#native-json-types). – fgalan

+1

Нижняя линия: Я бы предложил решить проблему в области NGSIv2, то есть реализовать NGSIv2 в Цефее. Это имело бы два очевидных преимущества: 1) анализатор Orion для NGSIv2 не имеет такого ограничения; 2) это формальный документ, описывающий форматы JSON NGSIv2 (в частности, этот: http://fiware.github.io/specifications/ngsiv2/stable /) – fgalan

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