Ospan error


Author
Message
MilanSchoenmaeckers
MilanSchoenmaeckers
Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)
Group: Forum Members
Posts: 25, Visits: 79
Hi, 

I have started collecting my data but unfortunately, some of my participants end up in an endless loop. When I, however, run the script with the default monkey, everything works fine. 
Does this have something do to with the online version of the webscript, or have I simply overlooked some error in my script?

The block that I am referring to is the following:

<block PracBoth_Acting>
/ onblockbegin = [if(script.subjectid!="debug")
    {text.currentsetsize.textcolor=white; text.letterstrings.textcolor=white;
    text.mathdebug.textcolor=silver; text.mathtimeout.textcolor=silver;
    text.scoredebug.textcolor=white}]
/ onblockbegin = [text.MathFeedback.textcolor=black; text.MathScore.textcolor=red]
/ onblockbegin = [values.mathcurrenterrors=0; values.mathaccuracy=0; values.mathaccerrors=0;
    values.mathtotalerrors=0; values.mathspeederrors=0; values.mathproblemcount=0;
    values.lettercount=0; values.correctletters=0; values.currentsetsize=0;
    values.recallcount=0; values.recalledletters=""; values.totalrecalledsets=0;
    values.totalcorrectletters=0; values.ospan=0]
/ stop = [values.stopblock==1]
/ onblockend = [values.stopblock=0]
/ trials = [1=instructions_practice_acting; 2=InitSetSize]
</block>

<list PracBothSetSize_Acting>
/ items = (2,2,2)
/ selectionmode = sequence
/ selectionrate = trial
</list>

Any help is much appreciated!
Attachments
automatedospan_final_version_1.iqx (225 views, 61.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
MilanSchoenmaeckers - 3/23/2020
Hi, 

I have started collecting my data but unfortunately, some of my participants end up in an endless loop. When I, however, run the script with the default monkey, everything works fine. 
Does this have something do to with the online version of the webscript, or have I simply overlooked some error in my script?

The block that I am referring to is the following:

<block PracBoth_Acting>
/ onblockbegin = [if(script.subjectid!="debug")
    {text.currentsetsize.textcolor=white; text.letterstrings.textcolor=white;
    text.mathdebug.textcolor=silver; text.mathtimeout.textcolor=silver;
    text.scoredebug.textcolor=white}]
/ onblockbegin = [text.MathFeedback.textcolor=black; text.MathScore.textcolor=red]
/ onblockbegin = [values.mathcurrenterrors=0; values.mathaccuracy=0; values.mathaccerrors=0;
    values.mathtotalerrors=0; values.mathspeederrors=0; values.mathproblemcount=0;
    values.lettercount=0; values.correctletters=0; values.currentsetsize=0;
    values.recallcount=0; values.recalledletters=""; values.totalrecalledsets=0;
    values.totalcorrectletters=0; values.ospan=0]
/ stop = [values.stopblock==1]
/ onblockend = [values.stopblock=0]
/ trials = [1=instructions_practice_acting; 2=InitSetSize]
</block>

<list PracBothSetSize_Acting>
/ items = (2,2,2)
/ selectionmode = sequence
/ selectionrate = trial
</list>

Any help is much appreciated!

It has nothing to do with online vs offline. There's a mistake lurking somewhere.

Take a data set from one of the participants that ended up in the endless loop and that should tell you where / what to look for.
MilanSchoenmaeckers
MilanSchoenmaeckers
Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)
Group: Forum Members
Posts: 25, Visits: 79
Dave - 3/23/2020
MilanSchoenmaeckers - 3/23/2020
Hi, 

I have started collecting my data but unfortunately, some of my participants end up in an endless loop. When I, however, run the script with the default monkey, everything works fine. 
Does this have something do to with the online version of the webscript, or have I simply overlooked some error in my script?

The block that I am referring to is the following:

<block PracBoth_Acting>
/ onblockbegin = [if(script.subjectid!="debug")
    {text.currentsetsize.textcolor=white; text.letterstrings.textcolor=white;
    text.mathdebug.textcolor=silver; text.mathtimeout.textcolor=silver;
    text.scoredebug.textcolor=white}]
/ onblockbegin = [text.MathFeedback.textcolor=black; text.MathScore.textcolor=red]
/ onblockbegin = [values.mathcurrenterrors=0; values.mathaccuracy=0; values.mathaccerrors=0;
    values.mathtotalerrors=0; values.mathspeederrors=0; values.mathproblemcount=0;
    values.lettercount=0; values.correctletters=0; values.currentsetsize=0;
    values.recallcount=0; values.recalledletters=""; values.totalrecalledsets=0;
    values.totalcorrectletters=0; values.ospan=0]
/ stop = [values.stopblock==1]
/ onblockend = [values.stopblock=0]
/ trials = [1=instructions_practice_acting; 2=InitSetSize]
</block>

<list PracBothSetSize_Acting>
/ items = (2,2,2)
/ selectionmode = sequence
/ selectionrate = trial
</list>

Any help is much appreciated!

It has nothing to do with online vs offline. There's a mistake lurking somewhere.

Take a data set from one of the participants that ended up in the endless loop and that should tell you where / what to look for.

So I can see in my data that the participant was stuck in block 11. This is the PracBoth_Acting block. I think that the mistake is that I am not using a specified letter trial for this block, as is used in the PracBoth block. In my PracBoth_Acting block, I am using the same letter trial that is used in the next Acting block. 
So my guess is that I have to make a letter trial that is only designed for the PracBoth_Acting block, just like I made one for the PracBoth block.

This branch is used in the show_letter_practice trial for the PracBoth block.
/ branch = [if(script.currentblock=="PracLetter")trial.show_letter_practice else trial.InitMathProblem01]

This branch is used in the Acting block, but I am also using it for the PracBoth_Acting block. 
/ branch = [if(values.lettercount==values.currentsetsize)trial.recall_letter_acting]

Is there anyway that I can check this, because when I run the script there appears to be no loop, whilst my participants do experience this?
Attachments
automatedospan_final_version_1.iqx (228 views, 61.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
MilanSchoenmaeckers - 3/23/2020
Dave - 3/23/2020
MilanSchoenmaeckers - 3/23/2020
Hi, 

I have started collecting my data but unfortunately, some of my participants end up in an endless loop. When I, however, run the script with the default monkey, everything works fine. 
Does this have something do to with the online version of the webscript, or have I simply overlooked some error in my script?

The block that I am referring to is the following:

<block PracBoth_Acting>
/ onblockbegin = [if(script.subjectid!="debug")
    {text.currentsetsize.textcolor=white; text.letterstrings.textcolor=white;
    text.mathdebug.textcolor=silver; text.mathtimeout.textcolor=silver;
    text.scoredebug.textcolor=white}]
/ onblockbegin = [text.MathFeedback.textcolor=black; text.MathScore.textcolor=red]
/ onblockbegin = [values.mathcurrenterrors=0; values.mathaccuracy=0; values.mathaccerrors=0;
    values.mathtotalerrors=0; values.mathspeederrors=0; values.mathproblemcount=0;
    values.lettercount=0; values.correctletters=0; values.currentsetsize=0;
    values.recallcount=0; values.recalledletters=""; values.totalrecalledsets=0;
    values.totalcorrectletters=0; values.ospan=0]
/ stop = [values.stopblock==1]
/ onblockend = [values.stopblock=0]
/ trials = [1=instructions_practice_acting; 2=InitSetSize]
</block>

<list PracBothSetSize_Acting>
/ items = (2,2,2)
/ selectionmode = sequence
/ selectionrate = trial
</list>

Any help is much appreciated!

It has nothing to do with online vs offline. There's a mistake lurking somewhere.

Take a data set from one of the participants that ended up in the endless loop and that should tell you where / what to look for.

So I can see in my data that the participant was stuck in block 11. This is the PracBoth_Acting block. I think that the mistake is that I am not using a specified letter trial for this block, as is used in the PracBoth block. In my PracBoth_Acting block, I am using the same letter trial that is used in the next Acting block. 
So my guess is that I have to make a letter trial that is only designed for the PracBoth_Acting block, just like I made one for the PracBoth block.

This branch is used in the show_letter_practice trial for the PracBoth block.
/ branch = [if(script.currentblock=="PracLetter")trial.show_letter_practice else trial.InitMathProblem01]

This branch is used in the Acting block, but I am also using it for the PracBoth_Acting block. 
/ branch = [if(values.lettercount==values.currentsetsize)trial.recall_letter_acting]

Is there anyway that I can check this, because when I run the script there appears to be no loop, whilst my participants do experience this?

<trial recall_letter_acting>
/ ontrialbegin = [values.recallcount+=1]
/ ontrialbegin = [if(values.recallcount==1)values.recalldelay=500 else values.recalldelay=0]
/ pretrialpause = values.recalldelay
/ stimulusframes = [1=WhiteScreen, F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit, recalledletters, recallprompt, letterstrings]
/ validresponse = (F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit)
/ monkeyresponse = ("F", "H", "J", "K", "exit")
/ ontrialend = [if(trial.recall_letter.response!="exit" && trial.recall_letter.response!="clear")
    {item.RecalledLetters.item=trial.recall_letter.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter.response)}]
/ ontrialend = [if(trial.recall_letter.response=="clear")
    {clear(item.RecalledLetters); values.recalledletters=""}]
/ responsemessage = (F, clickF, 150)
/ responsemessage = (H, clickH, 150)
/ responsemessage = (J, clickJ, 150)
/ responsemessage = (K, clickK, 150)
/ responsemessage = (L, clickL, 150)
/ responsemessage = (N, clickN, 150)
/ responsemessage = (P, clickP, 150)
/ responsemessage = (Q, clickQ, 150)
/ responsemessage = (R, clickR, 150)
/ responsemessage = (S, clickS, 150)
/ responsemessage = (T, clickT, 150)
/ responsemessage = (Y, clickY, 150)
/ responsemessage = (clear, clickclear, 150)
/ responsemessage = (exit, clickexit, 150)
/ responsemessage = (_, click_, 150)
/ branch = [if(trial.recall_letter_acting.response=="exit")trial.letter_feedback_acting else trial.recall_letter]
/ recorddata = false
</trial>

is wrong and you likely have several other mistakes along the same lines in your script. Double-check everything.


MilanSchoenmaeckers
MilanSchoenmaeckers
Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)
Group: Forum Members
Posts: 25, Visits: 79
Dave - 3/23/2020
MilanSchoenmaeckers - 3/23/2020
Dave - 3/23/2020
MilanSchoenmaeckers - 3/23/2020
Hi, 

I have started collecting my data but unfortunately, some of my participants end up in an endless loop. When I, however, run the script with the default monkey, everything works fine. 
Does this have something do to with the online version of the webscript, or have I simply overlooked some error in my script?

The block that I am referring to is the following:

<block PracBoth_Acting>
/ onblockbegin = [if(script.subjectid!="debug")
    {text.currentsetsize.textcolor=white; text.letterstrings.textcolor=white;
    text.mathdebug.textcolor=silver; text.mathtimeout.textcolor=silver;
    text.scoredebug.textcolor=white}]
/ onblockbegin = [text.MathFeedback.textcolor=black; text.MathScore.textcolor=red]
/ onblockbegin = [values.mathcurrenterrors=0; values.mathaccuracy=0; values.mathaccerrors=0;
    values.mathtotalerrors=0; values.mathspeederrors=0; values.mathproblemcount=0;
    values.lettercount=0; values.correctletters=0; values.currentsetsize=0;
    values.recallcount=0; values.recalledletters=""; values.totalrecalledsets=0;
    values.totalcorrectletters=0; values.ospan=0]
/ stop = [values.stopblock==1]
/ onblockend = [values.stopblock=0]
/ trials = [1=instructions_practice_acting; 2=InitSetSize]
</block>

<list PracBothSetSize_Acting>
/ items = (2,2,2)
/ selectionmode = sequence
/ selectionrate = trial
</list>

Any help is much appreciated!

It has nothing to do with online vs offline. There's a mistake lurking somewhere.

Take a data set from one of the participants that ended up in the endless loop and that should tell you where / what to look for.

So I can see in my data that the participant was stuck in block 11. This is the PracBoth_Acting block. I think that the mistake is that I am not using a specified letter trial for this block, as is used in the PracBoth block. In my PracBoth_Acting block, I am using the same letter trial that is used in the next Acting block. 
So my guess is that I have to make a letter trial that is only designed for the PracBoth_Acting block, just like I made one for the PracBoth block.

This branch is used in the show_letter_practice trial for the PracBoth block.
/ branch = [if(script.currentblock=="PracLetter")trial.show_letter_practice else trial.InitMathProblem01]

This branch is used in the Acting block, but I am also using it for the PracBoth_Acting block. 
/ branch = [if(values.lettercount==values.currentsetsize)trial.recall_letter_acting]

Is there anyway that I can check this, because when I run the script there appears to be no loop, whilst my participants do experience this?

<trial recall_letter_acting>
/ ontrialbegin = [values.recallcount+=1]
/ ontrialbegin = [if(values.recallcount==1)values.recalldelay=500 else values.recalldelay=0]
/ pretrialpause = values.recalldelay
/ stimulusframes = [1=WhiteScreen, F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit, recalledletters, recallprompt, letterstrings]
/ validresponse = (F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit)
/ monkeyresponse = ("F", "H", "J", "K", "exit")
/ ontrialend = [if(trial.recall_letter.response!="exit" && trial.recall_letter.response!="clear")
    {item.RecalledLetters.item=trial.recall_letter.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter.response)}]
/ ontrialend = [if(trial.recall_letter.response=="clear")
    {clear(item.RecalledLetters); values.recalledletters=""}]
/ responsemessage = (F, clickF, 150)
/ responsemessage = (H, clickH, 150)
/ responsemessage = (J, clickJ, 150)
/ responsemessage = (K, clickK, 150)
/ responsemessage = (L, clickL, 150)
/ responsemessage = (N, clickN, 150)
/ responsemessage = (P, clickP, 150)
/ responsemessage = (Q, clickQ, 150)
/ responsemessage = (R, clickR, 150)
/ responsemessage = (S, clickS, 150)
/ responsemessage = (T, clickT, 150)
/ responsemessage = (Y, clickY, 150)
/ responsemessage = (clear, clickclear, 150)
/ responsemessage = (exit, clickexit, 150)
/ responsemessage = (_, click_, 150)
/ branch = [if(trial.recall_letter_acting.response=="exit")trial.letter_feedback_acting else trial.recall_letter]
/ recorddata = false
</trial>

is wrong and you likely have several other mistakes along the same lines in your script. Double-check everything.


You were right!

I've changed it up to this:

<trial recall_letter_acting>
/ ontrialbegin = [values.recallcount+=1]
/ ontrialbegin = [if(values.recallcount==1)values.recalldelay=500 else values.recalldelay=0]
/ pretrialpause = values.recalldelay
/ stimulusframes = [1=WhiteScreen, F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit, recalledletters, recallprompt, letterstrings]
/ validresponse = (F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit)
/ monkeyresponse = ("F", "H", "J", "K", "exit")
/ ontrialend = [if(trial.recall_letter_acting.response!="exit" && trial.recall_letter_acting.response!="clear")
    {item.RecalledLetters.item=trial.recall_letter_acting.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter.response)}]
/ ontrialend = [if(trial.recall_letter_acting.response=="clear")
    {clear(item.RecalledLetters); values.recalledletters=""}]
/ responsemessage = (F, clickF, 150)
/ responsemessage = (H, clickH, 150)
/ responsemessage = (J, clickJ, 150)
/ responsemessage = (K, clickK, 150)
/ responsemessage = (L, clickL, 150)
/ responsemessage = (N, clickN, 150)
/ responsemessage = (P, clickP, 150)
/ responsemessage = (Q, clickQ, 150)
/ responsemessage = (R, clickR, 150)
/ responsemessage = (S, clickS, 150)
/ responsemessage = (T, clickT, 150)
/ responsemessage = (Y, clickY, 150)
/ responsemessage = (clear, clickclear, 150)
/ responsemessage = (exit, clickexit, 150)
/ responsemessage = (_, click_, 150)
/ branch = [if(trial.recall_letter_acting.response=="exit")trial.letter_feedback_acting else trial.recall_letter_acting]
/ recorddata = true
</trial>

However, the problem is that when I run thin recall_letter_acting, participants cannot click any of the letters. Only the exit button works. I copy pasted this recall_letter_acting from the already existing and working recall_letter. So where should I look for in the script to change this issues?
Attachments
automatedospan_final_version_1.iqx (206 views, 61.00 KB)
MilanSchoenmaeckers
MilanSchoenmaeckers
Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)
Group: Forum Members
Posts: 25, Visits: 79
MilanSchoenmaeckers - 3/24/2020
Dave - 3/23/2020
MilanSchoenmaeckers - 3/23/2020
Dave - 3/23/2020
MilanSchoenmaeckers - 3/23/2020
Hi, 

I have started collecting my data but unfortunately, some of my participants end up in an endless loop. When I, however, run the script with the default monkey, everything works fine. 
Does this have something do to with the online version of the webscript, or have I simply overlooked some error in my script?

The block that I am referring to is the following:

<block PracBoth_Acting>
/ onblockbegin = [if(script.subjectid!="debug")
    {text.currentsetsize.textcolor=white; text.letterstrings.textcolor=white;
    text.mathdebug.textcolor=silver; text.mathtimeout.textcolor=silver;
    text.scoredebug.textcolor=white}]
/ onblockbegin = [text.MathFeedback.textcolor=black; text.MathScore.textcolor=red]
/ onblockbegin = [values.mathcurrenterrors=0; values.mathaccuracy=0; values.mathaccerrors=0;
    values.mathtotalerrors=0; values.mathspeederrors=0; values.mathproblemcount=0;
    values.lettercount=0; values.correctletters=0; values.currentsetsize=0;
    values.recallcount=0; values.recalledletters=""; values.totalrecalledsets=0;
    values.totalcorrectletters=0; values.ospan=0]
/ stop = [values.stopblock==1]
/ onblockend = [values.stopblock=0]
/ trials = [1=instructions_practice_acting; 2=InitSetSize]
</block>

<list PracBothSetSize_Acting>
/ items = (2,2,2)
/ selectionmode = sequence
/ selectionrate = trial
</list>

Any help is much appreciated!

It has nothing to do with online vs offline. There's a mistake lurking somewhere.

Take a data set from one of the participants that ended up in the endless loop and that should tell you where / what to look for.

So I can see in my data that the participant was stuck in block 11. This is the PracBoth_Acting block. I think that the mistake is that I am not using a specified letter trial for this block, as is used in the PracBoth block. In my PracBoth_Acting block, I am using the same letter trial that is used in the next Acting block. 
So my guess is that I have to make a letter trial that is only designed for the PracBoth_Acting block, just like I made one for the PracBoth block.

This branch is used in the show_letter_practice trial for the PracBoth block.
/ branch = [if(script.currentblock=="PracLetter")trial.show_letter_practice else trial.InitMathProblem01]

This branch is used in the Acting block, but I am also using it for the PracBoth_Acting block. 
/ branch = [if(values.lettercount==values.currentsetsize)trial.recall_letter_acting]

Is there anyway that I can check this, because when I run the script there appears to be no loop, whilst my participants do experience this?

<trial recall_letter_acting>
/ ontrialbegin = [values.recallcount+=1]
/ ontrialbegin = [if(values.recallcount==1)values.recalldelay=500 else values.recalldelay=0]
/ pretrialpause = values.recalldelay
/ stimulusframes = [1=WhiteScreen, F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit, recalledletters, recallprompt, letterstrings]
/ validresponse = (F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit)
/ monkeyresponse = ("F", "H", "J", "K", "exit")
/ ontrialend = [if(trial.recall_letter.response!="exit" && trial.recall_letter.response!="clear")
    {item.RecalledLetters.item=trial.recall_letter.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter.response)}]
/ ontrialend = [if(trial.recall_letter.response=="clear")
    {clear(item.RecalledLetters); values.recalledletters=""}]
/ responsemessage = (F, clickF, 150)
/ responsemessage = (H, clickH, 150)
/ responsemessage = (J, clickJ, 150)
/ responsemessage = (K, clickK, 150)
/ responsemessage = (L, clickL, 150)
/ responsemessage = (N, clickN, 150)
/ responsemessage = (P, clickP, 150)
/ responsemessage = (Q, clickQ, 150)
/ responsemessage = (R, clickR, 150)
/ responsemessage = (S, clickS, 150)
/ responsemessage = (T, clickT, 150)
/ responsemessage = (Y, clickY, 150)
/ responsemessage = (clear, clickclear, 150)
/ responsemessage = (exit, clickexit, 150)
/ responsemessage = (_, click_, 150)
/ branch = [if(trial.recall_letter_acting.response=="exit")trial.letter_feedback_acting else trial.recall_letter]
/ recorddata = false
</trial>

is wrong and you likely have several other mistakes along the same lines in your script. Double-check everything.


You were right!

I've changed it up to this:

<trial recall_letter_acting>
/ ontrialbegin = [values.recallcount+=1]
/ ontrialbegin = [if(values.recallcount==1)values.recalldelay=500 else values.recalldelay=0]
/ pretrialpause = values.recalldelay
/ stimulusframes = [1=WhiteScreen, F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit, recalledletters, recallprompt, letterstrings]
/ validresponse = (F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit)
/ monkeyresponse = ("F", "H", "J", "K", "exit")
/ ontrialend = [if(trial.recall_letter_acting.response!="exit" && trial.recall_letter_acting.response!="clear")
    {item.RecalledLetters.item=trial.recall_letter_acting.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter.response)}]
/ ontrialend = [if(trial.recall_letter_acting.response=="clear")
    {clear(item.RecalledLetters); values.recalledletters=""}]
/ responsemessage = (F, clickF, 150)
/ responsemessage = (H, clickH, 150)
/ responsemessage = (J, clickJ, 150)
/ responsemessage = (K, clickK, 150)
/ responsemessage = (L, clickL, 150)
/ responsemessage = (N, clickN, 150)
/ responsemessage = (P, clickP, 150)
/ responsemessage = (Q, clickQ, 150)
/ responsemessage = (R, clickR, 150)
/ responsemessage = (S, clickS, 150)
/ responsemessage = (T, clickT, 150)
/ responsemessage = (Y, clickY, 150)
/ responsemessage = (clear, clickclear, 150)
/ responsemessage = (exit, clickexit, 150)
/ responsemessage = (_, click_, 150)
/ branch = [if(trial.recall_letter_acting.response=="exit")trial.letter_feedback_acting else trial.recall_letter_acting]
/ recorddata = true
</trial>

However, the problem is that when I run thin recall_letter_acting, participants cannot click any of the letters. Only the exit button works. I copy pasted this recall_letter_acting from the already existing and working recall_letter. So where should I look for in the script to change this issues?

Immediately after posting this I saw that I didn't update the following line correctly:

/ ontrialend = [if(trial.recall_letter_acting.response!="exit" && trial.recall_letter_acting.response!="clear")
  {item.RecalledLetters.item=trial.recall_letter_acting.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter.response)}]

I updated it to this:
/ ontrialend = [if(trial.recall_letter_acting.response!="exit" && trial.recall_letter_acting.response!="clear")
  {item.RecalledLetters.item=trial.recall_letter_acting.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter_acting.response)}]

Now the trial works like it should work.

Is there a way to check (besides asking the participants when they are doing it) whether participants still get into the loop? Because when I run the script now, everything works fine and there appears to be no loop?
MilanSchoenmaeckers
MilanSchoenmaeckers
Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)
Group: Forum Members
Posts: 25, Visits: 79
MilanSchoenmaeckers - 3/24/2020
MilanSchoenmaeckers - 3/24/2020
Dave - 3/23/2020
MilanSchoenmaeckers - 3/23/2020
Dave - 3/23/2020
MilanSchoenmaeckers - 3/23/2020
Hi, 

I have started collecting my data but unfortunately, some of my participants end up in an endless loop. When I, however, run the script with the default monkey, everything works fine. 
Does this have something do to with the online version of the webscript, or have I simply overlooked some error in my script?

The block that I am referring to is the following:

<block PracBoth_Acting>
/ onblockbegin = [if(script.subjectid!="debug")
    {text.currentsetsize.textcolor=white; text.letterstrings.textcolor=white;
    text.mathdebug.textcolor=silver; text.mathtimeout.textcolor=silver;
    text.scoredebug.textcolor=white}]
/ onblockbegin = [text.MathFeedback.textcolor=black; text.MathScore.textcolor=red]
/ onblockbegin = [values.mathcurrenterrors=0; values.mathaccuracy=0; values.mathaccerrors=0;
    values.mathtotalerrors=0; values.mathspeederrors=0; values.mathproblemcount=0;
    values.lettercount=0; values.correctletters=0; values.currentsetsize=0;
    values.recallcount=0; values.recalledletters=""; values.totalrecalledsets=0;
    values.totalcorrectletters=0; values.ospan=0]
/ stop = [values.stopblock==1]
/ onblockend = [values.stopblock=0]
/ trials = [1=instructions_practice_acting; 2=InitSetSize]
</block>

<list PracBothSetSize_Acting>
/ items = (2,2,2)
/ selectionmode = sequence
/ selectionrate = trial
</list>

Any help is much appreciated!

It has nothing to do with online vs offline. There's a mistake lurking somewhere.

Take a data set from one of the participants that ended up in the endless loop and that should tell you where / what to look for.

So I can see in my data that the participant was stuck in block 11. This is the PracBoth_Acting block. I think that the mistake is that I am not using a specified letter trial for this block, as is used in the PracBoth block. In my PracBoth_Acting block, I am using the same letter trial that is used in the next Acting block. 
So my guess is that I have to make a letter trial that is only designed for the PracBoth_Acting block, just like I made one for the PracBoth block.

This branch is used in the show_letter_practice trial for the PracBoth block.
/ branch = [if(script.currentblock=="PracLetter")trial.show_letter_practice else trial.InitMathProblem01]

This branch is used in the Acting block, but I am also using it for the PracBoth_Acting block. 
/ branch = [if(values.lettercount==values.currentsetsize)trial.recall_letter_acting]

Is there anyway that I can check this, because when I run the script there appears to be no loop, whilst my participants do experience this?

<trial recall_letter_acting>
/ ontrialbegin = [values.recallcount+=1]
/ ontrialbegin = [if(values.recallcount==1)values.recalldelay=500 else values.recalldelay=0]
/ pretrialpause = values.recalldelay
/ stimulusframes = [1=WhiteScreen, F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit, recalledletters, recallprompt, letterstrings]
/ validresponse = (F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit)
/ monkeyresponse = ("F", "H", "J", "K", "exit")
/ ontrialend = [if(trial.recall_letter.response!="exit" && trial.recall_letter.response!="clear")
    {item.RecalledLetters.item=trial.recall_letter.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter.response)}]
/ ontrialend = [if(trial.recall_letter.response=="clear")
    {clear(item.RecalledLetters); values.recalledletters=""}]
/ responsemessage = (F, clickF, 150)
/ responsemessage = (H, clickH, 150)
/ responsemessage = (J, clickJ, 150)
/ responsemessage = (K, clickK, 150)
/ responsemessage = (L, clickL, 150)
/ responsemessage = (N, clickN, 150)
/ responsemessage = (P, clickP, 150)
/ responsemessage = (Q, clickQ, 150)
/ responsemessage = (R, clickR, 150)
/ responsemessage = (S, clickS, 150)
/ responsemessage = (T, clickT, 150)
/ responsemessage = (Y, clickY, 150)
/ responsemessage = (clear, clickclear, 150)
/ responsemessage = (exit, clickexit, 150)
/ responsemessage = (_, click_, 150)
/ branch = [if(trial.recall_letter_acting.response=="exit")trial.letter_feedback_acting else trial.recall_letter]
/ recorddata = false
</trial>

is wrong and you likely have several other mistakes along the same lines in your script. Double-check everything.


You were right!

I've changed it up to this:

<trial recall_letter_acting>
/ ontrialbegin = [values.recallcount+=1]
/ ontrialbegin = [if(values.recallcount==1)values.recalldelay=500 else values.recalldelay=0]
/ pretrialpause = values.recalldelay
/ stimulusframes = [1=WhiteScreen, F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit, recalledletters, recallprompt, letterstrings]
/ validresponse = (F, H, J, K, L, N, P, Q, R, S, T, Y, _, clear, exit)
/ monkeyresponse = ("F", "H", "J", "K", "exit")
/ ontrialend = [if(trial.recall_letter_acting.response!="exit" && trial.recall_letter_acting.response!="clear")
    {item.RecalledLetters.item=trial.recall_letter_acting.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter.response)}]
/ ontrialend = [if(trial.recall_letter_acting.response=="clear")
    {clear(item.RecalledLetters); values.recalledletters=""}]
/ responsemessage = (F, clickF, 150)
/ responsemessage = (H, clickH, 150)
/ responsemessage = (J, clickJ, 150)
/ responsemessage = (K, clickK, 150)
/ responsemessage = (L, clickL, 150)
/ responsemessage = (N, clickN, 150)
/ responsemessage = (P, clickP, 150)
/ responsemessage = (Q, clickQ, 150)
/ responsemessage = (R, clickR, 150)
/ responsemessage = (S, clickS, 150)
/ responsemessage = (T, clickT, 150)
/ responsemessage = (Y, clickY, 150)
/ responsemessage = (clear, clickclear, 150)
/ responsemessage = (exit, clickexit, 150)
/ responsemessage = (_, click_, 150)
/ branch = [if(trial.recall_letter_acting.response=="exit")trial.letter_feedback_acting else trial.recall_letter_acting]
/ recorddata = true
</trial>

However, the problem is that when I run thin recall_letter_acting, participants cannot click any of the letters. Only the exit button works. I copy pasted this recall_letter_acting from the already existing and working recall_letter. So where should I look for in the script to change this issues?

Immediately after posting this I saw that I didn't update the following line correctly:

/ ontrialend = [if(trial.recall_letter_acting.response!="exit" && trial.recall_letter_acting.response!="clear")
  {item.RecalledLetters.item=trial.recall_letter_acting.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter.response)}]

I updated it to this:
/ ontrialend = [if(trial.recall_letter_acting.response!="exit" && trial.recall_letter_acting.response!="clear")
  {item.RecalledLetters.item=trial.recall_letter_acting.response; values.recalledletters=concat(values.recalledletters, trial.recall_letter_acting.response)}]

Now the trial works like it should work.

Is there a way to check (besides asking the participants when they are doing it) whether participants still get into the loop? Because when I run the script now, everything works fine and there appears to be no loop?

The problem has been resolved. Thanks again for your input!
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search