TCP 서비스 게이트웨이 액세스 장비를 사용하여
이 문서는 사용하여 패킷 보낸 사람 도구 시뮬레이트 TCP 클라이언트 액세스 플랫폼.
프로토콜 만들기
을 참조하시기 바랍니다 계약을 작성
장치 모델 만들기
- 선택
设备管理
->设备型号
-> 클릭新建
버튼을.
- 작업 열에서 클릭
查看
클릭, 함수 정의를 선택添加
속성 및 이벤트를 추가하는 버튼을 누릅니다.
전. 속성을 정의
II. 이벤트 정의 - 작업 열에서 클릭
发布
새로운 모델을 출시, 단추입니다.
장치 인스턴스를 생성
- 선택
设备管理
->设备实例
-> 클릭新建
버튼을.
- 작업 열에서 클릭
激活
새로운 장비의 인스턴스를 활성화하기 위해 버튼을 누릅니다.
는 TCP 네트워크 구성 요소 만들기
- 선택
网络组件
->组件管理
-> 클릭新增组件
버튼을.
참고 :이 문서는 스크립트가 메시지를 구문 분석하고 사용자 정의하는 자바 스크립트 방법을 사용합니다.
사용자 정의 스크립트 :
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 진수 문자열을 작성합니다.
. 제가 검출 프로토콜 코드
II org.jetlinks.demo.protocol.tcp 테스트 실행 테스트 패킷 생성 방법 DemoTcpMessageTest 원하는 장치 인증 진수 문자열.
코드는 다음과 같은된다 :
@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 (의 DeviceID, 키)를 제 1 파라미터 ID, 디바이스 모델 TCP 2 인증 구성 파라미터.
. 테스트 클래스에 필요한 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 코드는 자동으로 16 진수 문자열의 바닥을 입력 한 후 생성됩니다. 마녀 진수. 주소 TCP 서비스 주소. 포트 TCP 서비스 포트. 영구 TCP 연결을 확인한 후 이상 유지 될 수있다. 참고 : 매개 변수를 설정하는 경우, 반드시 이전과 이후 매개 변수 값 또는 매개 변수 값에 공백이 없는지 확인합니다.
모드는 TCP를 선택합니다.
온라인 매개 변수 및 이벤트보고 매개 변수를 저장되었습니다.
온라인 장비 :
이벤트보고 : -
모의 장치 오프라인
packetsender 도구를 클릭 Send
버튼 동수 요청을.
이 성공에 연결되어있는 라인에 플랫폼에 장치 상태
장치에서는 로깅 모듈 라인에 장치를 기록 볼 수 있습니다
확인 Persistent TCP
packetsender는 연결 요청이 성공 된 후 새 페이지가 열립니다.
닫기 새로운 페이지는 연결된 장치 플랫폼을 분리 할 수 있습니다
플랫폼 성공의 오프라인 장치 연결이 끊긴 상태입니다
장치에서는 장치 해제 로깅 모듈 로그를 볼 수 있습니다
-
아나 로그 디바이스보고 이벤트
전. 4 단계에서 저장된 3 단계를 선택, 장치가 성공적으로 새로운 라인 연결 페이지 이벤트보고 매개 변수 다음에 열립니다.
II.보고 성공 후, 해당 페이지를 볼 수 있습니다.
III. 이벤트는 장치 로그를보고