嵌入式系统的外设日志记录着串口发给主机的报文信息,报文内容是16进制,监控状态和问题的时候往往需要人去对照协议或者记住16进制报文的含义,所以写了这个脚本来翻译日志,让其更为直观易读。
协议对照文本
将报文协议写在一个ini文件内,便于查找翻译,根据协议特点按行写、按字节写、甚至按不同的位写。比如:
[PROTOCOL]
[Modes status]
[gate configuration]0,0=| Entry End |=END
[gate configuration]0,1=| Exit End |=END
[gate configuration]1,0=| Reversible |=END
[gate mode]0,0,0=| Out of service |=END
[gate mode]0,0,1=| Entry mode|=END
[gate mode]0,1,0=| Exit mode|=END
[gate mode]0,1,1=| Free Exit mode|=END
[gate mode]1,0,0=| Bi-directional mode|=END
[gate mode]1,0,1=| Fully free mode|=END
[gate mode]1,1,0=| Maintenance mode|=END
[gate mode]1,1,1=| Emergency mode|=END
[aisle mode]0=| Normally closed |=END
[aisle mode]1=| Normally opened |=END
[NormalByte]
[General status]:bits=0 2 4 6 7=END
[General status]:bit0_0=\033[1;35m | Flap OK |\033[0m =END
[General status]:bit0_1=\033[1;31m**Flap failure**\033[0m =END
[General status]:bit2_0=\033[1;35m | Repair Door Closed |\033[0m =END
[General status]:bit2_1=\033[1;31m**Repair Door Opened**\033[0m=END
[General status]:bit4_0=\033[1;35m | No Passage Cancellation |\033[0m =END
[General status]:bit4_1=\033[1;31m**Cancellation on Time-out**\033[0m=END
[General status]:bit6_0=\033[1;35m | No Emergency |\033[0m =END
[General status]:bit6_1=\033[1;31m**Emergency Mode**\033[0m=END
[General status]:bit7_0=\033[1;31m| LCM Not Configured |\033[0m =END
[General status