Python27:创建pyserial连接的类,处理错误

时间:2014-12-09 04:54:06

标签: python-2.7 error-handling pyserial

我正在通过pyserial从传感器读取数据。传感器通过USB连接,这可能会不时发生变化,这就是我实现找到合适USB端口的方法的原因。

我的示例代码:

class Sensor:
    'Class to implement a sensor'

    #constructor of Vaisala with default setup of the serial connection
    def __init__(self):
        self.port = Sensor.read_port(self)
        self.ser = serial.Serial(
            port = Sensor.read_port(self),
            baudrate =19200,
            parity = serial.PARITY_NONE,
            stopbits = serial.STOPBITS_ONE,
            bytesize = serial.EIGHTBITS,
            timeout = 2
            )


    #returns the port to which the sensor is connected
    def read_port(self):
          #method to determine port

此示例适用于我给定的传感器。我现在的问题是如何在这种情况下处理错误。

例如,如果没有连接Sensor,终端将引发SerialException,因为read_port()方法无法找到传感器。我尝试在read_port()中使用一个异常的try例,但我根本没有成功。有人能给我一个暗示我怎么能解决我的问题? 我也可以代替使用类的构造函数,实现另一个函数,例如serial_connection(),它设置端口,波特率等等,但我认为我不需要使用类。

感谢您的帮助!

最高

1 个答案:

答案 0 :(得分:2)

如果没有设备,则在init期间将发生错误。所以:

class Sensor:
'Class to implement a sensor'

#constructor of Vaisala with default setup of the serial connection
def __init__(self):
    try:
        self.port = Sensor.read_port(self)
        self.ser = serial.Serial(
        port = Sensor.read_port(self),
        baudrate =19200,
        parity = serial.PARITY_NONE,
        stopbits = serial.STOPBITS_ONE,
        bytesize = serial.EIGHTBITS,
        timeout = 2)
    except SerialException:
        import os
        print "Error connecting"
        os.exit(0)


#returns the port to which the sensor is connected
def read_port(self):
      #method to determine port