TCPサービスゲートウェイアクセス機器を使用して
この文書では、使用してパケット送信者のツールをシミュレートし、TCPクライアントアクセスプラットフォーム。
プロトコルの作成
参照してください契約を作成します
デバイスモデルの作成
- 選択
设备管理
- >设备型号
- >クリック新建
ボタンを。
- [アクション]列で、クリック
查看
をクリックし、関数定義を選択するために、添加
プロパティとイベントを追加するボタンを。
私は。プロパティ定義
II。イベントの定義 - [アクション]列でをクリックして
发布
新しいモデルをリリース、ボタンを押します。
デバイスインスタンスを作成します。
- 選択
设备管理
- >设备实例
- >クリック新建
ボタンを。
- [アクション]列でをクリックして
激活
新しい機器のインスタンスをアクティブにするボタン。
TCPネットワークコンポーネントの作成
- 選択
网络组件
- >组件管理
- >クリック新增组件
ボタンを。
注:このドキュメントでは、スクリプトがメッセージを解析し、カスタマイズするためのJavaScriptの方法を使用しています。
カスタムスクリプト:
var BytesUtils = org.jetlinks.core.utils.BytesUtils;
parser.fixed(5) //1. 固定5字节为报文头,0字节为类型,1-4字节为消息长度(低字节位在前).
.handler(function(buffer){
var len = BytesUtils.leToInt(buffer.getBytes(),1,4);//2. 获取消息长度.
parser
.fixed(len)//3. 设置下一个包要读取固定长度的数据.
.result(buffer); //4. 设置当前解析的结果
})
.handler(function(buffer){
parser.result(buffer) //5. 收到了新的包,则为消息体,设置到结果中,完成后将与步骤4的数据合并为完整的数据包.
.complete(); //6. 完成解析(消息将进入协议中进行解析(DemoTcpMessageCodec)),重置解析器,下一个数据包将从步骤1开始解析.
});
- 作成したモジュールをクリックして
启动
ボタンを押します。
TCPゲートウェイサービス機器を作成します
- 選択
网络组件
- >设备网关
- >クリック新建
ボタンを。
注:ゲートウェイとMQTTサービスデバイスが異なるデバイスは、対応するメッセージによって同定することができないので、クライアントは、プロトコル・メッセージを指定しなければならない(。メッセージを復号化の文脈で特定することができない
MessageDecodeContext
)オペレータインタフェースデバイスを得るためには、(DeviceOperator
)ここで使用されます。演示协议v1
。
- [アクション]列で、をクリックして
启动
ゲートウェイを起動するボタン。
# TCPツールへのアクセスを使用して
- ダウンロードしてインストールし、パケット送信者を。
注:バイナリデータのTCPプロトコルパケット送信、ツールの使用本明細書にパケット送信元最初のメッセージは16進数に変換し、その後、自動的にインターネットに送信されたツールでバイナリに変換し送信します。
- 必要な16進文字列を作成します。
私は検出プロトコルコードを
DemoTcpMessageTestデバイス認証所望進ストリング内II org.jetlinks.demo.protocol.tcpテスト実行テストパケット生成方法。
コードは以下の通りであります:
@Test
void test() {
DemoTcpMessage message = DemoTcpMessage.of(MessageType.AUTH_REQ, AuthRequest.of(1000, "admin"));
byte[] data = message.toBytes();
System.out.println(Hex.encodeHexString(data));
DemoTcpMessage decode = DemoTcpMessage.of(data);
System.out.println(decode);
Assertions.assertEquals(message.getType(), decode.getType());
Assertions.assertArrayEquals(message.getData().toBytes(), decode.getData().toBytes());
}
結果:000d000000e80300000000000061646d696e
注:デバイス用AuthRequest.of(デバイスID、鍵)デバイス・モデルの第1のパラメータID、TCP第二認証構成パラメータ。
。テストクラスで必要に応じてIIIは、16進文字列コード生成イベント報告を行います。
@Test
void encodeEvent() {
DemoTcpMessage demoTcpMessage = DemoTcpMessage.of(MessageType.FIRE_ALARM,
FireAlarm.builder()
.point(ThreadLocalRandom.current().nextInt())
.lat(36.5F)
.lnt(122.3F)
.deviceId(1000)
.build());
byte[] data = demoTcpMessage.toBytes();
System.out.println(demoTcpMessage);
System.out.println(Hex.encodeHexString(data));
}
結果:0614000000e8030000000000009a99f4420000124222b7c94c
-
パラメータの設定
私。の情報提供
パラメータ 説明 名前 カスタム名を入力してください。 ASCII ASCIIコードが自動的に進文字列の下に入った後に生成されます。 HEX 六角。 住所 TCPサービスのアドレス。 港 TCPサービスポート。 永続的なTCP 接続を確認後より長く維持することができます。 注:パラメータを設定すると、前後のパラメータ値またはパラメータ値は全くスペースでないことを確認してください。
モードは、TCPを選択します。
オンライン・パラメータとイベント報告パラメータを保存しました。
オンラインの機器:
イベント・レポート: -
シミュレーションデバイスオフライン
packetsenderツールをクリックしてSend
要求を開始ボタンを押します。
それが成功に接続されているライン上のプラットフォームへの装置状態
デバイスでは、ロギングモジュールは、ライン上のデバイスを記録します見ることができます
チェックPersistent TCP
packetsenderは、接続要求が成功した後に新しいページを開きます。
あなたが接続されたデバイスのプラットフォームを切断することができ、新たなページを閉じます
プラットフォームは、成功へのオフラインデバイス切断状態であります
デバイスでは、デバイスログオフモジュールのログを見ることができます
-
アナログ・デバイセズは、イベントをレポート
私。ステップ4で保存された手順3.を選択して、デバイスが成功した新ライン接続のページイベントの報告パラメータの後に開かれます。
II。報告成功したら、ページを表示することができます。
III。イベントは、デバイスのログをレポート