等到 shell 命令被执行
wait until shell command is executed
我有一个启动 shell 命令的脚本。问题是脚本不会等到命令完成并立即继续。
我试过 WAIT 但它不起作用,因为 shell 命令关闭和打开电源(点火 off/on),我收到错误消息,因为电源已关闭,所以无法执行 WAIT。
是否有任何命令可以让程序等待命令执行?
我的脚本是这样的:
OS.COMMAND echo OUTP OFF > COM1
OS.COMMAND echo OUTP ON > COM1
System.up
如果我想执行 shell 命令 而不重定向 我会使用 OS.Area
而不是 OS.Command
,因为 OS.Area 正在阻塞,将等待 shell 命令完成。但是我认为 OS.Area 不支持重定向。
如果我想执行 shell 命令并将 输出重定向到一个文件 我会先删除该文件,然后等待它可以访问。像这样:
IF OS.FILE.EXIST("myfile.txt")
RM "myfile.txt"
OS.Command ECHO "Hello World" > "myfile.txt"
WAIT OS.FILE.readable("myfile.txt")
但是您似乎想通过 shell 命令写入 Windows 上的 COM 端口。但我认为在使用 OS.Command...
时,不可能在 TRACE32 中等待,直到完成对 COM 端口的写入
所以我建议改为使用 TERM 命令来完成此任务:
TERM.METHOD #1 COM COM1 115200. 8 NONE 1STOP NONE
TERM.view #1
TERM.Out #1 "OUTP OFF" 0x0A
TERM.Out #1 "OUTP ON" 0x0A
当然你必须设置正确的波特率、位数、奇偶校验位和停止位。每个 TERM.Out 之后的 0x0A 只是换行符。
您的终端是否显示任何输出作为对 OUTP ON
的反应?如果是,您还可以等待此输出,例如SCREEN.WAIT TERM.LINE(#1,-1)=="OUTP is now ON" 5.s
否则我假设 SYStem.Up
之前的一个简单的 WAIT 50.ms
也可能会成功。
我有一个启动 shell 命令的脚本。问题是脚本不会等到命令完成并立即继续。 我试过 WAIT 但它不起作用,因为 shell 命令关闭和打开电源(点火 off/on),我收到错误消息,因为电源已关闭,所以无法执行 WAIT。
是否有任何命令可以让程序等待命令执行?
我的脚本是这样的:
OS.COMMAND echo OUTP OFF > COM1
OS.COMMAND echo OUTP ON > COM1
System.up
如果我想执行 shell 命令 而不重定向 我会使用 OS.Area
而不是 OS.Command
,因为 OS.Area 正在阻塞,将等待 shell 命令完成。但是我认为 OS.Area 不支持重定向。
如果我想执行 shell 命令并将 输出重定向到一个文件 我会先删除该文件,然后等待它可以访问。像这样:
IF OS.FILE.EXIST("myfile.txt")
RM "myfile.txt"
OS.Command ECHO "Hello World" > "myfile.txt"
WAIT OS.FILE.readable("myfile.txt")
但是您似乎想通过 shell 命令写入 Windows 上的 COM 端口。但我认为在使用 OS.Command...
时,不可能在 TRACE32 中等待,直到完成对 COM 端口的写入所以我建议改为使用 TERM 命令来完成此任务:
TERM.METHOD #1 COM COM1 115200. 8 NONE 1STOP NONE
TERM.view #1
TERM.Out #1 "OUTP OFF" 0x0A
TERM.Out #1 "OUTP ON" 0x0A
当然你必须设置正确的波特率、位数、奇偶校验位和停止位。每个 TERM.Out 之后的 0x0A 只是换行符。
您的终端是否显示任何输出作为对 OUTP ON
的反应?如果是,您还可以等待此输出,例如SCREEN.WAIT TERM.LINE(#1,-1)=="OUTP is now ON" 5.s
否则我假设 SYStem.Up
之前的一个简单的 WAIT 50.ms
也可能会成功。