作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用C语言为telosb编写一个命令接口(interface),规则是:“shift+:”开始新命令,“Esc”结束命令。那么我该如何区分“shift”和“:”的组合呢?非常感谢。
最佳答案
保持 MSP430 上的接口(interface)简单。您并不像在 PC 上那样拥有无限的资源。如果您希望使用字符组合来表示命令,则需要执行字符串比较(这比检查带有 if-else 结构的每个单独字符要容易得多)。我曾经使用以下类型的命令结构来开发这些接口(interface):
struct command
{
char *command;
char *params;
int numOfParams;
};
struct command commandList[] =
{
{ "help", null, 0 },
{ "reset", "%x", 1 }
};
然后我会让 UART 处理程序查找有效命令 - 带有有效分隔符(例如换行符)的命令。读取换行符后,您就可以开始解析命令并使用 commandList 条目验证它(通过 strcmp)。 commandList 包含命令、期望的参数类型(使用 sscanf 验证参数)以及期望的参数数量。
此过程也可以扩展为比较字节数组(在您的情况下使用特殊字符,例如十六进制的 ESC)。
我希望这可以帮助您入门。
关于c - 如何用C语言创建命令接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19144390/
我是一名优秀的程序员,十分优秀!