|
|
|
String demuxCMD(String command, String* rightPart) {
|
|
|
|
|
|
|
|
// "::"를 기준으로 문자열을 분리
|
|
|
|
int separatorIndex = command.indexOf("::");
|
|
|
|
String leftPart = command.substring(0, separatorIndex);
|
|
|
|
*rightPart = command.substring(separatorIndex + 2);
|
|
|
|
|
|
|
|
leftPart.replace(" ", "");
|
|
|
|
return leftPart;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int demuxNum(String rightPart, unsigned int data[]) {
|
|
|
|
|
|
|
|
// 우측의 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++;
|
|
|
|
|
|
|
|
// 왼쪽 부분인 "ABC"을 반환
|
|
|
|
return index;
|
|
|
|
}
|