WIZnet Developer Forum

[wizfi360] 바이너리(16진) 데이터 전송 하기.

문서자료를 보니, 데이터 전송이 ASC코드로만 되어 있는데, ASC말고 바이너리(16진) 데이터를 보내는 방법은 없나요?

안녕하세요.

binary, hex 모두 가능합니다. 다만, binary or hex로 data 전송하는 기능을 따로 구현 하셔야 합니다.

아래 예제는 MQTT통신 binary Data전송한 테스트 사진 입니다.

Wireshark로 수신Data 확인 결과 입니다.

감사합니다.

답변 감사합니다만…

위의 예제는 HEX(또는 바이너리)데이터 버퍼를 parser->send라는 메소드를 사용하여 전송하고 있는데, 답변자의 환경과 라이브러리상에서 데이터를 파싱하는 함수 예제만으로는 다른 환경 사용자는 이 정보만으론 구현을 할 수가 없습니다.

현재 MCU 환경에 네이티브 코딩으로 구현하고 있는데, 사용자에게 제공되는 개발 메뉴얼에 나온 AT 전송 커맨드((CIPSENDBUF, CIPSEND등등…)에는 오직 ASC코드와 , 등으로만 데이터를 전송하는 방법이외에는 다른 방안이 없습니다.

부디 다른 사용자들도 HEX(또는 바이너리)포멧의 데이터를 전송할 수 있는 자료를 제공해 주시길 부탁드립니다.

안녕하세요.

질문해주신 내용 중
개발 메뉴얼에 나온 AT 전송 커맨드((CIPSENDBUF, CIPSEND등등…)에는 오직 ASC코드와 , 등으로만 데이터를 전송하는 방법 이외에는 다른 방안이 없습니다.

이 내용이 AT+CIPSEND=12 명령어 입력 후 data 전송 ex:HELLOWORLD\r\n 이런 방식으로 밖에 전송을 못한다고 말씀 하시는 건가요?

Hercules 프로그램 사용해서 아래와 같이 테스트 진행 했습니다. 참고 하시기 바라겠습니다.

  1. PC에서 TCP Server를 오픈합니다.
    image

  2. 두번째 Hercules프로그램을 열어 Serial 연결을 하신뒤, TCP Client를 구현하는 AT Command를 입력 합니다. (AT+CWMODE_CUR=1, AT+CWDHCP_CUR=1,1 등) 각각의 명령어 뒤에는 CR, LF hex값인 $0d$0a를 입력해주셔야 합니다.

  3. TCP Server로 보낼 data length를 입력 AT+CIPSEND=7 한 뒤, Send 버튼을 눌러 data를 전송 합니다.
    image

  4. 결과 화면 입니다. 마지막 메시지 또한 HEX 체크 박스를 체크하고 send를 눌러도 같은 결과가 나오는걸 확인 했습니다.
    image

이상입니다.

질문
바이너리(16진) 데이터 전송 하려면…

답변
(1) AT+CIPSEND=length 전송
(2) hex형식의 바이트 단위로 데이터를 파싱, length만큼 전송하면 CR+LF같이 마감자 없이 인식함.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.