|
STX = 02h Command Code = "01" Data = "1234" ETX = 03h BCC = ??
위와 같이 설명되어 있다면
프로토콜 커맨드프레임의 첫바이트는 헥사값 02h 이고 커맨드코드는 아스키값 '0' 이랑 '1',
데이터도 마찬가지로 아스키형태군요...
마지막으로 ETX 헥사값 03h 와 BCC
따라서 실제 시리얼로 나가는 데이터는
02h 30h 31h 31h 32h 33h 34h 03h ??
가 되겠군요
BCC는 뭐 따로 정해져 있는것이 아니기땜에 프로토콜 설명서에 어케 계산하는지 나와있을껍니다.
보통들 STX 부터 ETX 까지 모두 더해서 오버플로우는 버린 값들을 쓰더군요.
생각하자 님이 쓰신 글 :
: 안녕하세요~
: 제가 질문하는게 얼마나 기초적인지도 모르겠습니다.
: comport를 이용해서 마그네틱 카드 발급기를 제어 하는데
: spec에 나와있는 command code가 다음과 같습니다.
: STX Command Code(2byte) Data(n byte) ETX BCC
:
: Transmission Control Characters
: STX (02h)
: ETX (03h)
: ENQ (05h)
: ACK (06h)
: NAK (15h)
: DLE (10h)
:
: "03" 이 CARD Write라고 할때
:
: 여기서
: STX = 02h Command Code = "01" Data = "1234" ETX = 03h BCC = ?? <== 이게 따로 값이 있는지 궁금합니다.
: 그리고 이걸 합쳐서 보낼때
: 02h01123403h?? <== 이런식으로 보내야 하는지
: 02h"01""1234"03h?? <== 이런식으로 보내야 하는지
: "02h01123403h??" <== 이런식으로 보내야 하는지
: 도통 모르겠습니다.
:
: P.S
: com1, com2 같은 시리얼 포트도 스캔하는 프로그램이 있다고 하는데 뭔지 알고 계시나요? 알려주세요
|