【问题标题】:executing system command in Matlab without waiting在 Matlab 中执行系统命令而无需等待
【发布时间】:2014-09-13 10:31:00
【问题描述】:

我正在尝试使用一个 Matlab GUI 操作三种仪器。

  • 一台仪器只需通过串行端口发送数据。
  • 第二个配置并开始通过虚拟串口发送数据,但使用制造商的 SDK(我正在使用修改后的 Matlab 示例脚本与仪器通信)
  • 第三使用编译后的 C++ 程序,该程序执行配置仪器并开始发送数据,但将其保存在 Matlab 外部。与其他传感器不同,该仪器只需几秒钟即可运行:

    system('ctrllib_demo3.exe 192.168.0.125 C:\ScanPos003.rxp 30,130,1,0,360,1 1')

在独立运行每个仪器时,工作正常。第一个和第二个也可以正常工作。但是,当上述命令运行时,第二台仪器停止发送数据,而第一台仪器继续。每个传感器都有不同的功能。

可能是由于:“操作等待命令完成执行,然后将命令的退出状态返回给状态变量。” (mathworks/system)? 那为什么第一个仪器还在运行?

【问题讨论】:

    标签: matlab system instruments


    【解决方案1】:

    您可以通过将& 附加到操作系统命令! 来在后台模式下运行外部命令,例如:

    !notepad.exe test.txt &
    

    将在记事本中打开 test.txt 并立即将控制权返回到命令窗口。

    Run External Commands, Scripts, and Programs

    【讨论】:

    • 这只是部分解决方案,它有效,但我需要知道外部程序何时停止运行,然后继续执行 matlab 脚本。主要问题仍然存在。为什么外部程序的运行会影响操作仪器 2 的功能的执行,而不影响操作仪器 1 的功能。
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2012-08-13
    • 2011-11-27
    • 2012-02-27
    • 1970-01-01
    • 2011-03-12
    • 2011-03-29
    • 1970-01-01
    相关资源
    最近更新 更多