【发布时间】:2021-11-12 13:57:21
【问题描述】:
首先,我使用的是 Ubuntu 20.04 和 Python 3.8。 我想运行一个接受命令行输入的程序。我设法使用 os.system() 命令从 python 启动程序,但启动程序后无法发送输入。有问题的程序是使用 CubeSat 空间协议 (CSP) 作为语言的产品界面应用程序。但是,使用的输入被编码在一个带有相应 .h 标头的 .c 文件中。
在 shell 中,它看起来像这样: starting the program
在python中是这样的:
import os
os.chdir('/home/augustin/workspaceGS/gs-sw-nanosoft-product-interface-application-2.5.1')
os.system('./waf')
os.system('./build/csp-client -k/dev/ttyUSB1')
os.system('cmp ident') #cmp ident is typically the kind of command that does not work on python
输出和shell中的一样,但是没有“cmp ident output”,也就是说我不可能使用csp-client#
如您所见,我是一个真正的初学者,力求尽可能清晰准确。如果需要,我当然可以尝试提供更多信息。感谢您的帮助!
【问题讨论】:
-
顺便说一句,我对 CSP 一无所知...你的意思是你想编写一个 Python 脚本来发送一些你已经提前知道的 CSP 命令吗?或者你的意思是你想写一个 Python 脚本来询问你的输入,读取你输入的内容并将它传递给 CSP 并显示结果?
waf是什么?你发的命令是什么?有什么东西连接到 USB 端口吗?什么? -
为了看看你的程序是如何工作的,你可以尝试非交互地运行它吗?那么,如果您要发送的命令是
cmp ident,您可以运行echo "cmp ident" | csp-client -k/dev/ttyUSB1看看它是否能正常工作吗? -
我给你的信息太少,这是我的错:我正在使用一个使用 CSP 作为协议的纳米卫星成像仪,并且这个成像仪是通过命令行控制的(例如,命令“nanocam snap”会拍照)。当然,这些命令被编码在一个带有相应标题的 C 文件中。因此,将 RS232 转 USB 转换器插入 USB1 端口。 Waf 是一个基于 Python 的构建系统 (waf.io/book)。关于 Python,最终代码旨在按下 GUI 中的按钮以拍照,而不使用命令行,但现在我无法访问 cap-client#
-
我只是试图运行你告诉我的,它不适用于这个确切的命令,但它适用于
echo "cmp ident" | ./csp-client -k/dev/ttyUSB1但是我真的不明白它对我有什么帮助,但我'我会考虑的 -
请输入什么命令退出
csp-client?
标签: python-3.x shell command-line-interface os.system cubesat-protocol