2016-06-29 1 views
1

私はオリオンの条件が満たされなかったが、それは特別な値に引用符を削除することで解決したという問題があるWhy this orion subscription don't works as I want?なぜcepheusは、引用符なしでintをorionに送信しないのですか?この質問に

新たな問題があること、私は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を定義する唯一の既存のドキュメントの1つに基づいています。

このドキュメントでは、すべての値が(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ユーザーマニュアルの関連ドキュメントは、「非公式」ガイドとして使用できます。しかし、オリオンが使用している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を実装することをお勧めします。これには2つの明確な利点があります:1)NGSIv2用のOrionパーサーにはこのような制限がありません.2)NGSIv2 JSON形式を記述した正式な文書です(特にこれはhttp://fiware.github.io/specificationsです)。/ngsiv2/stable /) – fgalan

関連する問題