触摸屏AI编程260525工作记录

[复制链接]

5

主题

70

回帖

157

积分

管理员

积分
157
 楼主| 发表于 前天 12:29 | 显示全部楼层
u盘一直插在触摸屏上,现在没有显示出u盘内容,检查修正

0

主题

101

回帖

204

积分

管理员

积分
204
发表于 前天 12:35 | 显示全部楼层
我直接连触摸屏查 U 盘设备、挂载点、程序日志和 /proc/mounts,先定位是没识别、没挂载,还是界面刷新/目录逻辑问题。
当前诊断显示:系统里根本没有 /dev/sda*、/dev/uba*,/proc/partitions 也只有内置 mmcblk0,所以不是“目录没刷新”,而是触摸屏系统没有识别到 U 盘块设备。我继续查 USB 控制器模式/内核日志,看看能否用本地命令切到 host 或重新枚举。
刚才远程一行命令被 shell 引号截断了,我改成上传诊断脚本执行。
诊断结果很明确:触摸屏当前 USB 总线上只识别到 3 个设备:USB Hub、串口设备、Realtek 网卡,没有识别到任何 U 盘块设备,所以程序没有内容可显示。现在我先做一次 USB 总线重新枚举/复位,再看 U 盘是否出现为 /dev/sda1 或类似设备。
我已经连上触摸屏检查了,结论不是程序目录刷新问题,而是系统现在没有识别到 U 盘设备。

我查到的状态:
/proc/partitions 里只有内置存储:
mmcblk0
mmcblk0p1 ~ mmcblk0p5
没有:
/dev/sda
/dev/sda1
/dev/uba
/dev/uba1
/media 下面也没有挂载 U 盘。
lsusb 当前只识别到:
USB Hub:35d6:2510
串口设备:1a86:55d3
Realtek 网卡:0bda:8153
没有任何 USB Mass Storage / U 盘设备。
我已经远程重置了一次 USB Hub,串口和网卡重新枚举了,但 U 盘仍然没有出现。
所以现在触摸屏程序显示不出 U 盘内容,是因为底层 Linux 没有看到 U 盘块设备,程序没法挂载。

请现场做这几步:
把 U 盘拔下来,等 5 秒,再重新插上。
如果通过 USB Hub 插的,换一个 Hub 口。
如果还是不行,换一个普通 FAT32 格式 U 盘测试。
插好后告诉我,我马上再远程执行检测。
我会重点看这几个是否出现:
/dev/sda
/dev/sda1
/proc/partitions 里出现 sda
lsusb 里出现 Mass Storage

只要底层识别到 /dev/sda1,我现在部署的程序就会自动挂载,并创建:
<U盘>/VFD/vfd_logs/fault_logs

然后故障 .dat 会同步写进去。

5

主题

70

回帖

157

积分

管理员

积分
157
 楼主| 发表于 前天 12:39 | 显示全部楼层
我重新拔插u盘之后U盘出现相应文件,但是u盘栏显示的文件名只有一部分,需要点按一下之后才刷新

0

主题

101

回帖

204

积分

管理员

积分
204
发表于 前天 12:46 | 显示全部楼层
明白:底层 U 盘已识别、目录也创建成功,剩下是界面右侧 U 盘文件列表刷新不及时/显示缓存的问题。我改成检测到 U 盘挂载或目录同步后主动刷新右侧路径和列表,并缩短/强化自动刷新。先查对应绘制和刷新逻辑。
已针对“U盘栏需要点一下才刷新”改了界面刷新逻辑,版本号也更新到 20260525_1238。现在编译并部署。
已修正并重新烧写。

这次问题是:U 盘已经挂载,但右侧“U盘栏”的路径/列表状态没有在挂载变化后主动重置,导致要点按一下才触发刷新。

我做了这些修改:
新增 U 盘栏状态同步逻辑:
检测到 U 盘挂载状态变化后,自动把右栏路径切到当前 U 盘根目录。
自动清掉旧的滚动位置和选中状态。
自动刷新周期从 1500ms 缩短到 800ms。
中间“刷新”按钮现在会强制同步 U 盘栏。
文件列表排序改为按名称排序,显示更稳定。
版本号更新为:20260525_1238
已编译并部署到触摸屏:
新程序:/root/iba_pda
MD5:cb11860349b4b4edbd420f6ecb29eda5
程序内版本确认:20260525_1238
进程已运行。
同时确认现在触摸屏底层已经识别 U 盘:
/dev/sda
/dev/sda1

挂载位置:
/media/usb0

U 盘目录已经存在:
/media/usb0/VFD
/media/usb0/VFD/config
/media/usb0/VFD/vfd_logs
/media/usb0/VFD/vfd_logs/run_logs
/media/usb0/VFD/vfd_logs/fault_logs
/media/usb0/VFD/web

你现在看一下触摸屏右侧 U 盘栏:拔插后应该不用再点一下才刷新。如果还是有显示不完整,我再把右栏默认进入目录从 /media/usb0 改成 /media/usb0/VFD,这样界面会只显示我们关心的 VFD 结构,避免 U 盘根目录旧文件太多影响显示。

0

主题

101

回帖

204

积分

管理员

积分
204
发表于 前天 12:59 | 显示全部楼层
我看这张图的现象还是右栏显示 U 盘根目录,里面旧 .dat 文件和异常目录太多,视觉上像“文件名只显示一部分”。我直接把右侧 U 盘栏默认目录改成 /media/usb0/VFD,插入/刷新后直接进入我们关心的 VFD 目录树,不再停在 U 盘根目录。
这张图暴露的是“根目录文件太多且名称列宽有限”,不是底层同步失败。我已改为右侧默认进入 /media/usb0/VFD,这样只显示 config/vfd_logs/web 这类结构。现在编译部署 20260525_1247。
看图确认了:右侧现在显示的是 U 盘根目录,里面有很多旧 .dat 文件和异常目录,名称列宽有限,所以看起来像只显示了一部分。不是 U 盘没同步,而是默认显示位置不合适。

我已经改完并重新烧写:
新版本:20260525_1247
修改内容:
右侧 U 盘栏默认进入:
/media/usb0/VFD
不再默认停在 U 盘根目录。
右侧“上级”也限制在 /media/usb0/VFD 内,避免又退回根目录看到一堆旧文件。
这样右栏默认只显示:
config
vfd_logs
web
进入 vfd_logs 后再看:
fault_logs
run_logs

已部署验证:
触摸屏程序:/root/iba_pda
MD5:c84199ecaad38ef02ebb4669cc0471ee
程序内版本:20260525_1247
U 盘目录确认存在:
/media/usb0/VFD/config
/media/usb0/VFD/vfd_logs/fault_logs
/media/usb0/VFD/vfd_logs/run_logs
/media/usb0/VFD/web

你现在看右侧 U 盘栏,应该直接显示 VFD 里面的几个文件夹,不会再被根目录旧文件干扰。
拔掉 U 盘之后,如果右侧栏还停留在原来的 config / vfd_logs / web,那就是界面仍保留了上一次的路径缓存。

我需要看一下你这条对应的截图/现象才能判断是否还要改。如果你是说拔掉后右侧仍显示 VFD 内容,那我下一步会改成:
检测到 U 盘拔出后,右侧栏立即清空;
显示:
U盘未插入 / 未挂载
禁止继续进入/复制到右侧;
再插入 U 盘后自动恢复到:
/media/usb0/VFD

如果你方便,发一下拔掉 U 盘后的屏幕图;我可以马上按这个逻辑修。

0

主题

101

回帖

204

积分

管理员

积分
204
发表于 前天 13:19 | 显示全部楼层
明白,两个问题:
拔掉 U 盘后右侧仍然显示文件:说明文件管理页没有在检测到 U 盘卸载后清空右侧缓存/列表。
文件时间不对:大概率是 Qt4/系统时区或 stat 时间格式化用错了,也可能是触摸屏系统时间本身不准。
我现在按这两个点改:拔出后立即清空右侧并禁止操作;文件时间改成从文件 mtime 正确格式化,同时检查是否受时区影响。改完会给你一个新版本号。

0

主题

101

回帖

204

积分

管理员

积分
204
发表于 前天 13:37 | 显示全部楼层
对,这个也要改。现在文件管理是按名称排序,所以最新文件不会在最上面。
我一起修成:目录优先 + 文件按修改时间倒序(最新在最上面),右侧 U 盘拔出清空和时间显示也放在同一个新版本里。
修改进度怎么样?
进度如下:
已完成代码修改并编译成功,新版本号:20260525_1325
这版修了三个点:
文件管理排序
原来按文件名排序;
已改为按修改时间排序,最新文件在最上面。
拔掉 U 盘后右侧仍显示文件
已改为检测到 U 盘未挂载后,右侧列表清空;
显示“U盘未插入 / 未挂载”;
防止继续从右侧复制/操作旧缓存。
文件时间显示
已把文件时间显示改成读取文件修改时间并转本地时间;
格式改成 yy-MM-dd HH:mm,比原来只显示 MM-dd HH:mm 更明确。
编译结果:
编译机:192.168.25.128
二进制:iba_pda_20260525_1325
MD5:6751be239dbe0fbb23c8b4a5bdf8c936
当前状态:本地和虚拟机编译都完成了,正在准备部署到触摸屏。部署完我会再验证屏幕版本号是不是 20260525_1325。

0

主题

101

回帖

204

积分

管理员

积分
204
发表于 前天 13:44 | 显示全部楼层
继续。我已经有编译好的 20260525_1325,现在开始传到触摸屏并重启程序;部署前会先把当前 /root/iba_pda 拉回本地备份。
部署完成,已在触摸屏上运行新版本。

结果:
新版本:20260525_1325
设备路径:/root/iba_pda
设备 MD5:6751be239dbe0fbb23c8b4a5bdf8c936
当前进程已启动:
/root/iba_pda -qws -display LinuxFb:/dev/fb0 -mouse Tslib:/dev/input/event0 -nomousecursor

本次修复内容:
文件管理最新文件置顶
已改为按修改时间排序,最新文件在最上面。
拔掉 U 盘后右侧仍显示文件
已改为 U 盘未挂载时右侧清空;
显示“U盘未插入 / 未挂载”。
文件时间显示
已改为显示文件本地修改时间;
格式为 yy-MM-dd HH:mm。
我也按要求做了本地备份:
I:\AI\work\2026-05-25\touchscreen_usb_unplug_time_fix_20260525_1305\iba_pda.device.before_20260525_1325

你现在可以在屏幕上进“录波仪 → 文件管理”测试:
新生成/新修改的文件是否排最上面;
拔掉 U 盘后右侧是否立刻清空。

0

主题

101

回帖

204

积分

管理员

积分
204
发表于 前天 14:00 | 显示全部楼层
我看到了截图:右栏还是显示了 config / vfd_logs / web,说明现在的问题不是普通列表缓存,而是系统仍判断 /media/usb0 这个挂载点存在,所以程序继续把 /media/usb0/VFD 当成 U 盘目录显示。
也就是说:U 盘拔掉后,/media/usb0 目录还在,甚至 /media/usb0/VFD 目录也可能还残留;我之前只判断“挂载路径是否存在/是否在 /proc/mounts”,还不够严。
下一版我会改成更严格的判断:
右侧 U 盘栏只在 /proc/mounts 里明确存在 /media/usb0、/media/usb1 等挂载记录时才显示文件;
如果只是空目录或残留目录,不再认为是 U 盘;
文件管理右侧列表读取前再次确认挂载状态;
拔出后强制:
fileRightPath.clear()
右侧列表为空
选中状态清空
显示“U盘未插入 / 未挂载”
同时我再检查一下排序是否用了 QDir:irsFirst | QDir::Time,保证新文件置顶。
我继续修,出一个新版本部署。

0

主题

101

回帖

204

积分

管理员

积分
204
发表于 前天 14:09 | 显示全部楼层
我先接上上下文,看看 I:\AI 里最近的工作目录和记录,再继续推进。
接上了:最新未完成点是 14:00 已在虚拟机编译出 20260525_1405(MD5 f36f5bfc8fc842e4e2fb47a048675189),但还没有下载/部署到触摸屏。我继续做下载、备份、部署和校验。
已继续完成并部署。
最新版本:20260525_1405
触摸屏程序:/root/iba_pda
设备 MD5:f36f5bfc8fc842e4e2fb47a048675189
已验证版本字符串:20260525_1405
程序已重新启动并在运行。
部署前已把旧版本本地备份到:
I:\AI\work\2026-05-25\touchscreen_usb_unplug_time_fix_20260525_1305\iba_pda.device.before_20260525_1405
触摸屏上没有额外留下备份程序。
验证结果:
触摸屏网络已通:200.200.200.191
U 盘已挂载:
/dev/sda1 -> /media/usb0
/dev/sdb1 -> /media/usb1
/media/usb0/VFD 目录存在,包含 config / vfd_logs / web
故障 DAT 文件内部和 U 盘镜像目录都能看到,例如:
内部:/VFD/vfd_logs/fault_logs/260525-134904.dat
U 盘:/media/usb0/VFD/vfd_logs/fault_logs/260525-134904.dat
归档记录已写入:
I:\AI\work\2026-05-25\touchscreen_usb_unplug_time_fix_20260525_1305\RELEASE_20260525_1405_USB_STRICT_REFRESH.md
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部