2016-01-05 47 views
4

我正在使用版本0.25.0的Orion上下文代理。Orion上下文代理 - 通過沒有元素的位置查詢

如果我只跟上下文實體加載上下文經紀人和我搜索實體進入特定區域,一切似乎都很好地工作:

(curl localhost:1026/v1/queryContext?limit=100 -s -S --header 'Content-Type: application/json' --header 'Accept: application/json' -d @- | python -mjson.tool) <<EOF 
{ 
    "entities":[ 
     { 
      "type":"Dispositivo_tmp", 
      "isPattern":"true", 
      "id":".*" 
     } 
    ], 
    "restriction": { 
     "scopes": [ 
      { 
       "type": "FIWARE::Location", 
       "value": { 
        "circle": { 
         "centerLatitude": "43.322361", 
         "centerLongitude": "-1.983222", 
         "radius": "1500" 
        } 
       } 
      } 
     ] 
    } 
} 
EOF 

我與位於進入該區域範圍內的實體的響應:

... 
{ 
      "contextElement": { 
       "attributes": [ 
        { 
         "metadatas": [ 
          { 
           "name": "location", 
           "type": "string", 
           "value": "WGS84" 
          } 
         ], 
         "name": "position", 
         "type": "coords", 
         "value": "43.3221, -1.9831" 
        }, 
        { 
         "name": "pressure", 
         "type": "integer", 
         "value": "1" 
        }, 
        { 
         "name": "temperature", 
         "type": "float", 
         "value": "25" 
        } 
       ], 
       "id": "CE_5.1", 
       "isPattern": "false", 
       "type": "Dispositivo_tmp" 
      }, 
      "statusCode": { 
       "code": "200", 
       "reasonPhrase": "OK" 
      } 
     } 
    ] 
} 

如果沒有元素融入定義的區域,我得到預期的響應:

{ 
    "errorCode": { 
     "code": "404", 
     "reasonPhrase": "No context element found" 
    } 
} 

如果我也使用上下文註冊加載上下文代理,則會出現問題。如果我有上下文經紀人都上下文實體和上下文登記和我檢查上下文實體爲我所知道的是空白的領域,我不會得到任何迴應,否則我將獲得這一個:

{ 
    "errorCode": { 
     "code": "200", 
     "reasonPhrase": "OK" 
    } 
} 

,似乎上下文代理中加載的上下文註冊量越大,從系統獲得(否定)響應的時間就越多。

在相同的情況下,如果我將上下文實體查找到包含元素的區域,則沒有問題。在這種情況下,我會得到正確的答覆。

對此有任何意義嗎?

感謝

+0

我知道「編輯」下的部分是問題的實際答案。因此,我建議將它剪切並粘貼到下面的正確答案(StackOverflow允許自我回答的問題)。謝謝! – fgalan

+0

此外,爲了清楚起見,請包含一個錯誤的URL和正確的一個示例。那太好了! – LeandroGuillen

回答

1

我已經看到,這種行爲是由於創建上下文註冊記憶的時候,我已經定義的URL。

該URL不正確。因此,當上下文代理嘗試使用提供的URL與設備聯繫時,它開始等待不會到達的答案。

我已經修改了網址,並使用了「accumulate-server.py」虛擬測試服務器,而不是:

http://localhost:1028/accumulate 

使用它,上下文經紀人得到一個inmediate響應,並繼續執行。

相關問題