Python代码:ttyUSB0上的设备重新连接到ttyUSB1 - 如何检测?

时间:2017-08-30 06:55:41

标签: python linux pyserial linuxmint

我有一个连接到ttyUSB0的FTDI设备。拔出并重新插入设备后,始终连接到ttyUSB1。我必须检测更改并采取相应措施以保持发送 recv 功能的运行。我试图在发送 recv 函数中检测到它。这是我做的:

`
def recv_serial_data(n):
    global serial_port
    try:
        if not serial_port.isOpen():
            serial_port = serial.Serial('/dev/ttyUSB1', 115200, 0.05)

        data = serial_port.read(n)
        tmp = []

        for c in data:
            tmp.append(ord(c))
        print data

        return tmp
    except Exception, e:
        raise Exception("recv_serial_data: " + str(e))

def send_serial_data(data):
    print data,type(data)
    global serial_port
    try:
        if not serial_port.isOpen():
            serial_port.close()
            serial_port = serial.Serial('/dev/ttyUSB1', 115200, 0.05)


        if not isinstance(data, basestring):
            data = array.array("B",data).tostring()
            serial_port.write(data)
        elif isinstance(data, basestring):
            serial_port.write(data)
    except Exception, e:
        raise Exception("send_serial_data: " + str(e))

    return



    def main():

    #[Doing stuff]

    global serial_port

    #options.serial_port is '/dev/ttyUSB0'        
    serial_port = serial.Serial(options.serial_port, options.baudrate, timeout=options.tty_timeout)

    #[Doing stuff]

    serial_port.close()

if __name__ == "__main__":
    main()
`

我现在得到的是像" recv_serial_data这样的消息:设备报告准备好阅读但没有返回数据" (设备断开连接或端口多次访问?)" " send_serial_data:写入失败:[Errno 5]输入/输出错误" 只要我没有拔掉设备,一切都会顺利进行。

0 个答案:

没有答案