アリクラウド物事.NETのコアクライアント| CZGL.AliIoTClient:報告6機器イベント

Documentsディレクトリ:


 

物事共通の定義、イベントレポート情報、アラーム、障害の3種類のアリ雲によると、イベントメッセージの通知デバイスがアップロードされ、それがタイムリーでなければなりません。

1)イベントを定義

アリクラウド物事コンソールを開き、製品を入力して、カスタム関数をクリックして、イベントを追加します。
イベントを追加

イベントパラメータを追加します。


方法2)アップロードイベント

CZGL.AliIoTClient、イベントをアップロードする4つの方法があります

public int Thing_Event_Post(string eventName, string content, [bool isToLower = True]) public int Thing_Event_Post(string eventName, string content, [bool isToLower = True], [System.Text.Encoding encoding = null]) public int Thing_Event_Post<TModel>(TModel model, string eventName, [bool isToLower = True]) public int Thing_Event_Post<TModel>(TModel model, string eventName, [bool isToLower = True], [System.Text.Encoding encoding = null]) 

eventNameの:イベントの名前、その識別子。
内容:ALINK JSONコンテンツisToLower:エンコーディングを小文字にするかどうか:カスタムALINK JSONエンコードのモデルをアップロード:モデルイベント

第一の方法は、手動で、その後、良いJSONを書く方法でアップロードする必要があります。第2の方法は、第1の方法に基づいて文字エンコーディングをカスタマイズすることができます。第三に、第四の着信モデルがうまくアップロードする前にCZGL.AliIoTClientによって処理されます。


3)イベントモデルを書きます

あなたが唯一のイベントをアップロードすることができ、イベントにはモデルやALINKのJSONに対応しています。
CZGL.AliIoTClientでイベントをアップロードするたびに、あなたは、このイベントの名前を設定する必要があります。

上記に定義されたネットワークによるとコンソールアリ雲イベント、プログラムモデル。
ALINKのJSONのプレビューを生成するには:

{
  "id": "123",
  "version": "1.0",
  "params": { "value": { "temperature":100.1 }, "time": 1524448722000 }, "method": "thing.event.cpuerror.post" } 

次のようにモデルに対応することは次のとおりです。

        public class Cpuerror
        {
            public Cpuerror() { @params = new Params(); } public string id { get { return DateTime.Now.Ticks.ToString(); } set { } } public string version { get { return "1.0"; } set { } } public Params @params { get; set; } public class Params { public Params() { value = new Value(); } public Value value { get; set; } public long time { get { return AliIoTClientJson.GetUnixTime(); } set { } } public class Value { public float temperature { get; set; } } } public string @method { get { return "thing.event.cpuerror.post"; } set { } } } 

複数の出力パラメータがある場合、イベントのイベントがの値で良い定義、クラスに対応しています。

{
...
    ...
                public class Value
                {
                    public float temperature { get; set; } /* *定义多个输出参数 */ } ... ... } 

イベントのレポート:

            Cpuerror cpuerror = new Cpuerror();
            cpuerror.@params.value.temperature = 100.1F;
            client.Thing_Event_Post<Cpuerror>(cpuerror, "cpuerror", false); 

4)フォールトトレランスは、イベントALINKのJSONアップロードすることができ  容错 、コードを書くときに私たちに利便性をもたらします。

たとえば、イベントをアップロードする上記のコードは、それを変更します。

   public class Cpuerror
        {
            public string name = "cpuerror"; public Cpuerror() { @params = new Params(); } public string id { get { return DateTime.Now.Ticks.ToString(); } set { } } public string version { get { return "1.0"; } set { } } public Params @params { get; set; } public class Params { public Params() { value = new Value(); } public Value value { get; set; } public long time { get { return AliIoTClientJson.GetUnixTime(); } set { } } public class Value { public float temperature { get; set; } } } public string @method { get { return $"thing.event.{name}.post"; } set { } } } 
            Cpuerror cpuerror = new Cpuerror();
            cpuerror.@params.value.temperature = 100.2F;
            client.Thing_Event_Post<Cpuerror>(cpuerror, cpuerror.name, false); 

メッセージIDのために不可欠であるなど、「より不可欠であることができる」、かかわらず、他の分野の例については、上記の例では、name属性を追加し、まで増やすことができ、およびアップロードの使用には影響しません。

イベントをアップロード


5)サプリメント

おすすめ

転載: www.cnblogs.com/whuanle/p/10994707.html