我正在使用Arduino中的套接字通信,我需要try/catch块来正确处理,你们有什么建议吗?我在网上搜索没有成功。
编辑:
我正在使用的代码使用WiFly模块与移动应用程序进行交互,我正在构建一个机器人模块,并使用安卓系统对移动应用程序进行一些控制。一切都很好,但有时套接字会断开连接,所以我需要为这种情况添加处理,类似于try/catch块,但我没有为Arduino找到类似的块。
我的代码:
void loop() {
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
// Serial.print("client connected \n");
char c = client.read();
if(c == 'L')
turnLeft();
if(c == 'R')
turnRight();
if(c == 'F')
goForward();
if(c == 'B')
goBackward();
if(c == 'S')
Stop();
Serial.print(c);
}
}
// give the web browser time to receive the data
delay(100);
client.stop();
}
}发布于 2012-04-19 21:45:20
未列出try catch的Arduino reference is (有关原因的详细信息,例如,请参阅此related answer)。我假设,在µ控制器上实现try catch可能有点困难/不可能。
在大多数语言中,Try catch是一个非常昂贵的操作:对于try块和每个catch块,程序堆栈都会被复制一次。如果try出错,try-block堆栈将被丢弃,catch块堆栈之一将被执行。
我不是cpu架构的专家,但我可以想象,这需要大量的内存交换和类似的操作-使用简单的µ控制器应该很难实现。
也许值得看看C-Programmers do patterns similar to try/catch是如何
https://stackoverflow.com/questions/10228562
复制相似问题