안녕하세요!
타사 장비와 통신으로 연결하려고 하는데 여러가지 방법으로 계산을 해보아도
crc값이 맞지 않아서 도움을 구합니다.
장비에서 출력하는 데이터를 모니터링해보면 다음과 같습니다.
0xFC 0x08 0x00 0x00 0x02 0x05 0x34 0x9E 0xF6
여기서
Header : 0xFC
Data : 0x08 0x00 0x00 0x02 0x05
CRC-16 : 0x34 0x9E
Terminator : 0xF6
입니다.
상기 패킷과 일치하는 계산방법에 대하여 조언 구합니다.
감사합니다.
타사 장비와 통신으로 연결하려고 하는데 여러가지 방법으로 계산을 해보아도
crc값이 맞지 않아서 도움을 구합니다.
장비에서 출력하는 데이터를 모니터링해보면 다음과 같습니다.
0xFC 0x08 0x00 0x00 0x02 0x05 0x34 0x9E 0xF6
여기서
Header : 0xFC
Data : 0x08 0x00 0x00 0x02 0x05
CRC-16 : 0x34 0x9E
Terminator : 0xF6
입니다.
상기 패킷과 일치하는 계산방법에 대하여 조언 구합니다.
감사합니다.
CRC 계산법은 다양합니다. 그 중에서 CRC-16 안에서도
CRC-16-Fletcher
CRC-16-Adler-A, CRC-16-Adler-B,
CRC-16-CCITT
CRC-16-IBM
등.. 여러가지가 있습니다. 전부 다 결과값이 다르죠..
보통은 CRC-16 CCITT를 사용하지만,
우선은 상대업체가 정확히 무슨 방법을 사용하였는지를 파악하는게 우선인듯 싶습니다.
간혹? 상대업체가 코드상의 오류로 CRC가 안맞을 수 도 있거든요..
보통 약간 친한 업체라면 CRC 같은 시간만 낭비하는 디버깅을 줄이기위해
CRC정도는 그냥 한 소스를 공유하기도 합니다.
도움이 되셨길 바랍니다.