Открытие последовательного порта в режиме matlab no java - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь открыть использование последовательного порта, подключенного к модулю BBTK USB TTL.Код, который я использую, выглядит следующим образом:

function [s]=TTLInit

 if ~isempty(instrfind) %Close any open ports
     fclose(instrfind);
     delete(instrfind);
 end


 s=serial('COM3') %Set up serial object 

 try
    fopen(s) %Open serial port
 catch
    disp('TTLInit failed because no port connected')
    s=999;
 end
 if s~=999
    set(s,'BaudRate',115200,'DataBits',8,'StopBits',1,'Parity','none') %Set parameters
    fprintf(s,'RR') %test trigger
 end

Это прекрасно работает, пока я полностью использую MATLAB.Тем не менее, я должен иметь возможность использовать это вместе с Psychtoolbox, что, к сожалению, означает, что я должен работать в режиме без Java.Когда я пытаюсь выполнить это без режима Java, он возвращает ошибку: «Неопределенная переменная« com »или класс« com.mathworks.toolbox.instrument.Instrument.getNonLockedObjects ».

Насколько я понимаю, это связано сдля MATLAB, нуждающегося в java, чтобы открывать и контролировать объекты (хотя поправьте меня, если я ошибаюсь!). Поэтому мне было интересно, если кто-нибудь знает способ обойти это? Можно ли открыть последовательные порты, как это и отправлять через них триггеры, не используяобъекты Java или каким-либо другим способом в режиме без Java?

Спасибо,

Мартин

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Обычно для работы Psychtoolbox не требуется загружаться ни в режим Java, ни в режим рабочего стола.

Но если вы используете Psychtoolbox, вы можете использовать функцию IOPort, предоставляемую Psychtoolbox длядоступ к последовательному порту: http://psychtoolbox.org/docs/IOPort-OpenSerialPort.

Это также дает преимущество в том, что оно предназначено для работы в разных операционных системах и платформах (то есть как в MATLAB, так и в Octave).

0 голосов
/ 24 октября 2018

Мне удалось найти обходной путь для этого.Вместо загрузки без режима Java (который, как я думал, мне нужно было сделать, чтобы заставить Psychtoolbox работать), я могу просто загрузить режим без рабочего стола.Это позволяет MATLAB получать доступ к необходимым Java-функциям (подтверждая мою более раннюю гипотезу о том, что это проблема с Java), но также позволяет Psychtoolbox работать.Поэтому, хотя я не нашел способа открыть последовательный порт без Java (и вы можете продолжить обсуждать это, если хотите, мне все равно было бы интересно узнать, есть ли способ!), Я решил свою непосредственную проблему.

...