Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Equivalent function ibwrtfW and ibwrtfA in python visa/gpib module

Tags:

python

visa

gpib

I'm in the process of automating lab instruments. I have a requirement like function will send file/binary data via VISA GPIB from Host PC to instrument.

In Ni4882.h there is the following functions to transfer file/binary data in Visual studio 2010, and it is working. I have well versed in the sending command as GPIB string.

But I never came across sending the file through GPIB command.

These are functions I tried in c++. I used ni4882.obj file (have the definition of these functions) and created an application, So I was able to transfer a file PC to instruments. But I am not able to find equivalent functions in python

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

Could anyone please let me know the equivalent function in pyvisa or visa python package? --or-- any equivalent module to an alternative for this.

I browse through all the functions of pyvisa and visa, but I failed to find the equivalent functions.

Thanks in advance!!

like image 540
Sandy Avatar asked Feb 11 '16 14:02

Sandy


1 Answers

You can try the method write_raw. Try out this code:

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)

As alternative to write_raw you can try write_binary_values or write_ascii_values. Both provide more settings if you need.

like image 53
Arton Dorneles Avatar answered Oct 26 '22 12:10

Arton Dorneles