初始化全局变量 已连接 = 假
初始化全局变量 接收缓冲 = ""
初始化全局变量 显示时间戳 = 真
// 屏幕初始化
当 Screen1.初始化 时
设置 串口1.波特率 = 9600
设置 计时器_接收.计时间隔 = 50 // 50ms轮询一次
设置 计时器_接收.启用计时 = 假
// 连接串口
当 按钮_连接.被点击 时
调用 串口1.初始化串口
如果 调用 串口1.打开串口 则
设置 全局变量 已连接 = 真
设置 按钮_连接.启用 = 假
设置 按钮_断开.启用 = 真
设置 标签_状态.文本 = "✅ 已连接"
设置 标签_状态.背景颜色 = 绿色
设置 计时器_接收.启用计时 = 真
否则
调用 对话框1.显示消息对话框(
"连接失败!\n请检查:\n1. OTG线是否插好\n2. 设备是否支持OTG",
"错误", "确定")
// 断开串口
当 按钮_断开.被点击 时
调用 串口1.关闭串口
设置 全局变量 已连接 = 假
设置 按钮_连接.启用 = 真
设置 按钮_断开.启用 = 假
设置 标签_状态.文本 = "❌ 未连接"
设置 标签_状态.背景颜色 = 红色
设置 计时器_接收.启用计时 = 假
// 发送数据
当 按钮_发送.被点击 时
如果 全局变量 已连接 = 假 则
调用 对话框1.显示消息对话框("请先连接串口", "提示", "确定")
返回
初始化局部变量 发送内容 = 文本输入框_发送.文本
如果 发送内容 ≠ "" 则
如果 复选框_换行.选中 则
调用 串口1.发送文本(发送内容) // 自动加\n
否则
调用 串口1.写串口(发送内容) // 不加\n
// 在发送区显示已发送内容
调用 追加接收显示(合并字符串("→ ", 发送内容), "发送")
// 定时接收数据
当 计时器_接收.计时 时
如果 全局变量 已连接 = 真 且 串口1.已初始化 = 真 则
初始化局部变量 数据 = 调用 串口1.读串口
如果 数据 ≠ "" 则
调用 追加接收显示(数据, "接收")
// 追加显示过程
定义 追加接收显示(内容, 类型)
初始化局部变量 前缀 = ""
如果 全局变量 显示时间戳 则
初始化局部变量 时间 = 调用 计时器1.格式化日期时间(调用 计时器1.现在, "HH:mm:ss.SSS")
设置 前缀 = 合并字符串("[", 时间, "] ")
设置 文本框_接收.文本 = 合并字符串(
文本框_接收.文本,
前缀, 内容, "\n"
)
// 自动滚动到底部(需要扩展支持)
// 清空接收区
当 按钮_清空.被点击 时
设置 文本框_接收.文本 = ""
// 切换波特率
当 下拉框_波特率.完成选择 时(选择项, 选择索引)
设置 串口1.波特率 = 转换为数字(选择项)
如果 全局变量 已连接 则
// 重新连接
调用 串口1.关闭串口
调用 串口1.初始化串口
调用 串口1.打开串口