2016-06-21 15 views
0

APIモードでXBee Digimeshモジュールを使用して、異なる産業機械間でデータを送信し、データ、情報、コマンドを共有できるようにしています。XBee用通信プロトコルの開発

API-Modeは、主に対処する実行し、設定を行うためにのXBeeモジュール自体と話すなど、ユーザデータを送信する

が可能に対応するのXBee API-コマンドを介して行われるために、いくつかの基本的なコマンドを提供しています最大72バイトのペイロードを持つユーザー定義データを送信します。

より多くの機械などの統合を可能にするためにこの通信を拡大したいので、ちょうど72バイトの超小型ペイロードに完全に合わせた基本的な通信システムの実装方法を考えています。

ウェブからは、通常、ここで何らかのJSONを使用しますが、ペイロードは非常に速くなります。

また、たくさんの情報を含むフレームを送信することもできません。これは、ペイロードも非常に速くいっぱいになるからです。

私は別のコミュニケーション方法を思いつきました。代わりに情報を詰めたフレームを送信するのか、何このようなメッセージある種の送信について:

  • マシン-A放送:ありますか?
  • マシン-Bの回答:それは私が今の応答を評価し、で動作することを決定XXX-マシン

-マシンだ私です:それは、私はXXX-マシンに

  • マシン-Cの回答をしています私ですマシン-B(マシン-Cは、インターフェイスとして一致しないため):Bへ

    • マシン-A:こんにちはBは、私にいくつかの価値を与える、してください!
    • マシン-B:そこに行く:これは別の短いメッセージに拡張することができます2.349590

    。各メッセージの後、送信者は状態のメッセージのタイプを保持し、応答は状態/コンテキストに関連して評価される。

    私が避けようとしたのは、すべてのイベントをビットベースのフラグとして定義するビットベースのプロトコル(MIDIなど)を定義することでした。将来どのタイプのハードウェアが追加されるのではないので、私は非常に柔軟性があり、コーディネーターやメッセージブローカーなどを必要としない通信プロトコルが必要です。

    しかし、これは初めて考えているので通信プロトコルについて軽いペイロードで複雑な通信を処理できる既存のフレームワークがあるかどうか不思議です。

  • 答えて

    0

    一般的なコマンドを中心にZigBee Cluster Libraryの仕様を読んでください。それは、属性の発見と検索のシステムを記述します。各属性は、16ビットのIDと、そのサイズを決定するデータ型(さまざまなサイズ、列挙型、ビットマップの整数)を持っています。

    これは、802.15.4ネットワークの小さなペイロード用に設計されたプロトコルであり、そのプロトコルのサブセットからプロトコルを削除する可能性があります。他のZigBee仕様は、特定の16ビットクラスタIDに対して定義された属性(およびコマンド)の単なるリストです。

    マスターデバイスは、検出プロセスを経て属性IDのリストを取得し、複数のIDの値をワンショットで取得する要求を送信できます。レスポンスは、16ビットのID、8ビットのアトリビュートタイプ、可変長データで密接にパックされます。あなたのマスターデバイスがそのIDが何に対応しているのか分からなくても、知っている他のシステム(ウェブサーバーのような)にデータを渡すことができます。

    関連する問題