Assistance with setting up event markers from Inquisit to Acqknowledge BIRD task


Assistance with setting up event markers from Inquisit to Acqknowledge...
Author
Message
lomberaa
lomberaa
Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)
Group: Forum Members
Posts: 5, Visits: 27
Hello all,

Can someone assist me with setting up event markers from Inquisit to Acqknowledge for the Behavioral Indicator of Resiliency to Distress (BIRD) task. Attached is the work we have done so far, we are not sure how to signal the two distinct trials for block 2. We are trying to set up event markers from Inquisit to Acqknowledge whenever a new trial is started (trial 1, trial 2a, trial2b, trial3) that way we can monitor the children's ECG, EDA, and RSP response as the task progresses. 

Thanks!
Attachments
bird_al.iqx (412 views, 36.00 KB)
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lomberaa - Thursday, December 14, 2017
Hello all,

Can someone assist me with setting up event markers from Inquisit to Acqknowledge for the Behavioral Indicator of Resiliency to Distress (BIRD) task. Attached is the work we have done so far, we are not sure how to signal the two distinct trials for block 2. We are trying to set up event markers from Inquisit to Acqknowledge whenever a new trial is started (trial 1, trial 2a, trial2b, trial3) that way we can monitor the children's ECG, EDA, and RSP response as the task progresses. 

Thanks!

You should be able to do something like this:

<block level2A>
/ onblockbegin = [
    trial.freebird2.resetstimulusframes();
    trial.freebird2.insertstimulusframe(port.targetsignal2A, 1);
]

/onblockbegin = [values.level = "2A"]
/onblockbegin = [values.countcorrect = 0; values.counttrials = 0]
/onblockbegin = [values.dotlatency = values.meandotlatency]
/trials = [1 = freebird2]
/onblockend = [values.level2acorrect = values.countcorrect]
/timeout = parameters.level2A_timeout
</block>

<block level2B>
/ onblockbegin = [
    trial.freebird2.resetstimulusframes();
    trial.freebird2.insertstimulusframe(port.targetsignal2B, 1);
]

/onblockbegin = [values.level = "2B"]
/onblockbegin = [values.countcorrect = 0; values.counttrials = 0]
/onblockbegin = [values.dotlatency = values.challengelatency]
/trials = [1 = freebird2]
/onblockend = [values.level2bcorrect = values.countcorrect]
/onblockend = [values.level2correct = values.level2acorrect + values.level2bcorrect]
/timeout = parameters.level2B_timeout
</block>

lomberaa
lomberaa
Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)
Group: Forum Members
Posts: 5, Visits: 27
So here is the updated script. We ran into an issue, the markers are not displaying on acqknowledge. Any chance you can also assist with that?
Attachments
bird_al.iqx (450 views, 37.00 KB)
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lomberaa - Friday, December 15, 2017
So here is the updated script. We ran into an issue, the markers are not displaying on acqknowledge. Any chance you can also assist with that?

#1: Which of the markers? All of them, or just specific ones?

Note that

<port targetsignal1>
/ port = lpt3
/ subport = data
/ items = ("00000000")
</port>

doesn't raise any signal, it sets all bits to low.

Also, were any of the markers ever showing up, e.g. before you made the changes to the script's <block> elements?

#2: Confirm that your <port> settings are correct via Tools -> Parallel Port Monitor...
I.e. ensure that the LPT you're using in fact port number 3 and that Acqknowledge registers signals sent via the Parallel Port Monitor.

(Side note: Your computer should have a "true" parallel port, USB-to-Parallel adapters usually will not work.)

lomberaa
lomberaa
Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)
Group: Forum Members
Posts: 5, Visits: 27
Dave - Friday, December 15, 2017
lomberaa - Friday, December 15, 2017
So here is the updated script. We ran into an issue, the markers are not displaying on acqknowledge. Any chance you can also assist with that?

#1: Which of the markers? All of them, or just specific ones?

Note that

<port targetsignal1>
/ port = lpt3
/ subport = data
/ items = ("00000000")
</port>

doesn't raise any signal, it sets all bits to low.

Also, were any of the markers ever showing up, e.g. before you made the changes to the script's <block> elements?

#2: Confirm that your <port> settings are correct via Tools -> Parallel Port Monitor...
I.e. ensure that the LPT you're using in fact port number 3 and that Acqknowledge registers signals sent via the Parallel Port Monitor.

(Side note: Your computer should have a "true" parallel port, USB-to-Parallel adapters usually will not work.)

Hi Dave,

Happy New Year!

We did have a parallel port installed to our computer and when looking at "device manger" as well as the parallel port monitor, the location is LPT3. When testing through the data register, Acqknowledge is not triggered. We have not been able to have any markers show up, even before the changing to blocks.


Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lomberaa - Monday, January 8, 2018
Dave - Friday, December 15, 2017
lomberaa - Friday, December 15, 2017
So here is the updated script. We ran into an issue, the markers are not displaying on acqknowledge. Any chance you can also assist with that?

#1: Which of the markers? All of them, or just specific ones?

Note that

<port targetsignal1>
/ port = lpt3
/ subport = data
/ items = ("00000000")
</port>

doesn't raise any signal, it sets all bits to low.

Also, were any of the markers ever showing up, e.g. before you made the changes to the script's <block> elements?

#2: Confirm that your <port> settings are correct via Tools -> Parallel Port Monitor...
I.e. ensure that the LPT you're using in fact port number 3 and that Acqknowledge registers signals sent via the Parallel Port Monitor.

(Side note: Your computer should have a "true" parallel port, USB-to-Parallel adapters usually will not work.)

Hi Dave,

Happy New Year!

We did have a parallel port installed to our computer and when looking at "device manger" as well as the parallel port monitor, the location is LPT3. When testing through the data register, Acqknowledge is not triggered. We have not been able to have any markers show up, even before the changing to blocks.


Have you double-checked that the receiving end, i.e. BIOPAC / Acqknowledge, is configured correctly to receive signals on the respective channels?

The steps at https://www.biopac.com/knowledge-base/interface-with-visual-presentation-programs/ under the "Printer Port Setup" heading would be those applicable to interfacing with Inquisit as well.

The "Troubleshooting" section outlines some things to double-check on the receiving BIOPAC / Acqknowledge end (acquisition rate, channels configured for acquisition, etc.).

Edited 6 Years Ago by Dave
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
Dave - Monday, January 8, 2018
lomberaa - Monday, January 8, 2018
Dave - Friday, December 15, 2017
lomberaa - Friday, December 15, 2017
So here is the updated script. We ran into an issue, the markers are not displaying on acqknowledge. Any chance you can also assist with that?

#1: Which of the markers? All of them, or just specific ones?

Note that

<port targetsignal1>
/ port = lpt3
/ subport = data
/ items = ("00000000")
</port>

doesn't raise any signal, it sets all bits to low.

Also, were any of the markers ever showing up, e.g. before you made the changes to the script's <block> elements?

#2: Confirm that your <port> settings are correct via Tools -> Parallel Port Monitor...
I.e. ensure that the LPT you're using in fact port number 3 and that Acqknowledge registers signals sent via the Parallel Port Monitor.

(Side note: Your computer should have a "true" parallel port, USB-to-Parallel adapters usually will not work.)

Hi Dave,

Happy New Year!

We did have a parallel port installed to our computer and when looking at "device manger" as well as the parallel port monitor, the location is LPT3. When testing through the data register, Acqknowledge is not triggered. We have not been able to have any markers show up, even before the changing to blocks.


Have you double-checked that the receiving end, i.e. BIOPAC / Acqknowledge, is configured correctly to receive signals on the respective channels?

The steps at https://www.biopac.com/knowledge-base/interface-with-visual-presentation-programs/ under the "Printer Port Setup" heading would be those applicable to interfacing with Inquisit as well.

The "Troubleshooting" section outlines some things to double-check on the receiving BIOPAC / Acqknowledge end (acquisition rate, channels configured for acquisition, etc.).

One more thing to try in addition: Windows can be a bit iffy with respect to allowing access to low-level resources such as the parallel port, i.e. under some circumstances insufficient user access permissions can get in the way. To test, (1) make sure you are logged in with an account that's a member of the "local administrators" group, and (2) explicitly execute Inquisit with administrative privileges (right-click the Inquisit icon and select "Run as administrator" from the context menu).

lomberaa
lomberaa
Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)Partner Member (514 reputation)
Group: Forum Members
Posts: 5, Visits: 27
Hi Dave,

Thank you for the help! It turned out to be an issue with administrative privileges. So we have tested the port and signals are being sent to AcqKnowledge but we have run into one more speed bump and were wondering if you could assist us? 

Inquisit it signalling AcqKnowledge each time the one of the stimuli are chosen to free the bird. We were looking for Inquisit to send a signal at the start of each trial - is there a way to remedy this?

Best
Attachments
bird_al.iqx (411 views, 37.00 KB)
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lomberaa - Wednesday, January 24, 2018
Hi Dave,

Thank you for the help! It turned out to be an issue with administrative privileges. So we have tested the port and signals are being sent to AcqKnowledge but we have run into one more speed bump and were wondering if you could assist us? 

Inquisit it signalling AcqKnowledge each time the one of the stimuli are chosen to free the bird. We were looking for Inquisit to send a signal at the start of each trial - is there a way to remedy this?

Best

> We were looking for Inquisit to send a signal at the start of each trial

That's essentially what the script does as far as I can see. Here

<block level1>
/onblockbegin = [trial.freebird1.insertstimulusframe(port.targetsignal1,1)]
...
/trials = [1 = freebird1]
...
</block>

you are inserting a port signal into <trial freebird1>'s 1st stimulus presentation frame; i.e. this is essentially as if you were stating

<trial freebird1>
...
/stimulusframes = [1 = cage, box1, box2, box3, box4, box5, box6, box7, box8, box9, box10, dot, scorelabel, scorebox, score, targetsignal1]
/validresponse = (box1, box2, box3, box4, box5, box6, box7, box8, box9, box10)
...
</trial>

directly. (You're also doing the same thing in the <block>s / <trial>s for the other levels.)

The signal is raised at the start of the trial, there is no waiting or delay until any response occurs. (If you wanted to send signals upon response, you would use /responsemessage attributes in the <trial>).

You're not sending any signals in the success and failure trials, though. Perhaps that is what you mean / want to do?

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
Dave - Wednesday, January 24, 2018
lomberaa - Wednesday, January 24, 2018
Hi Dave,

Thank you for the help! It turned out to be an issue with administrative privileges. So we have tested the port and signals are being sent to AcqKnowledge but we have run into one more speed bump and were wondering if you could assist us? 

Inquisit it signalling AcqKnowledge each time the one of the stimuli are chosen to free the bird. We were looking for Inquisit to send a signal at the start of each trial - is there a way to remedy this?

Best

> We were looking for Inquisit to send a signal at the start of each trial

That's essentially what the script does as far as I can see. Here

<block level1>
/onblockbegin = [trial.freebird1.insertstimulusframe(port.targetsignal1,1)]
...
/trials = [1 = freebird1]
...
</block>

you are inserting a port signal into <trial freebird1>'s 1st stimulus presentation frame; i.e. this is essentially as if you were stating

<trial freebird1>
...
/stimulusframes = [1 = cage, box1, box2, box3, box4, box5, box6, box7, box8, box9, box10, dot, scorelabel, scorebox, score, targetsignal1]
/validresponse = (box1, box2, box3, box4, box5, box6, box7, box8, box9, box10)
...
</trial>

directly. (You're also doing the same thing in the <block>s / <trial>s for the other levels.)

The signal is raised at the start of the trial, there is no waiting or delay until any response occurs. (If you wanted to send signals upon response, you would use /responsemessage attributes in the <trial>).

You're not sending any signals in the success and failure trials, though. Perhaps that is what you mean / want to do?

Thinking about this some more, perhaps I'm misunderstanding what you consider to be a "trial": In Inquisit terms, each time the participant is presented with the choice screen (click the box with the green dot to free the bird) is a trial. I.e., each block or "level" in the task encompasses many individual trials, as many as the participant can complete within the allotted time for each level.

Maybe what you want to do is only send a signal _once_ at the start of each "level" or block? If so, you can do that in a number of ways.

#1: With

<block level1>
/onblockbegin = [trial.freebird1.insertstimulusframe(port.targetsignal1,1)]
...
/trials = [1 = freebird1]
...
</block>

already in place, adding

<trial freebird1>
/ ontrialend = [
    trial.freebird1.resetstimulusframes();
]

...
</trial>

to <trial freebird1> would result in only the 1st instance of the trial within <block level1> sending a signal. The reset basically reverts the injection of the port stimulus at the end of the 1st instance of <trial freebird1>. The remaining instances would not send any signal.

#2: Alternatively, you could forego any stimulus insertions and resets, and simply set up a dedicated <trial> element that does nothing but send the port signal, and run a single instance of that trial at the very start of the respective block. I.e.

<block level1>
/onblockbegin = [values.level = "1"]
/onblockbegin = [values.countcorrect = 0; values.counttrials = 0]
/onblockbegin = [values.dotlatency = parameters.startdotlatency]
/trials = [1 = level1signal; 2 = freebird1]
/timeout = parameters.level1_timeout
/onblockend = [values.meandotlatency = expressions.mean_dotlatency; values.challengelatency = values.meandotlatency/2]
/onblockend = [values.level1correct = values.countcorrect]
</block>

with

<trial level1signal>
/ stimulusframes = [1=targetsignal1]
/ validresponse = (0)
/ trialduration = 50
/ recorddata = false
</trial>

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search