我希望使用 X-CTU 通过 Zigbee/XBee 控制脚本。我创建了一个名为 zb_control.py
的脚本。现在,我正在尝试启动和停止此脚本中的另一个脚本。脚本adxl345test.py
用于从我的树莓派上附加的加速度计收集数据。
zb_control.py
脚本背后的想法是我运行它,然后如果我在 X-CTU 中键入"run",脚本将开始运行adxl345test.py
并收集数据。
我正在尝试在脚本中创建一个脚本,该脚本也可以再次停止,然后仍然运行zb_control.py
以接收来自 X-CTU 的新输入。
如您所知,我尝试了不同的东西:
import serial, time, sys, os, subprocess
from subprocess import check_call
from subprocess import call
while True:
ser=serial.Serial('/dev/ttyUSB0',9600,timeout=2)
inc=ser.readline().strip()
if inc=='run':
print("---------------")
print("Collecting data")
print("---------------")
p = subprocess.Popen("adxl345test.py", stdout=subprocess.PIPE, shell=True)
# p = call(["python", "adxl345test.py"])
# p = os.system("python adxl345test.py")
# p = execfile("adxl345test.py")
# call(["python", "adxl345test.py"])
elif inc=='stop':
# check_call(["pkill", "-9", "-f", adxl345test.py])
# serial.write('x03')
# os.system("pkill –f adxl345test.py")
# call(["killall", "adxl345test.py"])
p.kill()
print("-----------------------")
print("Script has been stopped")
print("-----------------------")
启动 adxl345test.py 脚本时出现此错误:
/bin/sh: 1: adxl345test.py: not found
如何修复此错误?
确保在外部脚本中使用 UNIX 行尾。