从 Teledyne Lecroy Wavesurfer 3054 读取波形

问题描述 投票:0回答:1

我正在尝试使用我在 GitHub (https://github.com/SengerM/TeledyneLeCroyPy/tree/main) 上找到的 pyvisa 包从 Teledyne LeCroy Wavesurfer 3054 读取波形数据。问题是,当脚本调用 get_waveform() 方法,然后调用 self.resource.read_raw() 时,程序会在该行停止。我也尝试过使用像 read_binary_values() 这样的 pyvisa 方法,但出现了同样的问题。

当我重新启动示波器然后运行代码时,我有时会收到错误:struct.error: unpack_from 需要至少 4 个字节的缓冲区才能在偏移量 0 处解包 4 个字节(实际缓冲区大小为 0)。

但是绝大多数时候代码只是卡在 self.resource.read_raw() 上

这是我正在运行的脚本。这只是上面链接中的第一个示例。

import TeledyneLeCroyPy

o = TeledyneLeCroyPy.LeCroyWaveRunner('USB0::blah::blah::blah::9.1.0')

print(o.idn) # Pings e.g. LECROY,WAVERUNNER9254M,LCRY4751N40408,9.2.0

print('Waiting for trigger...')
o.wait_for_single_trigger() # Halt the execution until there is a trigger.

data = o.get_waveform(n_channel=1)

print(data['waveforms'])

我一生都无法弄清楚为什么如果有人有一个解决方案,我们将不胜感激。

python pyvisa oscilloscope
1个回答
0
投票

我经常使用 pyvisa 下载示波器曲线数据。我确实遇到过两次麻烦:

  1. 下载曲线时,示波器必须处于停止状态(这就是为什么我总是使用单次采集数据)。运行状态下载曲线数据总是失败。
  2. 示波器中的 USB 端口损坏。通过网络电缆使用同一设备确实可以正常运行,没有任何问题。

因此请确保示波器在下载时不会采集新数据,并尝试使用网络电缆而不是 USB 端口。

© www.soinside.com 2019 - 2024. All rights reserved.