2017-12-20 7 views
0

私は、シミュレートされたデバイスモデルを作成するためのgithub命令に従っており、遠隔測定で提出されたものの1つは10の整数の配列です。 "pm":[19,4,3,0,0,1,3,0,0,0]。このフィールドのタイプは何ですか?配列/リスト型が見つかりませんでした。デバイススキーマで呼び出されたテレメトリーの配列フィールドのタイプは何ですか?

githubの命令: https://github.com/Azure/device-simulation-dotnet/wiki/Device-Models#message-schema

答えて

2

は現在、arrayタイプはサポートされていません、しかし、あなたは、少なくとも2つの異なる方法でそれを達成することができます。

アレイのサイズが固定されている場合、 10、使用10フィールド:

"InitialState": { 
    "pm_01": 0, 
    "pm_02": 0, 
    "pm_03": 0, 
    "pm_04": 0, 
    "pm_05": 0, 
    "pm_06": 0, 
    "pm_07": 0, 
    "pm_08": 0, 
    "pm_09": 0, 
    "pm_10": 0 
} 

、アレイのサイズは変更することができるならば、

"MessageTemplate": "{ \"pm\": [${pm_01}, ${pm_02}, ${pm_03}, ${pm_04}, ${pm_05}, ${pm_06}, ${pm_07}, ${pm_08}, ${pm_09}, ${pm_10}] }" 

そうでない場合、デバイスモデルスクリプトに、例えば文字列(例えばpm_values)に値をマップします

モデル:

"InitialState": { 
    "pm_values": "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" 
} 

スクリプト:

function main(context, previousState) { 

    // ... restore state ... 

    // ... your logic here ... 
    var pm_values = [ 19, 4, 3, 0, 0, 1, 3, 0, 0, 0 ]; 

    // ... serialize pm values ... 
    state["pm_values"] = pm_values.toString(); 

    return state; 
} 

及び1つのだけのプレースホルダ使用して、メッセージテンプレートにそれを注入:

"MessageTemplate": "{ \"pm\": [${pm_values}] }" 
関連する問題