반응형
요즘 자바기반에서 시리얼통신을 하는 경우가 많은데요. 이런 경우 CRC 또는 LRC 체크를 위해서 전송하는 전문(대부분 byte[] 를 전송합니다.)의 CRC, LRC 값을 생성하는 메소드를 만들어보았습니다.
기기마다 요구하는 부분이 조금씩 차이가 있으므로 참고하시고 기기에 맞는 LRC를 생성하는 코드는 직접 코딩하여 테스트이후 사용하시기 바랍니다.
/** * LRC값을 생성하는 메소드 * 파라메터로 전달되는 data 의 idx 0 에서 부터 * length - 2 의 idx 까지 byte 값을 exclusive or 연산으로 * LRC값을 구하고 length -1 의 index 에 해당 byte 값을 assign 한다. * * 인자로 전달된 byte[] data 는 value of reference 이므로 별도의 리턴값을 * 가지지 않는다. * * @param data */ private static void MakeLRC(byte[] data) { if (data == null || data.length == 0) { return; } byte LRC = data[0]; final int LENGTH = data.length; for (int i = 1; i < LENGTH - 1; i++) { LRC = (byte) (LRC ^ data[i]); } data[LENGTH - 1] = LRC; }
반응형