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

Posted

技术标签:

【中文标题】python visa/gpib模块中的等效函数ibwrtfW和ibwrtfA【英文标题】:Equivalent function ibwrtfW and ibwrtfA in python visa/gpib module 【发布时间】:2016-02-11 14:36:55 【问题描述】:

我正在自动化实验室仪器。 我有一个要求,比如函数将通过 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的所有功能,但没找到对应的功能。

提前致谢!!

【问题讨论】:

桑迪,你有 C/C++ 的工作代码来处理这个任务吗?如果你有,如果你把它包含在你的问题中,你得到有用答案的机会就会增加。 @ArtonDorneles 我有来自标准 NI 驱动程序安装的 ni4882.h 和 ni4882.obj 目标文件。请访问链接ni.com/download/ni-488.2-3.1.2/4360/en 你试过我的答案了吗?如果我可以为您做任何其他事情,请给我留言。 @ArtonDorneles 我试过这个选项,但我得到了类型错误异常 你能在这里发布错误的输出吗?也许我可以帮你解决这个问题。 【参考方案1】:

你可以试试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。如果您需要,两者都提供更多设置。

【讨论】:

以上是关于python visa/gpib模块中的等效函数ibwrtfW和ibwrtfA的主要内容,如果未能解决你的问题,请参考以下文章

C++ 中是不是有与 python 中的 astype() 函数等效的函数?

C++/Java/Python 中的 PHP imagettftext() 等效函数

等效于 Java 中的 Python 的 lambda 函数?

Alteryx MD5_ASCII()函数在Python中的等效解。

OpenCV 中的 Matlab 最小等效项

是否有 R 等效于 python 的字符串“格式”函数?