通过 LAN 向嵌入式设备发送自定义命令:字符还是整数?

Sending custom commands to embedded device over LAN: characters or ints?

我正在开发能够从 PC 应用程序接收命令的固件,并计划使用字符来执行此操作,但是在 header 中定义它们时,我不小心将 ' 而不是 " 这使得它定义了一个 int。这让我开始思考两者之间的区别。如果我要使用 int,我将能够更快地比较命令,而不是在我的命令中循环遍历多个字符。但是,我不确定是否还有其他问题可能 运行。我也在状态机中工作,并且会有一个或多个 switch 语句。

通过网络发送和接收时,int 和 character 有什么区别?

示例命令:#define POWER_OFF "PWROFF"

编辑:如果有帮助,请使用 GCC ARM 编译器。我还期望有超过 60 个命令。我将能够操纵输出和切换模式。

这在很大程度上取决于您的嵌入式设备的 CPU 以及消息交换的频率。因为您使用的是 LAN(而不是 RS232 或 TTL),所以不考虑带宽。为了获得更好的代码可读性和更容易维护以及更容易测试嵌入式设备的能力,最好将消息协议设计为 ASCII 模式(字符)而不是二进制模式(数字和 byte-commands),除非你有频繁的迭代命令发送到处理能力低的 CPU。另一种合适的方法是使用 ASCII 作为命令标题,使用二进制作为操作数和参数(如果有的话)。