Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Pyserial来检测其他应用程序是否正在使用串行端口?_Python_Pyserial - Fatal编程技术网

Python 如何使用Pyserial来检测其他应用程序是否正在使用串行端口?

Python 如何使用Pyserial来检测其他应用程序是否正在使用串行端口?,python,pyserial,Python,Pyserial,通常,如何使用Pyserial来检测其他应用程序是否正在使用串行端口 举例说明: 如果应用程序当前正在访问我的串行设备/dev/ttyUSB0。例如,picocom/dev/ttyUSB0-b 115200正在运行(但也可能是其他应用程序)。接下来,我使用Pyserial访问相同的串行端口。我希望serial.serial.read()根据方法抛出一个SerialExceptionexpection。然而,这并没有发生 下面是我的测试脚本及其结果,显示read_data=b',但未触发Seria

通常,如何使用
Pyserial
来检测其他应用程序是否正在使用串行端口

举例说明: 如果应用程序当前正在访问我的串行设备
/dev/ttyUSB0
。例如,
picocom/dev/ttyUSB0-b 115200
正在运行(但也可能是其他应用程序)。接下来,我使用Pyserial访问相同的串行端口。我希望
serial.serial.read()
根据方法抛出一个
SerialException
expection。然而,这并没有发生

下面是我的测试脚本及其结果,显示
read_data=b'
,但未触发
SerialException

脚本:

import serial
from pprint import pprint

port='/dev/ttyUSB0'
try:
    serial_port = serial.Serial(port=port, baudrate=115200, timeout=5 )
    read_data = serial_port.read()
#except serial.serialutil.SerialException as e:
except serial.SerialException as e:
    print(e)
else:
    print('serial_port:'); pprint(serial_port.__dict__)
    print('\nread_data = ', read_data)
    if not read_data:
        print("read_data == zero or empty container or False")

serial_port.close()
serial_port:
{'_baudrate': 115200,
 '_break_state': False,
 '_bytesize': 8,
 '_dsrdtr': False,
 '_dtr_state': True,
 '_exclusive': None,
 '_inter_byte_timeout': None,
 '_parity': 'N',
 '_port': '/dev/ttyUSB0',
 '_rs485_mode': None,
 '_rts_state': True,
 '_rtscts': False,
 '_stopbits': 1,
 '_timeout': 5,
 '_write_timeout': None,
 '_xonxoff': False,
 'fd': 6,
 'is_open': True,
 'name': '/dev/ttyUSB0',
 'pipe_abort_read_r': 7,
 'pipe_abort_read_w': 8,
 'pipe_abort_write_r': 9,
 'pipe_abort_write_w': 10,
 'portstr': '/dev/ttyUSB0'}

read_data =  b''
read_data == zero or empty container or False
输出:

import serial
from pprint import pprint

port='/dev/ttyUSB0'
try:
    serial_port = serial.Serial(port=port, baudrate=115200, timeout=5 )
    read_data = serial_port.read()
#except serial.serialutil.SerialException as e:
except serial.SerialException as e:
    print(e)
else:
    print('serial_port:'); pprint(serial_port.__dict__)
    print('\nread_data = ', read_data)
    if not read_data:
        print("read_data == zero or empty container or False")

serial_port.close()
serial_port:
{'_baudrate': 115200,
 '_break_state': False,
 '_bytesize': 8,
 '_dsrdtr': False,
 '_dtr_state': True,
 '_exclusive': None,
 '_inter_byte_timeout': None,
 '_parity': 'N',
 '_port': '/dev/ttyUSB0',
 '_rs485_mode': None,
 '_rts_state': True,
 '_rtscts': False,
 '_stopbits': 1,
 '_timeout': 5,
 '_write_timeout': None,
 '_xonxoff': False,
 'fd': 6,
 'is_open': True,
 'name': '/dev/ttyUSB0',
 'pipe_abort_read_r': 7,
 'pipe_abort_read_w': 8,
 'pipe_abort_write_r': 9,
 'pipe_abort_write_w': 10,
 'portstr': '/dev/ttyUSB0'}

read_data =  b''
read_data == zero or empty container or False