我想减少从Log字符串发送到UART的字节数。我们的想法是用索引号替换所有日志的静态字符串,Log模块只发送字符串索引号和参数。从那里,PC上的应用程序(通过UART连接)使用包含所有LOG字符串及其索引的文件将创建正确的字符串并打印它。
我该怎么做?
答案 0 :(得分:0)
您要做的是将日志字符串转换为标记。您必须创建一个将字符串/字符串部分转换为标记的字典,并且发送方和接收方必须具有此字典。发送字符串时,定义一个后跟一个标记的转义字符,并确保该转义码在普通日志字符串中不存在。
在发件人中,您必须先扫描字符串,然后再发送字典中的字符串部分,然后再发送转义码和令牌。字典中未找到的所有其他内容都会正常传输。
在接收方,你可以使用相同的字典解码它。
顺便说一句:这是(非常简单的)压缩器的工作方式。你也可以使用LZW压缩器算法,它可能有更好的结果(但确保不在每次传输后清除转换表!)。