我正在开发一个项目,在该项目中我必须与连接的设备(ttyS0、ttyS1 或 ttyUSB0)进行一些串行通信。幸运的是,我遇到了一个非常有用的 stackoverflow 链接:“ Simple way to query linked USB devices info in Python? ”。在此链接中,有一个 python 代码,它工作得很好,并且提供了正确的设备名称和详细信息。
示例代码中:“/dev/bus/usb/005/002”是“FT232 Serial (UART)”的设备信息。那么,有没有办法找到 /dev/bus/usb/005/002 与 ttyS0/ ttyUSB0 的映射或使用设备信息直接访问 UART,并使用“/dev/bus/usb/<总线 >/< 设备 >" 而不是 ttyS0 或 ttyUSB0。
蟒蛇代码:
import re
import subprocess
device_re = re.compile("Bus\s+(?P<bus>\d+)\s+Device\s+(?P<device>\d+).+ID\s(?P<id>\w+:\w+)\s(?P<tag>.+)$", re.I)
df = subprocess.check_output("lsusb")
devices = []
for i in df.split('\n'):
if i:
info = device_re.match(i)
if info:
dinfo = info.groupdict()
dinfo['device'] = '/dev/bus/usb/%s/%s' % (dinfo.pop('bus'), dinfo.pop('device'))
devices.append(dinfo)
print devices
Run Code Online (Sandbox Code Playgroud)
结果:
{'device': '/dev/bus/usb/001/001', 'tag': 'Linux Foundation 2.0 root …Run Code Online (Sandbox Code Playgroud) 我正在研究一个项目(硬件:RaspberryPI 3B +),该项目具有大量的计算和并行处理。目前,我注意到代码性能有些滞后。因此,我一直在寻找有效的方法来改善代码及其性能。
目前,我正在使用C语言(因为我可以轻松地访问和操作较低级别的驱动程序)并开发自己的一组函数,库和驱动程序,其运行速度比任何其他预定义或现成的库或插件都要快。
现在,我想使用单独的内核来执行相应的任务,而不是基于软件的多线程读取(Pthread)。那么,关于如何使用RaspberryPI的不同核心的任何建议或指南?
此外,如何检查CPU使用率以选择最佳内核来执行特定任务?
致谢,阿提夫·谢赫(Aatif Shaikh)