CRC16값을 쉽게 넣어봅시다.
-------------------------------------------------------------------------------------------
함수본체
void *를 인자를 받아서 CRC16값을 만들기 위함
((unsigned char *)DATA)로 형변환 해줌 (char *로 형변환, 배열의 이름은 어차피주소니까 char 배열과 같음 )
CRC_PRESET과 CRC_POLYNOM은 Char형 변수로 만들지 않고 #define으로 상수로변경
-------------------------------------------------------------------------------------------
숫자1을 누르면 DEVICE로 데이터가 ucHostComm의 데이터를 보내는데 CRC값을 자동으로 채워주자!
간단하게 정리하면 ucHostComm[0] + ucHostComm[0][0]-2 = CRC16( );
아래 배열의 주소 + 첫번째 값0x0D-2 == 원래 주소 +11이다.
이주소값을 다시 short *로 바꾸면 해결( CRC16함수의 반환값이 unsigned short형)
ucHostComm[0][0]이 명령어 전체길이를 알수있어서 가능한 방법
그러면 데이터 시트를 보자.
이명령어를 0~4번배열 까지만 써주면 CRC코드는 5~6번에는 자동바뀌어서 들어가게끔 해놨었다.
결론: 이명령어를 실행하고, 트랜스폰더(ID카드)를 리더기에 대면
호스트에 UID(고유식별자)및 정보가 온다.
------------------------------------------------------------------------
C++
나도 알아요.
RECENT COMMENT