Я пишу проект ESP32, который получает пакет UDP и на его основе необходимо выполнить какое-то действие.Вот эти команды:
FON
FOFF
MSC <INT> <INT>
TC <INT>
Я получаю сообщение вроде этого:
void receiveUdpMessages(){
int udpMsgLength = Udp.parsePacket();
if(udpMsgLength != 0){
byte udpPacket[udpMsgLength+1];
IPAddress senderIp = Udp.remoteIP();
Udp.read(udpPacket, udpMsgLength);
udpPacket[udpMsgLength] = 0;
Udp.flush();
Serial.println("Received UDP Message from : " + String(senderIp[0]) + "." + String(senderIp[1]) + "." + String(senderIp[2])+ "."+ String(senderIp[3]));
processReceivedMessage((char *)udpPacket);
}
}
, и это метод processReceivedMessage:
void processReceivedMessage(char *message){
if(strncmp("FON",message,3)==0){
setParameters(ct, 100);
}else if(strncmp("FOFF",message,4)==0){
setParameters(ct, 0);
}else if(strncmp("MSC",message,3)==0){
}else if(strncmp("TC",message,2)==0){
}
}
Мой вопрос заключается в том, чтолучший способ разделить оба целых для параметризованных команд?Также, если вы заметили какую-либо проблему с приведенным выше кодом, пожалуйста, сообщите мне, что у меня еще не было возможности протестировать его.