Juma TX136 5 重写控制软件

日期:2025-06-02

过去的软件按照现在的眼光看很幼稚且很原始。一个是GUI和串口高度绑定,另一个是没有多线程的操作,导致软件等待读取指令时会周期性卡顿一下。
计划重写的新软件会按照一定的逻辑来慢慢重写,界面也会优化一些。

日期:2025-06-07

目前的软件进度如图。

GUI界面使用ttkbootstrap, 一种基于python自带的tkinter的美化库,带有很多有意思的小组件。

控制功能已经做的差不多了,正在慢慢优化和debug。

相比原本的程序,现在主线程、串口接收、串口发送都有各自的线程,接收和发送根据波特率来自适应轮询避免占用过多资源。

GUI绘制用ttk里的StringVar来刷新,命令存储时定义了类似这样的字典

1
2
3
4
5
"command": "A",
"name": "pre_amplifier",
"value": None,
"value_type": "str",
"value_mapping": {0: "OFF", 1: "10 dB", 2: "20 dB"}

内部读取、写入、接收与发送命令操作都使用name字段来操作,刷新不在GUI层,而是在命令读取到时直接在data_access里更新。预先根据需要的值定义了StringVar、IntVar和DoubleVar,刷新GUI时省劲,但是读取值要绕一下,想不到更好的办法了。

今天做的:

加入子窗口的存在性检查,如果子窗口已经存在则前置该窗口。

解决终端模式的一点问题(奇怪,为什么以前用text的icursor方法能跑通不报错,今天翻看源码发现ttk.Text没有icursor方法,看来以后还是少用try-exception)


日期:2025-06-09

今天做的:

写好了本地参数存储功能


未来期望:

FSK模式加入更多的FFT频率估算算法

写好参数本地存储功能

界面优化微调

修复bug


Juma TX136 5 重写控制软件
http://naturewind846.github.io/2025/tx136-6/
作者
naturewind846
发布于
2025年6月2日
更新于
2025年6月9日
许可协议