홈네트워크 관련 표준에 따르면 구성 기기간의 RS-485 통신에서 뒤에서 두 번째 HEX 값은 이전 값들을 순차적으로 XOR연산한 값을 나타낸다.
::: TTA표준화 위원회 :::
홈 > 자료마당 > 자료검색 > 표준 표준종류 정보통신단체표준(TTAS) 표준번호 [폐지] TTAK.KO-04.0083 구 표준번호 제개정일 2008-12-19 총 페이지 16 한글 표준명 댁내 제어기기 연동을 위한 홈네트워크 월
committee.tta.or.kr
라즈베리파이를 이용해 이를 자동화하려는 과정에서 테스트 목적으로 HEX 값을 순차적으로 XOR연산하는 프로그램을 작성하게 되어 공유한다.
각 항을 HEX로 띄어쓰기를 통해 구분하여 입력하면 연산을 수행한다.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char *hex_string = NULL;
char *token;
size_t buffer_size = 0;
unsigned char xor_result = 0;
printf("Enter space-separated hex values : ");
getline(&hex_string, &buffer_size, stdin);
token = strtok(hex_string, " ");
while (token != NULL) {
unsigned char hex_value = (unsigned char)strtol(token, NULL, 16);
xor_result ^= hex_value;
token = strtok(NULL, " ");
}
printf("Result : %02X\n", xor_result);
free(hex_string);
return 0;
}
/*
입력 예시 : F7 0B 01 18 02 45 12 1F 00
Result : AF
*/
댓글