Embedded 在设备和PC之间交换日志和命令的标准协议?

Embedded 在设备和PC之间交换日志和命令的标准协议?,embedded,protocols,Embedded,Protocols,问题是:我有一个嵌入式设备,它使用串行或USB发送日志和接受命令。目前,它只是以文本形式打印到日志中,并有一个简单的CLI,可以在其中键入命令 我想更改它,因此数据以二进制形式发送/接收。是否有任何标准协议用于发送日志/命令/其他类型的数据?我没有发现任何合适的,也没有发现任何合适的,但我想在发明轮子之前确定一下;) 编辑好的,我编辑了这个问题,因为数据是二进制的这一事实与此无关 到目前为止,我发现的最接近的是。是为一个小型8位微控制器设计的,该微控制器的RAM有限,可以通过标准串行链路与另一个

问题是:我有一个嵌入式设备,它使用串行或USB发送日志和接受命令。目前,它只是以文本形式打印到日志中,并有一个简单的CLI,可以在其中键入命令

我想更改它,因此数据以二进制形式发送/接收。是否有任何标准协议用于发送日志/命令/其他类型的数据?我没有发现任何合适的,也没有发现任何合适的,但我想在发明轮子之前确定一下;)

编辑好的,我编辑了这个问题,因为数据是二进制的这一事实与此无关

到目前为止,我发现的最接近的是。

是为一个小型8位微控制器设计的,该微控制器的RAM有限,可以通过标准串行链路与另一个设备进行通信。我在这里记录了一个运行在Arduino上的“hello world”程序,该程序使用FTDI串行到USB芯片与PC通话:


这是一个二进制协议,但有效负载为0-15字节。我使用MIN不仅可以携带二进制传感器数据,还可以在有效载荷字段中携带ASCII数据,并让PC将ASCII记录到文件中。

是什么阻止了您读取二进制数据?首先,确保您确实希望它是二进制的;这样做会增加一点复杂性,既因为您需要发明自己的框架方案(因为您不能再使用换行符或空格作为分隔符),也因为您不能很容易地将自己替换为一端,所以调试变得更加困难。你真的需要50%的节省吗?@ChrisStratton它不必是二进制的,但它应该足够灵活,可以携带任何类型的数据。例如,日志可以作为文本从设备发送到pc,但命令/响应代码可以作为二进制数据发送(因为两端的解析比较容易)。我正在考虑推出一个基于MessagePack的简单协议,但我想知道我是否遗漏了什么。你的问题不清楚。日志是由设备生成的,所以它只是一个字节流——您在这里看到的是什么协议?您还提到了命令。这些命令是用来控制日志记录的吗?过滤?选择日志缓冲区?然后我真的怀疑是否有一些标准,因为它在很大程度上依赖于系统的日志功能和需求。。。