String demuxCMD(String command, unsigned int data[], int* dataSize) { command.replace(" ", ""); // "::"를 기준으로 문자열을 분리 int separatorIndex = command.indexOf("::"); String leftPart = command.substring(0, separatorIndex); String rightPart = command.substring(separatorIndex + 2); // 우측의 16진수 배열을 분리하여 추출 const char* delimiter = ","; int startIndex = 0; int endIndex = rightPart.indexOf(delimiter); int index = 0; while (endIndex >= 0) { String hexValue = rightPart.substring(startIndex, endIndex); // 16진수 문자열을 16진수 숫자로 변환하여 data 배열에 저장 data[index] = strtoul(hexValue.c_str(), NULL, 16); index++; startIndex = endIndex + 1; endIndex = rightPart.indexOf(delimiter, startIndex); } // 남은 마지막 16진수 배열 원소 처리 String hexValue = rightPart.substring(startIndex); data[index] = strtoul(hexValue.c_str(), NULL, 16); index++; // dataSize에 배열 크기 저장 *dataSize = index; // 왼쪽 부분인 "ABC"을 반환 return leftPart; }