我正在实验室仪器的自动化过程中。 我有一个类似功能的要求,它将通过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的所有功能,但我找不到相应的功能。
提前致谢!!
答案 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_values或write_ascii_values。如果需要,两者都提供更多设置。