9 Star 46 Fork 4

Junruoyu-Zheng / Ligral

 / 详情

实时仿真绘图在仿真运行期间不能显示窗体

已完成
拥有者
创建于  
2021-01-03 16:29

实时仿真绘图在仿真运行期间不能显示窗体,只在仿真结束后才显示。

经测试,如果直接在 Python REPL 环境中运行相同代码,绘图窗体能实时显示。是否因为 Popen 调用导致不能即时显示窗体,需要排查。

评论 (3)

Junruoyu-Zheng 创建了任务
Junruoyu-Zheng 置顶等级设置为
Junruoyu-Zheng 优先级设置为次要
Junruoyu-Zheng 关联仓库设置为Junruoyu-Zheng/Ligral
Junruoyu-Zheng 添加了
 
bug
标签
展开全部操作日志

经查明这是 python 的 bug,运行 cmd 的 touch 命令可以实时看到文件被创建,运行 python 的 open write 不能实时看到创建的文件。但是在 python 中用 popen 是可以实时运行命令的。

在python中运行popen也是不行的,当时调试时代码有误,实际上“可以实时运行的命令”是运行在被popen打开的进程上,而非调用popen的进程上,即命令是直接给到python,而非通过pipe传输给python。

Junruoyu-Zheng 任务状态待办的 修改为已完成
Junruoyu-Zheng 置顶等级 修改为不置顶
Junruoyu-Zheng 任务状态已完成 修改为进行中

Python对pipe传输支持不完善,可以说是有bug。只有关闭stdin后,输入数据才会被传输给python,此时python拿到所有指令,才会执行。因此实时仿真过程中,窗体不能显示,只有仿真结束后才显示。而stdin一旦关闭后就无法重新打开,所以不能实现动态执行命令的功能。
因此,更改方案,使用UDP传输命令,服务器拿到命令后用exec函数执行命令,解决了这个问题。

Junruoyu-Zheng 任务状态进行中 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
C#
1
https://gitee.com/junruoyu-zheng/ligral.git
git@gitee.com:junruoyu-zheng/ligral.git
junruoyu-zheng
ligral
Ligral

搜索帮助

14c37bed 8189591 565d56ea 8189591