Skip to content

Commit b89bb2e

Browse files
committed
Add JSON setting for making trial fail on timeout
1 parent dc57e59 commit b89bb2e

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

Assets/Scripts/ScriptableObjects/SessionSettings.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ public enum FeedbackType
8080
public float fixationBreakCheckStart;
8181
public float fixationBreakCheckDuration;
8282

83+
public bool timeoutIsFailure;
84+
8385
// IMPORTANT: Any changes made in this function should be cross-checked with both the corresponding JSON
8486
// and the UXF data-points collection
8587
public void LoadFromUxfJson()
@@ -142,6 +144,8 @@ public void LoadFromUxfJson()
142144
inputDuration = Convert.ToSingle(sessionSettingsDict["InputDurationMs"]);
143145
fixationBreakCheckStart = Convert.ToSingle(sessionSettingsDict["FixationBreakCheckStartMs"]);
144146
fixationBreakCheckDuration = Convert.ToSingle(sessionSettingsDict["FixationBreakCheckDurationMs"]);
147+
148+
timeoutIsFailure = Convert.ToBoolean(sessionSettingsDict["FailOnTimeout"]);
145149
}
146150

147151
private static List<float> ParseFloatList(IEnumerable<object> list)

Assets/Scripts/Trial Manager/TrialManager.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ public void BeginTrial(Trial trial)
100100
trialNumUpdateEvent.Raise();
101101
percentageCorrectUpdateEvent.Raise();
102102

103-
104103
_isTrialSuccessful = false;
105104
_isFixationBroken = false;
106105
soundPlayer.PlayStartSound();
@@ -146,12 +145,9 @@ public void EndTrial(Trial trial)
146145
correctPercentage.value = Convert.ToSingle(_numCorrect) / Convert.ToSingle(trialCount.value) * 100.0f;
147146
percentageCorrectUpdateEvent.Raise();
148147

149-
if (_inputReceived && trialCount.value <= sessionSettings.numTrials)
150-
{
151-
Session.instance.CurrentBlock.CreateTrial();
148+
if (_inputReceived || sessionSettings.timeoutIsFailure)
152149
trialCount.value++;
153-
}
154-
150+
155151
StartCoroutine(FeedBackRoutine());
156152
}
157153

@@ -283,10 +279,13 @@ private IEnumerator FeedBackRoutine()
283279
feedbackModule.HideFeedback();
284280

285281
// Redo trial if timed-out
286-
if(!_inputReceived)
282+
if(!_inputReceived && !sessionSettings.timeoutIsFailure)
287283
BeginTrial(Session.instance.CurrentTrial);
288284
else if (trialCount.value <= sessionSettings.numTrials)
285+
{
286+
Session.instance.CurrentBlock.CreateTrial();
289287
Session.instance.BeginNextTrial();
288+
}
290289
else
291290
Session.instance.End();
292291
}

Assets/StreamingAssets/TEMPLATE.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
"CoherenceStaircase": [0, 40, 80, 120, 160, 200, 240, 280, 320, 338],
5454
"StaircaseIncreaseThreshold": 3,
5555
"StaircaseDecreaseThreshold": 1,
56+
57+
"FailOnTimeout": true
5658
}
5759

5860
"DebugSettings": {

0 commit comments

Comments
 (0)