我已经制作了一个python脚本来从串口读取信息。我希望这个脚本在我的ubuntu启动时运行。
我已经使我的python文件可执行,并在crontab上添加了一个lign:@reboot sleep 10s; python /home/MyUser/Documents/MyScript.py &
当我启动时,脚本确实已启动,但似乎特定行ser = serial.Serial('/dev/ttyACM0', 9600)
无效。实际上,如果我之前尝试执行某些操作,它将会起作用,但不会之后。
我无法弄清楚它为什么不起作用。当我从终端执行我的脚本时,它确实可以正常工作。
我认为这可能是因为当脚本启动时串口可能还没有准备好,但即使在脚本启动之前添加更长的睡眠,它也不起作用。我的想法已经不多了,我真的需要你的帮助。
这是我的python脚本:
#!/usr/bin/env python
import serial
import subprocess
import os
import time
ser = serial.Serial('/dev/ttyACM0', 9600)
os.system('export DISPLAY=:0 && xset dpms force off &') #this line won't work, that's why I know the problem is coming from the serial beginning.
time.sleep(60)
urgency = 0
diffusion = 0
while 1 :
line = ser.readline().strip()
if line == "start":
#do something
else
#do something else