【问题标题】:Unable to get full VISA address that includes the serial number无法获取包含序列号的完整 VISA 地址
【发布时间】:2018-09-10 10:45:59
【问题描述】:

我之前没有任何 Python 经验,并试图查看是否可以从具有 USB VISA 地址的设备中查询信息。我正在运行带有 Python 3.5.3 Shell 的 Raspbian GNU/Linux 9 (stretch)。用于 python 的 VISA 包是使用 pip3 安装的:

$ sudo pip3 install pyvisa-py

由于我是用USB接口连接设备,所以我也安装了python USB包。

$ sudo pip3 install pyusb

当我按照PyVISA website 使用通用命令时,我可以读取不带序列号的部分 VISA 地址,如下所示:

>>> import visa
>>> rm = visa.ResourceManager()
>>> print(rm.list_resources())
Found a device whose serial number cannot be read. The partial VISA resource name is: USB0::2391::11032::???::0::INSTR
('ASRL/dev/ttyAMA0::INSTR',)

这里是python签证信息:

$ python3 -m visa info 
Machine Details:    
    Platform ID:    Linux-4.14.62-v7+-armv7l-with-debian-9.4    
    Processor:      

Python:    
    Implementation: CPython    
    Executable:     /usr/bin/python3  
    Version:        3.5.3    
    Compiler:       GCC 6.3.0 20170124    
    Bits:           32bit    
    Build:          Jan 19 2017 14:11:04 (#default)    
    Unicode:        UCS4

PyVISA Version: 1.9.1

Backends:    
    ni:
      Version: 1.9.1 (bundled with PyVISA)
      Binary library: Not found    
    py:
      Version: 0.3.0
      TCPIP SOCKET: Available
      GPIB INSTR:
         Please install linux-gpib to use this resource type.
         No module named 'gpib'
      USB INSTR: Available via PyUSB (1.0.2). Backend: libusb1
      ASRL INSTR: Available via PySerial (3.2.1)
      USB RAW: Available via PyUSB (1.0.2). Backend: libusb1
      TCPIP INSTR: Available

不知道我做错了什么。如何阅读完整的 VISA 资源名称?否则,即使我尝试使用完整的 VISA 地址强制打开设备,也会引发另一个错误。

【问题讨论】:

    标签: python raspbian pyusb pyvisa


    【解决方案1】:

    在参考 NI-VISA 17.0 read me file 后,我找到了问题的答案。由于只读访问,VISA 无法访问 USB 设备。从LinuxQuestions.orgGitHub 中找到了关于如何以及编辑哪个文件的解决方案。我采取的步骤如下:

    要在 Linux 系统上成为 root,请在终端中发出命令

    sudo -i
    

    并在询问时提供您的登录密码。然后如上给出命令。请仔细检查您的拼写/复制,然后再按

    此时,要编辑 USB 权限文件,您需要在终端中输入以下命令: 成为根(如上)。注意你的终端提示是如何改变的。 备份原文件:

    cp  /etc/udev/rules.d/99-com.rules  /etc/udev/rules.d/99-com.rules.BAK
    

    用 nano 编辑器打开文件:

    nano  /etc/udev/rules.d/99-com.rules
    

    通过添加以下内容来编辑文件:

    SUBSYSTEM=="usb", MODE="0666", GROUP="usbusers"
    

    使用“WriteOut”保存更改,即按 Enter 确认文件名和位置。然后是“退出” 您需要重新启动 udev 以便注意到更改:

    /etc/init.d/udev  restart
    

    关闭终端。

    【讨论】:

      【解决方案2】:

      @Arun Kumar 为我工作(Linux-4.15.0-34-generic-x86_64-with-Ubuntu-18.04-bionic)。 我只是想补充一点,要使其正常工作,我必须创建“usbusers”组:

      sudo groupadd usbusers

      并将我自己添加到组中:

      sudo usermod -a -G usbusers USERNAME

      终于重启了……

      【讨论】:

      • 这条评论对我有用。由于某种原因,它无法与 udev 触发器一起使用,我不得不重新启动。
      猜你喜欢
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      相关资源
      最近更新 更多