Python Serial()在启动时无法完成

时间:2017-09-05 09:51:14

标签: python linux ubuntu cron pyserial

我已经制作了一个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

0 个答案:

没有答案