如何解决在C中使用类似于字符串的命令
我正在尝试使用短信,将Arduino作为命令发送。 SMS消息是一个字符串,我把前面的部分切掉,想要像其他任何普通命令一样执行称为命令的新字符串。
if(message.indexOf("!C!") != -1 && message.indexOf("Change Var") != -1)
{
command = message.substring(message.indexOf("Change Var") + 11);
Serial.println(command);
command;
}
例如,当我发送短信时:
!C!更改Var Serial.println(“让我们看看会发生什么”)
仅将Serial.println(“让我们看看会发生什么”)打印到命令中。然后,我想执行该称为命令的字符串,以便查看发生在调试日志中的内容。我希望它会像您在上面看到的一样容易,但遗憾的是它不起作用。
是否可以将String作为命令执行?
解决方法
在C语言中执行类似操作的唯一解决方案是自己解析脚本命令。
在这种情况下,应首先将操作(打印)与值分开(“让我们看看会发生什么”)。然后,您可以拥有一系列功能来处理受支持的操作,并向其分配主要功能,例如在switch语句中:
enum ScriptActions {
PrintAction = 1,//other actions
}
switch(action) {
case PrintAction: puts(strValue); break;
//other actions
default: printf("This action is not supported\n");
}
解析部分产生action
和strValue
(可能还有其他类型的值)应该在该步骤之前完成,并且应该包含严格的错误处理,以避免某些操作被调用参数错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。