|
네, civilian 님 말씀이 맞다고 봅니다.
보통 시리얼 통신으로 장비에 값을 줄때 이런 방법으로 checksum을 붙여서 보냅니다.
저 같은 경우는 옛날에 모니터링 프로그램이 없었을 때 데이터 라인을 오실로스코프로
찍어가며 값을 찾기도 했었죠. 무식한 방법이지만...
얻고자 하면 얻게 될 것입니다.
civilian,안영제 님이 쓰신 글 :
: 카드 발급기마다 다른데.. 옛날 기억을 떠올려보면
:
: 전부 OR 또는 XOR 했던 것 같습니다. 현재 것은 XOR 한 것으로 보이네요
: STX를 제외하고 컴맨드 부터 ETX까지 xor해보세요.
:
: 30 xor 32 xor 30 xor 35 xor 32 xor 31 xor 30 xor 30 xor x35 xor ETX
:
: 계산기를 HEX, 모드로 놓고 한번 해보세요.
: 그런데... 어느 회사 제품인가요? 예전에 썼던 것과 명령 처리 절차가 거의 같은 듯...
:
: 생각하자 님이 쓰신 글 :
: : 안녕하세요~
: : 많은 도움 주셔서 다 됐다고 생각했는데.. 아니었습니다. -_-
: : 카드발급기 프로그램을 새로 만들어야 해서 만들고 있는데
: : 발급기 업체에서는 스펙이외에는 가지고 있는데 없다고 하네요
: : 그래서 제가 발급기 업체에서 테스트용 프로그램을 (물론 소스도 없답니다.--)
: : 가지고 Serial Monitor 라는 모니터링 프로그램을 돌려서 값을 알아 냈습니다.
: : 스펙에 있는 Command format 도 틀린게 있더군요
: : 기본 format
: : STX command Code(2byte) Data (n byte) ETX BCC
: : 입니다.
: : 근데 문제는 밑에 숫자가 제가 모니터링한 값입니다. 앞쪽 8자리가 제가 Write하고 싶은 값이고
: : 05212005 <= 이게 Write 하려는 입력값
: : 02 <= 이게 STX
: : 30 32 <= 이게 Write command code 입니다.
: : 30 35 32 31 32 30 30 35 <= 이게 Write 하려는 값
: : 03 <= 이게 ETX 입니다.
: : 근데 문제는 뒤에 붙는 한자리 hex값인데 뭔지 도저히 모르겠습니다.
: : 맨뒤에 숫자는 혹시 몰라서 제가 Write 하려는 값의 합입니다.
: : 영관성이 있는거 같기도 한데 중복되는 값들이 있어서 감을 못잡겠습니다.
: : 꼭 맨뒤에 있는 (write하려는 합값이 아닌) 값이 들어가야만 장비가 동작을 합니다.
: : 혹시 계산하는 법이나.. 알아내는 법칙같은게 있는지요...
: : TEST 프로그램도 뭔가 계산을 해서 붙여 줄텐데... 으... 궁금합니다.
: :
: : 05212005 02 30 32 30 35 32 31 32 30 30 35 03 00 15
: : 05212014 02 30 32 30 35 32 31 32 30 31 34 03 00 15
: :
: : 05212004 02 30 32 30 35 32 31 32 30 30 34 03 01 14
: : 05212015 02 30 32 30 35 32 31 32 30 31 35 03 01 16
: :
: : 05212007 02 30 32 30 35 32 31 32 30 30 37 03 02 17
: : 05212016 02 30 32 30 35 32 31 32 30 31 36 03 02 17
: : 05212025 02 30 32 30 35 32 31 32 30 32 35 03 02 17
: :
: : 05212006 02 30 32 30 35 32 31 32 30 30 36 03 03 16
: : 05212017 02 30 32 30 35 32 31 32 30 31 37 03 03 18
: : 05212024 02 30 32 30 35 32 31 32 30 32 34 03 03 16
: :
: : 05212010 02 30 32 30 35 32 31 32 30 31 30 03 04 11
: : 05212023 02 30 32 30 35 32 31 32 30 32 33 03 04 15
: : 05212032 02 30 32 30 35 32 31 32 30 33 32 03 04 15
: :
: : 05212011 02 30 32 30 35 32 31 32 30 31 31 03 05 12
: : 05212022 02 30 32 30 35 32 31 32 30 32 32 03 05 14
: :
: : 05212001 02 30 32 30 35 32 31 30 30 30 31 03 06 11
: : 05212003 02 30 32 30 35 32 31 32 30 30 33 03 06 13
: : 05212012 02 30 32 30 35 32 31 32 30 31 32 03 06 13
: : 05212021 02 30 32 30 35 32 31 32 30 32 31 03 06 13
: :
: : 05212002 02 30 32 30 35 32 31 32 30 30 32 03 07 12
: : 05212013 02 30 32 30 35 32 31 32 30 31 33 03 07 14
: : 05212020 02 30 32 30 35 32 31 32 30 32 30 03 07 12
: : 05212031 02 30 32 30 35 32 31 32 30 33 31 03 07 14
: :
: : 05212009 02 30 32 30 35 32 31 32 30 30 39 03 0C 19
: : 05212018 02 30 32 30 35 32 31 32 30 31 38 03 0C 19
: :
: : 05212008 02 30 32 30 35 32 31 32 30 30 38 03 0D 18
: : 05212019 02 30 32 30 35 32 31 32 30 31 39 03 0D 20
: :
: : 05212029 02 30 32 30 35 32 31 32 30 32 39 03 0E 21
: :
: : 05212028 02 30 32 30 35 32 31 32 30 32 38 03 0F 20
|