Register Calendar Latest Topics
 
 
 


Reply
  Author   Comment  
amwhit

Junior Member
Registered:
Posts: 1
Reply with quote  #1 
I have been trying to figure out how ML will communicate with our MR Scanner (Brooker BioSpin running ParaVision 6). I understand the scanner can send out and use TTL pulses to timestamp slices and trigger runs. On the ML side of things, I see I can use GOODMONKEY to trigger a TTL but I am unsure how to get ML to register the TTL pulses coming from the scanner as a timestamp, I think it would be an EVENTMARKER? Am I on the right path or is there some obvious documentation I'm missing.

Thanks! 
0
Jaewon

Administrator
Registered:
Posts: 627
Reply with quote  #2 
goodmonkey() and eventmarker() use TTLs, but they are outbound pulses to trigger reward devices or synchronize timing with external devices, so you don't want to use them.

To register inbound TTLs, you can use eyejoytrack() with a button. Hook up the TR signal of the scanner to one of the buttons and call eyejoytrack() with 'acquiretouch' or 'holdtouch'.

----- example 1 -----
ontarget = eyejoytrack('acquiretouch',1,[],60000);  % Wait for a TR pulse for 60 sec. 1 is the button #.
if ~ontarget
    error('No TR pulse is detected!!!');
end
----- end of example 1 -----

'acquiretouch' looks for a rising edge (LO->HI), so, if your scanner sends an inverted pulse (HI->LO), you can use 'holdtouch' instead.

----- example 2 -----
ontarget = eyejoytrack('holdtouch',1,[],60000);  % Wait for a TR pulse for 60 sec. 1 is the button #.
if ontarget
    error('No TR pulse is detected!!!');         % The ontarget status is opposite.
end
----- end of example 2 -----


The button input is not saved to the data file in the runtime v1, so, if you need to record the entire TR signal, split the signal and hook one to the button and the other to a general input.
0
Previous Topic | Next Topic
Print
Reply

Quick Navigation:

Easily create a Forum Website with Website Toolbox.