python visa / gpib模块中的等效函数ibwrtfW和ibwrtfA

时间:2016-02-11 14:36:56

标签: python visa gpib

我正在实验室仪器的自动化过程中。 我有一个类似功能的要求,它将通过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包中的等效功能? - 或 - 替代的任何等效模块。

我浏览了pyvisa和visa的所有功能,但我找不到相应的功能。

提前致谢!!

1 个答案:

答案 0 :(得分: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。如果需要,两者都提供更多设置。