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;
}
