我会尝试给您一些提示以帮助您入门 - 尽管请记住我不知道您的任何工具,即waf
or csp-client
,但希望这无关紧要。
我会对我的观点进行编号,以便您可以轻松参考这些步骤。
第 1 点
如果waf
是一个构建系统,我不会每次你想运行你的csp-client
. 只需waf
在您更改代码时使用重建 - 这应该可以节省时间。
第 2 点
当您将目录更改为/home/augustin/workspaceGS/gs-sw-nanosoft-product-interface-application-2.5.1
然后运行./build/csp-client
时,您实际上正在运行:
/home/augustin/workspaceGS/gs-sw-nanosoft-product-interface-application-2.5.1/build/csp-client -k/dev/ttyUSB1
但这很烦人,所以我会为此创建一个符号链接,/usr/local/bin
以便您可以使用以下命令运行它:
csp-client -k/dev/ttyUSB1
因此,我将使用以下符号链接:
ln -s /home/augustin/workspaceGS/gs-sw-nanosoft-product-interface-application-2.5.1/build/csp-client /usr/local/bin/csp-client
您可能需要sudo
在该命令的开头放置。一旦你有了它,你应该能够运行:
csp-client -k/dev/ttyUSB1
第 3 点
您的 Python 代码不起作用,因为每个都os.system()
启动一个全新的 shell,与前一行或 shell 无关。然后它启动的 shell 在你的下一个os.system()
命令之前退出。
因此,该cmp ident
命令永远不会转到csp-client
. 您确实需要cmp ident
在. stdin
_ 您可以在 Python 中做到这一点,它在此处进行了描述,但对于初学者来说并不是那么容易。csp-client
取而代之的是,如果您只需要发送一些有限的命令,例如“拍照”,我会bash
在终端中制作和测试完整的脚本,直到我把它们做对,然后从 Python 中调用它们。所以,我会bash
在你的 HOME 目录中创建一个脚本,命名为,csp-snap
并在其中放入如下内容:
#/bin/bash
# Extend PATH so we can find "/usr/local/bin/csp-client"
PATH=$PATH:/usr/local/bin
{
# Tell client to take picture
echo "nanoncam snap"
# Exit csp-client
echo exit
} | csp-client -k/dev/ttyUSB1
现在使用以下命令使该可执行文件(仅需要一次):
chmod +x $HOME/csp-snap
然后您可以使用以下方法对其进行测试:
$HOME/csp-snap
如果可行,您可以将脚本复制到/usr/local/bin
:
cp $HOME/csp-snap /usr/local/bin
您可能需要sudo
重新开始。
然后你应该可以从任何地方拍照:
csp-snap
然后你的 Python 代码就变得简单了:
os.system('/usr/local/bin/csp-snap')