void loop() { distance = MTD(); // 超声波测距 // 串口返回超声波距离 // Serial.print(distance); // Serial.println("cm"); if(distance < 10) { carStop(); client.print("cm:" + String(distance)); } while (!client.connected()) // 若未连接到服务端,则客户端进行连接。 { if (!client.connect(host, tcpPort)) // 实际上这一步就在连接服务端,如果连接上,该函数返回true { Serial.println("连接中...."); delay(500); } } /******************接受数据************************/ // available()表示是否可以获取到数据 while (client.available()) { // while (client.available() > 0) // 串口收到字符数大于零。 // { // val += char(client.read()); // } val = client.readString(); carControl(val); } delay(1); } //优化这个方法 void carControl(String command) { Serial.println("app:" + command); if (command == "go") { carGo(); } else if (command == "retreat") { carRetreat(); } else if (command == "left") { carLeft(); } else if (command == "right") { carRight(); } else if (command == "stop") { carStop(); } } 优化代码,增加可读性。
时间: 2024-03-31 10:36:31 浏览: 90
mtd_pagetest.rar_Linux/Unix编程_Unix_Linux_
void loop() {
distance = MTD(); // 超声波测距
// 串口返回超声波距离
// Serial.print(distance);
// Serial.println("cm");
if (distance < 10) {
carStop();
client.print("cm:" + String(distance));
}
while (!client.connected()) { // 若未连接到服务端,则客户端进行连接。
if (!client.connect(host, tcpPort)) { // 实际上这一步就在连接服务端,如果连接上,该函数返回true
Serial.println("连接中....");
delay(500);
}
}
// 接收数据
while (client.available()) {
String command = client.readString();
carControl(command);
}
delay(1);
}
void carControl(String command) {
Serial.println("app:" + command);
if (command == "go") {
carGo();
} else if (command == "retreat") {
carRetreat();
} else if (command == "left") {
carLeft();
} else if (command == "right") {
carRight();
} else if (command == "stop") {
carStop();
}
}
注释清晰,代码更加简洁易读。
阅读全文