我正在通过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(),它设置端口,波特率等等,但我认为我不需要使用类。
感谢您的帮助!
最高
答案 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