6

我正在自动化实验室仪器。我有一个要求,比如功能将通过 VISA GPIB 从主机 PC 发送文件/二进制数据到仪器。

在 Ni4882.h 中有以下函数可以在 Visual Studio 2010 中传输文件/二进制数据,并且可以正常工作。我精通 GPIB 字符串的发送命令。

但我从来没有遇到过通过 GPIB 命令发送文件。

这些是我在 C++ 中尝试过的函数。我使用了 ni4882.obj 文件(有这些函数的定义)并创建了一个应用程序,所以我能够将文件 PC 传输到仪器。但我无法在 python 中找到等效的函数

unsigned long NI488CC ibwrtfA  (int ud, const char * filename);
unsigned long NI488CC ibwrtfW  (int ud, const wchar_t * filename);

谁能告诉我pyvisa或visa python包中的等效功能?--or-- 任何等效模块来替代这个。

我浏览了 pyvisa 和 visa 的所有功能,但我没有找到等效的功能。

提前致谢!!

4

1 回答 1

2

您可以尝试write_raw方法。试试这个代码:

import visa
rm = visa.ResourceManager()

rm.list_resources() # ('ASRL1::INSTR', 'ASRL2::INSTR', 'GPIB0::12::INSTR')
ud = rm.open_resource('GPIB0::12::INSTR') #You need to specify your device here.

#Read the file into data
f = open('file.dat', 'rb')
data = list(f.read())

#Write file into device
ud.write_raw(data)

作为替代方案,write_raw您可以尝试write_binary_valueswrite_ascii_values。如果您需要,两者都提供更多设置。

于 2016-02-14T15:57:12.377 回答