2016-02-11 7 views
6

Я занимаюсь автоматизацией лабораторных инструментов. У меня есть требование, так как функция будет отправлять файлы/двоичные данные через VISA GPIB от хост-компьютера к инструменту.Эквивалентная функция ibwrtfW и ibwrtfA в модуле python visa/gpib

В Ni4882.h для передачи файлов/двоичных данных в Visual Studio 2010 есть следующие функции, и он работает. Я хорошо разбираюсь в команде отправки в виде строки GPIB.

Но я никогда не сталкивался с отправкой файла с помощью команды GPIB.

Это функции, которые я пробовал в C++. Я использовал файл ni4882.obj (имел определение этих функций) и создал приложение, поэтому мне удалось перенести файл ПК на инструменты. Но я не могу найти эквивалентные функции в Python

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

Может кто-нибудь, пожалуйста, дайте мне знать, эквивалентную функцию в pyvisa или визы питона пакет? - или - любой эквивалентный модуль к альтернативе для этого.

Я просматриваю все функции pyvisa и визы, но мне не удалось найти эквивалентные функции.

Спасибо заранее!

+0

Sandy, у вас есть рабочий код на C/C++ для решения этой задачи? Если у вас есть, ваши шансы на полезный ответ будут увеличиваться, если вы включите его в свой вопрос. –

+0

@ArtonDorneles У меня есть файл ni4882.h и ni4882.obj из standrad NI установки драйвера. Пожалуйста, перейдите по ссылке http://www.ni.com/download/ni-488.2-3.1.2/4360/en/ – Sandy

+0

Вы попробовали мой ответ? Бросьте мне строку, если я могу сделать что-нибудь еще для вас. –

ответ

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. Оба варианта предоставляют больше настроек, если вам нужно.