本工具用于直接查看正点原子 ATK-Logic 导出的逻辑分析仪数据,不进入 IAR,不需要先转换成 CSV 再用 Excel 查看。
当前主图不是高低电平图,而是:
100 ms,在图上画竖线、圆点并标出该节点后的最近完整周期频率。双击:
PythonTest\start_logic_csv_parser.bat
不需要打开 IAR,也不需要编译 PLC 工程。
界面操作:
.csv 或 .bin;自动、4、0,1,4 或 0-7;100 或 100,200,500;logic_waveform.py解析和计算核心:
load_csv_waveform():读取 CSV 元数据、时间列和通道跳变;load_bin_waveform():读取无文件头的原始 BIN;load_waveform():根据扩展名选择 CSV 或 BIN;WaveformChannel:保存一个数字通道的跳变时间和电平;FrequencyCurve:保存频率曲线时间点和频率值;build_frequency_curve():按边沿计算瞬时频率;build_frequency_curves():批量生成通道曲线;parse_marker_times_ms():解析关键时间输入。parse_logic_gui.pyTkinter 图形界面:
parse_logic_csv.py原来的 CSV 通用解析和 CSV 输出命令行工具仍然保留,GUI 当前不把保存 CSV 作为主流程。
test_logic_waveform.py波形解析测试,覆盖:
原始 CSV/BIN 中保存的是数字电平,不是频率。程序按以下方式换算:
频率 = 1 / 相邻同方向边沿的时间差
注意事项:
times[0] 是文件初始电平状态,不作为真实边沿;0 ms 是第一个有效脉冲边沿,不是 CSV 文件的系统时间起点。测试目录:
D:\xinjiedianqi\Study\TrainCamp_zengbingjie_PLSR\测试脉冲数据
DL16.csvChannel 4 有脉冲变化;100 ms 节点最近测量时间约 100.094 ms;361.984 Hz;500 Hz。zxjs.bin在项目根目录执行:
python -m unittest discover -s PythonTest -p "test_*.py"
python -m py_compile PythonTest\logic_waveform.py PythonTest\parse_logic_gui.py
当前最后一次验证结果:
Ran 24 tests
OK
双击启动文件也已验证能够创建 pythonw.exe 图形进程。
后续如果继续完善,优先考虑:
Hz/s 显示;git reset --hard 或整体回退。