2016-06-29 6 views
1

나는 오리온의 조건을 만족하지 않았다하지만이 특별한 값에 따옴표를 제거하여 해결되었다는 문제가 Why this orion subscription don't works as I want?왜 cepheus는 orion에 따옴표없이 int를 보내지 않습니까? 이 질문에

새로운 문제는 내가 mFlag의 INT를 계산 CEP와 이벤트를 처리 할 때 그것은 orion 엔티티로 보내지지만 orion 엔티티는 변경되었지만 통지가 트리거되지 않으므로 따옴표 (이전에 게시 된 관련 질문에서 설명한 것과 동일한 문제점)와 함께 전송됩니다.

세페 우스의 CEP의 설정 아웃이 같은 수 있습니다 :

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

은 세페 우스의 CEP의이 문제인가, 아니면 그것이 오리온 버그 조건의 속성 유형을 해석되지 않는 이유는 무엇입니까?

답변

2

Cepheus와 Orion 사이의 NGSIv1 프로토콜 구현에서 비 호환성 문제가 발생한 것으로 보입니다.

NGSIv1은 XML 형식 (OMA 표준)으로 잘 정의되어 있지만 JSON 버전에는 잘 정의되어 있지 않습니다. Cepheus 팀은 JSON 구현을 NGSIv1의 JSON 형식 인 API Walkthough of the Orion documentation을 정의하는 유일한 기존 문서 중 하나를 기반으로합니다.

이 문서에서는 모든 값이 stantard의 XML 형식과 같이 문자열로 교환됩니다. 따라서 Cepheus는 값의 유형에 관계없이 문자열을 사용합니다.

값에 JSON 문자열 이외의 다른 표현을 사용하려면 JSON 번호로 표현할 수있는 유형을 정의하는 문서 (NGSIv1 JSON에 대한 적절한 사양)가 필요합니다.

+0

orion이 조건의 유형 필드를 해석하지 않는 경우 @fgalan이 전체 ngsi v1 문서 또는 주석을 제공 할 수 있는지 확인하십시오. 답변을 주셔서 감사합니다 –

+1

내가 아는 한 "공식적인"NGSIv1 JSON 문서가 없습니다. 그러나 Orion API 설명서 (https://fiware-orion.readthedocs.io/en/develop/user/walkthrough_apiv1/index.html)와 Orion 사용자 설명서의 관련 문서는 "비공식"안내서로 사용할 수 있습니다. 그러나 Orion이 사용하는 NGSIv1 파서의 한계로 인해 숫자가 문자열로 해석되므로 Cepheus가 NGSIv1을 사용하여 속성 값으로 '5'를 전송하더라도 오리온은이를 '5'로 해석합니다 (참조 https://fiware-orion.readthedocs.io/en/develop/user/v1_v2_coexistence/index.html#native-json-types). – fgalan

+1

결론 : NGSIv2의 범위에서 문제를 해결할 것을 제안합니다. 즉, Cepheus에서 NGSIv2를 구현하는 것이 좋습니다. 여기에는 두 가지 명확한 장점이 있습니다. 1) NGSIv2 용 Orion 파서에는 이러한 제한이 없습니다. 2) NGSIv2 JSON 형식을 설명하는 공식 문서입니다 (특히이 문서는 http://fiware.github.io/specifications/ngsiv2/stable /) – fgalan