2011-05-30 105 views

回答

14

似乎被严重记录了PySerial网站上,这个工作对我来说:

ser = serial.Serial(DEVICE,BAUD,timeout=1) 
if(ser.isOpen() == False): 
    ser.open() 

一个人为的例子一点,但你的想法。 我知道这个问题很久以前就被问过了,但我今天也有同样的问题,并且觉得有人发现这个页面会喜欢找到答案。

+0

刚才意识到这个问题是提出一些与此稍有不同的问题,但我希望这个答案仍然会有帮助! – StampyCode 2013-05-27 09:20:03

+1

2017年8月,我刚刚在Google上找到了这一名单 - 感谢您以这种方式发布此信息。它完全回答了我的问题。就我而言,这意味着程序已经在运行。我在电脑中使用ssh,有时我从控制台运行数据记录程序'ssx'。 Python现在可以使用它来检测它而不会中止,并使用'os.system(“killall ssx”)'来自行停止另一个。这只有在我进行修改时才会发生,但对于我来说搜索已经足够了。在这里,你是。 TNX。 – SDsolar 2017-08-24 01:19:46

0

这是我在尝试阻止我的应用程序失败时所帮助的,因为它已停止并重新启动。

import serial 

try: 
    ser = serial.Serial(# set parameters, in fact use your own :-) 
    port="COM4", 
    baudrate=9600, 
    bytesize=serial.SEVENBITS, 
    parity=serial.PARITY_EVEN, 
    stopbits=serial.STOPBITS_ONE 
) 
    ser.isOpen() # try to open port, if possible print message and proceed with 'while True:' 
    print ("port is opened!") 

except IOError: # if port is already opened, close it and open it again and print message 
    ser.close() 
    ser.open() 
    print ("port was already open, was closed and opened again!") 

while True: # do something... 
相关问题