Здравствуйте, хотелось бы найти человек который сможет помочь с решением вопроса. За две недели накипело... Буду крайне благодарен за помощь
Проблема связана с удаленным общением с устройством Tektronix PWS4323 через команды visa библиотеки. после подключения к устройству со стороны хоста, а именно:
обнаружение устройства системой
добавление файла устройства usbtmc
открытие сеанса вызовом viOpenDefaultRM
открытие сеанса с устройством viOpen
успешно выполняются все команды на запись и не требующие ответа, со статусом VI_SUCCESS (включая команды "*RST", "VOLTAGE 3V", "SYSTEM:REMOTE" ....), передача которых осуществляется через вызов viWrite, также операции на чтение и запись в регистры выполняются без ошибок viSetAttribute,
Однако команды требующие чтения на запрос через viBufRead или viScanf зачастую не выполняются, возвращая ошибку VI_ERROR_TMO . Почему так написал, выглядит как-будто устройство не успевает выполнить запить в буфер чтения. Например команды *ESR?, *TST?, возвращающие короткий ответ в несколько символов, в случае дополнительной задержки по времени после операции записи, viRead может отработать корректно, без ошибок. Однако в случае с командой *IDN? Ошибка наблюдается всегда, успешно только один раз из 1000.
Что может послужить причиной такого поведения?
Спасибо за помощь.
Дополнительная информация: работа осуществляется в системе LINUX, установка библиотек visa была выполнена вручную через зависимые deb пакеты.
libivivisa0_7.0.0-0_x86_64.deb, libivivisa0-devel_7.0.0-0_x86_64.deb, libivivisa-confmgr0_7.0.0-0_x86_64.deb, libivivisa-confmgr0_7.0.0-0_x86_64.deb, libivivisa-utilities0_7.0.0-0_x86_64.deb.
После открытия сеанса также были попытки наладить работу через установку атрибутов:
VI_ATTR_TMO_VALUE, VI_ATTR_TERMCHAR, VI_ATTR_TERMCHAR_EN, VI_ATTR_SEND_END_EN.