/* pcmain.c : PC에서 parser 테스트용 main * - 펌웨어에서는 이 파일 사용하지 않음 */ #include #include #include "parser.h" /* PC용 로그 함수 */ static void pc_log(const char *fmt, ...) { if (!g_log_enable) { return; } va_list ap; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); } /* PC용 바이너리 전송 함수 */ static void pc_tx_bin(const uint8_t *buf, uint16_t len) { uint16_t i; printf("[TX] "); for (i = 0; i < len; i++) { printf("%02X ", buf[i]); } printf("\n"); } int main(void) { /* 플랫폼 함수 설정 */ g_plat.log = pc_log; g_plat.tx_bin = pc_tx_bin; g_log_enable = true; /* 필요시 false로 전체 로그 끄기 */ /* 테스트 1: sta? (mode=1) */ { uint8_t buf[6] = { 's','s','n','?' }; /* value0=1 */ dr_cmd_parser(buf, 4); } /* 테스트 2: ssz? (Serial 12바이트) */ { const char *serial = "ABC123456789"; uint8_t buf[4 + 12]; uint8_t i; buf[0] = 's'; buf[1] = 's'; buf[2] = 'z'; buf[3] = '?'; for (i = 0; i < 12; i++) { buf[4 + i] = (uint8_t)serial[i]; } dr_cmd_parser(buf, 4 + 12); } return 0; }