' This experiment has been generated with E-Prime version: 2.0.10.356 ' ' This file generated with E-Studio interface. ' E-Prime Copyright © 1996-2015 Psychology Software Tools. ' ALL RIGHTS RESERVED ' ' Legal use of this experiment script requires a full E-Prime or Runtime License. ' ' ' ' ' ' Option CStrings On Dim ebContext as Context '-------------------------------------------------------------------------- ' Class Declarations '-------------------------------------------------------------------------- '-------------------------------------------------------------------------- ' Instance Declarations '-------------------------------------------------------------------------- Dim Display As DisplayDevice Dim Keyboard As KeyboardDevice Dim Mouse As MouseDevice Dim Sound As SoundDevice Dim SRBOX As SRBOXDevice Dim SessionProc As Procedure Dim SessionProc_nObject As Long Dim SessionProc_bCanExit As Boolean Dim SessionProc_theCollection As RteCollection Dim SessionProc_theInputObject As RteRunnableInputObject Dim Instruktionen1 As Slide Dim Instruktionen1EchoClients As EchoClientCollection Dim Instruktionen1_State As SlideState Dim Instruktionen1_SlideText As SlideText Dim Instruktionen2 As Slide Dim Instruktionen2EchoClients As EchoClientCollection Dim Instruktionen2_State As SlideState Dim Instruktionen2_SlideText As SlideText Dim Instruktionen2_SlideImage As SlideImage Dim FingerAufNeutral As Slide Dim FingerAufNeutralEchoClients As EchoClientCollection Dim FingerAufNeutral_State As SlideState Dim FingerAufNeutral_SlideText As SlideText Dim FingerAufNeutral_SlideImage As SlideImage ' List Attribute Constants Const attrib_weight = ebUCase_W & ebLCase_e & ebLCase_i & ebLCase_g & ebLCase_h & ebLCase_t Const attrib_nested = ebUCase_N & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_e & ebLCase_d Const attrib_procedure = ebUCase_P & ebLCase_r & ebLCase_o & ebLCase_c & ebLCase_e & ebLCase_d & ebLCase_u & ebLCase_r & ebLCase_e Const attrib_trialtyp = ebUCase_T & ebLCase_r & ebLCase_i & ebLCase_a & ebLCase_l & ebLCase_t & ebLCase_y & ebLCase_p Const attrib_reaktion = ebUCase_R & ebLCase_e & ebLCase_a & ebLCase_k & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n Const attrib_nblocktyp = ebLCase_n & ebUCase_B & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k & ebLCase_t & ebLCase_y & ebLCase_p Const attrib_reset = ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_t Const attrib_testblock = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_b & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k Const attrib_fehlertrigger = ebUCase_F & ebLCase_e & ebLCase_h & ebLCase_l & ebLCase_e & ebLCase_r & ebLCase_t & ebLCase_r & ebLCase_i & ebLCase_g & ebLCase_g & ebLCase_e & ebLCase_r Dim Trainingstrialliste As List Dim Trialprog As Procedure Dim Trialprog_nObject As Long Dim Trialprog_bCanExit As Boolean Dim Trialprog_theCollection As RteCollection Dim Trialprog_theInputObject As RteRunnableInputObject Dim Fixation As Slide Dim Fixation_State As SlideState Dim Fixation_SlideText As SlideText Dim Target As Slide Dim TargetEchoClients As EchoClientCollection Dim Target_State As SlideState Dim Target_SlideText As SlideText Dim Target_SlideImage As SlideImage Dim Feedback As Slide Dim FeedbackEchoClients As EchoClientCollection Dim Feedback_State As SlideState Dim Feedback_SlideText As SlideText Dim Feedback_SlideImage As SlideImage Dim Trainingsblockliste As List Dim Trainingsblockprog As Procedure Dim Trainingsblockprog_nObject As Long Dim Trainingsblockprog_bCanExit As Boolean Dim Trainingsblockprog_theCollection As RteCollection Dim Trainingsblockprog_theInputObject As RteRunnableInputObject Dim Eins As Slide Dim EinsEchoClients As EchoClientCollection Dim Eins_State As SlideState Dim Eins_SlideImage As SlideImage Dim Zwei As Slide Dim ZweiEchoClients As EchoClientCollection Dim Zwei_State As SlideState Dim Zwei_SlideImage As SlideImage Dim Drei As Slide Dim DreiEchoClients As EchoClientCollection Dim Drei_State As SlideState Dim Drei_SlideImage As SlideImage Dim Vier As Slide Dim VierEchoClients As EchoClientCollection Dim Vier_State As SlideState Dim Vier_SlideImage As SlideImage Dim InstruktionenBlocktyp As Slide Dim InstruktionenBlocktypEchoClients As EchoClientCollection Dim InstruktionenBlocktyp_State As SlideState Dim InstruktionenBlocktyp_SlideText As SlideText Dim InstruktionenBlocktyp_SlideImage As SlideImage Dim FingerAufNeutralTraining As Slide Dim FingerAufNeutralTrainingEchoClients As EchoClientCollection Dim FingerAufNeutralTraining_State As SlideState Dim FingerAufNeutralTraining_SlideText As SlideText Dim FingerAufNeutralTraining_SlideImage As SlideImage Dim Baustein1500msFixation As Slide Dim Baustein1500msFixation_State As SlideState Dim Baustein1500msFixation_SlideText As SlideText Dim FeedbackTrainingsblock As Slide Dim FeedbackTrainingsblockEchoClients As EchoClientCollection Dim FeedbackTrainingsblock_State As SlideState Dim FeedbackTrainingsblock_SlideText As SlideText Dim Instruktionen3 As Slide Dim Instruktionen3EchoClients As EchoClientCollection Dim Instruktionen3_State As SlideState Dim Instruktionen3_SlideText As SlideText Dim Testliste As List Dim Testprog As Procedure Dim Testprog_nObject As Long Dim Testprog_bCanExit As Boolean Dim Testprog_theCollection As RteCollection Dim Testprog_theInputObject As RteRunnableInputObject Dim Ruhemessung As Slide Dim Ruhemessung_State As SlideState Dim Ruhemessung_SlideText As SlideText Dim Testblockliste As List Dim Testblockprog As Procedure Dim Testblockprog_nObject As Long Dim Testblockprog_bCanExit As Boolean Dim Testblockprog_theCollection As RteCollection Dim Testblockprog_theInputObject As RteRunnableInputObject Dim InstruktionenBlocktypTest As Slide Dim InstruktionenBlocktypTestEchoClients As EchoClientCollection Dim InstruktionenBlocktypTest_State As SlideState Dim InstruktionenBlocktypTest_SlideText As SlideText Dim Baustein1500msFixationTest As Slide Dim Baustein1500msFixationTest_State As SlideState Dim Baustein1500msFixationTest_SlideText As SlideText Dim Testtrialliste As List Dim TestTrialprog As Procedure Dim TestTrialprog_nObject As Long Dim TestTrialprog_bCanExit As Boolean Dim TestTrialprog_theCollection As RteCollection Dim TestTrialprog_theInputObject As RteRunnableInputObject Dim FixationTest As Slide Dim FixationTest_State As SlideState Dim FixationTest_SlideText As SlideText Dim TargetTest As Slide Dim TargetTestEchoClients As EchoClientCollection Dim TargetTest_State As SlideState Dim TargetTest_SlideText As SlideText Dim TargetTest_SlideImage As SlideImage Dim FeedbackTestblock As Slide Dim FeedbackTestblockEchoClients As EchoClientCollection Dim FeedbackTestblock_State As SlideState Dim FeedbackTestblock_SlideText As SlideText Dim Instruktionen4 As Slide Dim Instruktionen4EchoClients As EchoClientCollection Dim Instruktionen4_State As SlideState Dim Instruktionen4_SlideText As SlideText Dim Pause As Slide Dim Pause_State As SlideState Dim Pause_SlideText As SlideText Dim Verabschiedung As Slide Dim VerabschiedungEchoClients As EchoClientCollection Dim Verabschiedung_State As SlideState Dim Verabschiedung_SlideText As SlideText '-------------------------------------------------------------------------- ' Package Declare Script '-------------------------------------------------------------------------- '-------------------------------------------------------------------------- ' User Script - BEGIN '-------------------------------------------------------------------------- 'Variablen, die korrekte Antworten erfassen 1 und zählen 2 '1 Dim KorrektN0 As String Dim KorrektN1 As String Dim KorrektN2 As String Dim KorrektN3 As String '2 Dim nKorrekt As Integer Dim KorrektProzent As Integer Dim NullKorrekt As Integer Dim EinsKorrekt As Integer Dim ZweiKorrekt As Integer Dim DreiKorrekt As Integer Dim NullKorrektProzent As Integer Dim EinsKorrektProzent As Integer Dim ZweiKorrektProzent As Integer Dim DreiKorrektProzent As Integer 'Variablen die die interne Blockzeit/ internen Blockframes definieren Dim BlockStart As Single Dim RelativeOnsetTime As Single Dim RelativeOnsetTimeNMin1 As Single Dim MittlereTasteDur As Integer Dim RelativeOnsetFrames As Integer ' -------------------------------------------------------------------- ' write Trigger ' -------------------------------------------------------------------- Sub WriteTrigger(c As Context, iValue As Integer) WritePort &HD050,0 Sleep 10 WritePort &HD050, iValue Sleep 10 ' falls 2 Trigger hintereinander kommen End Sub '-------------------------------------------------------------------------- ' User Script - END '-------------------------------------------------------------------------- '-------------------------------------------------------------------------- ' Package Global Script '-------------------------------------------------------------------------- '-------------------------------------------------------------------------- ' Implementation '-------------------------------------------------------------------------- Sub SessionProc_Run(c as Context) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Instruktionen1.ResetLoggingProperties Instruktionen2.ResetLoggingProperties Vier.ResetLoggingProperties Eins.ResetLoggingProperties Drei.ResetLoggingProperties Zwei.ResetLoggingProperties Instruktionen3.ResetLoggingProperties Instruktionen4.ResetLoggingProperties Verabschiedung.ResetLoggingProperties '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - OpenFiles BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'VP-Nummer speichern Dim iVPN As Integer iVPN = c.getattrib("Subject") 'Textdateien generieren Dim sFileTyp1 As String Dim sFileTyp2 As String Dim sFileTyp3 As String Dim sFileTyp4 As String Dim sFileTyp5 As String Dim sFileTyp6 As String Dim sFileTyp7 As String Dim sFileTyp8 As String Dim sFileTyp9 As String Dim sFileTyp10 As String Dim sFileTyp11 As String Dim sFileTyp12 As String Dim sFileTyp13 As String Dim sFileTyp14 As String Dim sFileTyp15 As String Dim sFileTyp16 As String Dim sFileTyp17 As String Dim sFileTyp18 As String sFileTyp1 = "nBack-TriggerOnsets-" & iVPN & ".txt" sFileTyp2 = "nBack-Trigger1Dur-" & iVPN & ".txt" sFileTyp3 = "nBack-Trigger2Dur-" & iVPN & ".txt" sFileTyp4 = "nBack-Trigger3Dur-" & iVPN & ".txt" sFileTyp5 = "nBack-Trigger4Dur-" & iVPN & ".txt" sFileTyp6 = "nBack-Trigger5Dur-" & iVPN & ".txt" sFileTyp7 = "nBack-Trigger6Dur-" & iVPN & ".txt" sFileTyp8 = "nBack-Trigger7Dur-" & iVPN & ".txt" sFileTyp9 = "nBack-Trigger8Dur-" & iVPN & ".txt" sFileTyp10 = "nBack-Trigger9Dur-" & iVPN & ".txt" sFileTyp11 = "nBack-Trigger10Dur-" & iVPN & ".txt" sFileTyp12 = "nBack-Trigger11Dur-" & iVPN & ".txt" sFileTyp13 = "nBack-Trigger12Dur-" & iVPN & ".txt" sFileTyp14 = "nBack-Trigger13Dur-" & iVPN & ".txt" sFileTyp15 = "nBack-Trigger14Dur-" & iVPN & ".txt" sFileTyp16 = "nBack-Trigger15Dur-" & iVPN & ".txt" sFileTyp17 = "nBack-Trigger16Dur-" & iVPN & ".txt" sFileTyp18 = "nBack-Trigger17Dur-" & iVPN & ".txt" Open sFileTyp1 For Output As #1 Open sFileTyp2 For Output As #2 Open sFileTyp3 For Output As #3 Open sFileTyp4 For Output As #4 Open sFileTyp5 For Output As #5 Open sFileTyp6 For Output As #6 Open sFileTyp7 For Output As #7 Open sFileTyp8 For Output As #8 Open sFileTyp9 For Output As #9 Open sFileTyp10 For Output As #10 Open sFileTyp11 For Output As #11 Open sFileTyp12 For Output As #12 Open sFileTyp13 For Output As #13 Open sFileTyp14 For Output As #14 Open sFileTyp15 For Output As #15 Open sFileTyp16 For Output As #16 Open sFileTyp17 For Output As #17 Open sFileTyp18 For Output As #18 ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - OpenFiles END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteAllTriggers BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Write All Triggers Print #1, "1.10"; 1; "9" Print #1, "1.40"; 2; "11" Print #1, "1.70"; 3; "13" Print #1, "2.00"; 4; "16" Print #1, "2.30"; 5; "18" Print #1, "2.60"; 6; "20" Print #1, "2.90"; 7; "23" Print #1, "3.20"; 8; "25" Print #1, "3.50"; 9; "27" Print #1, "3.80"; 10; "30" Print #1, "4.10"; 11; "32" Print #1, "4.40"; 12; "34" Print #1, "4.70"; 13; "37" Print #1, "5.00"; 14; "39" Print #1, "5.30"; 15; "41" Print #1, "5.60"; 16; "44" Print #1, "5.90"; 17; "46" 'Write All Trigger Durations Print #2, 10 Print #3, 10 Print #4, 10 Print #5, 10 Print #6, 10 Print #7, 10 Print #8, 10 Print #9, 10 Print #10, 10 Print #11, 10 Print #12, 10 Print #13, 10 Print #14, 10 Print #15, 10 Print #16, 10 Print #17, 10 Print #18, 10 ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteAllTriggers END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteDurationsForAllFixedTriggers BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Durations 1-Back Blöcke Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 Print #2, 36000 Print #2, 10 'Durations 3-Back Blöcke Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 Print #3, 36000 Print #3, 10 'Durations Ruhemessung Print #4, 15000 Print #4, 15000 Print #4, 15000 Print #4, 15000 Print #4, 15000 'Durations Fixation Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 2000 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 Print #5, 500 'Durations Target Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #6, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #7, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #8, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 Print #9, 1000 ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteDurationsForAllFixedTriggers END ''''''''''''''''''''''''''''''''''''''''''''' Instruktionen1.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then Instruktionen1EchoClients.RemoveAll Instruktionen1.InputMasks.Add Keyboard.CreateInputMask(ebBraceOpen & ebUCase_S & ebUCase_P & ebUCase_A & ebUCase_C & ebUCase_E & ebBraceClose, ebEmptyText, CLng(Instruktionen1.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Instruktionen1.Run ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - GoToStart BEGIN ''''''''''''''''''''''''''''''''''''''''''''' GoTo Start ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - GoToStart END ''''''''''''''''''''''''''''''''''''''''''''' Instruktionen2.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then Instruktionen2EchoClients.RemoveAll Instruktionen2.InputMasks.Add Keyboard.CreateInputMask(ebBraceOpen & ebUCase_S & ebUCase_P & ebUCase_A & ebUCase_C & ebUCase_E & ebBraceClose, ebEmptyText, CLng(Instruktionen2.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Instruktionen2.Run Vier.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then VierEchoClients.RemoveAll Vier.InputMasks.Add Keyboard.CreateInputMask(ebDigit_4, ebEmptyText, CLng(Vier.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Vier.Run Eins.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then EinsEchoClients.RemoveAll Eins.InputMasks.Add Keyboard.CreateInputMask(ebDigit_8, ebEmptyText, CLng(Eins.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Eins.Run Drei.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then DreiEchoClients.RemoveAll Drei.InputMasks.Add Keyboard.CreateInputMask(ebDigit_2, ebEmptyText, CLng(Drei.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Drei.Run Zwei.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then ZweiEchoClients.RemoveAll Zwei.InputMasks.Add Keyboard.CreateInputMask(ebDigit_6, ebEmptyText, CLng(Zwei.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Zwei.Run Trainingsblockliste.Run c Instruktionen3.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then Instruktionen3EchoClients.RemoveAll Instruktionen3.InputMasks.Add Keyboard.CreateInputMask(ebBraceOpen & ebUCase_S & ebUCase_P & ebUCase_A & ebUCase_C & ebUCase_E & ebBraceClose, ebEmptyText, CLng(Instruktionen3.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Instruktionen3.Run '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Start: If Err.Number = ebInputAccepted Then Err.Clear Resume StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Instruktionen4.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then Instruktionen4EchoClients.RemoveAll Instruktionen4.InputMasks.Add Keyboard.CreateInputMask(ebBraceOpen & ebUCase_S & ebUCase_P & ebUCase_A & ebUCase_C & ebUCase_E & ebBraceClose, ebEmptyText, CLng(Instruktionen4.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Instruktionen4.Run Testliste.Run c ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - BerechnungKorrektGesamt BEGIN ''''''''''''''''''''''''''''''''''''''''''''' NullKorrektProzent = NullKorrekt*100/288 EinsKorrektProzent = EinsKorrekt*100/288 ZweiKorrektProzent = ZweiKorrekt*100/288 DreiKorrektProzent = DreiKorrekt*100/288 c.SetAttrib "DisplayKorrektNull", NullKorrektProzent c.SetAttrib "DisplayKorrektEins", EinsKorrektProzent c.SetAttrib "DisplayKorrektZwei", ZweiKorrektProzent c.SetAttrib "DisplayKorrektDrei", DreiKorrektProzent ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - BerechnungKorrektGesamt END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - CloseFiles BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Textdateien werden geschlossen. Close #1 Close #2 Close #3 Close #4 Close #5 Close #6 Close #7 Close #8 Close #9 Close #10 Close #11 Close #12 Close #13 Close #14 Close #15 Close #16 Close #17 Close #18 ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - CloseFiles END ''''''''''''''''''''''''''''''''''''''''''''' Select Case Verabschiedung.ActiveState Case ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t 'Text1 Set Verabschiedung_SlideText = CSlideText(Verabschiedung.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) Verabschiedung_SlideText.Text = "Geschafft! Das war der letzte Experimentalblock.\n\nSie haben insgesamt in " &_ c.GetAttrib("DisplayKorrektEins") &_ "% aller Durchgänge der 1-Back Blöcke richtig reagiert.\n\nSie haben insgesamt in " &_ c.GetAttrib("DisplayKorrektDrei") &_ "% aller Durchgänge der 3-Back Blöcke richtig reagiert.\n\n\nVielen Dank für Ihre Teilnahme! Bitte wenden sie sich an den Versuchsleiter." Set Verabschiedung_SlideText = Nothing End Select Verabschiedung.InputMasks.Reset If Mouse.GetState() = ebStateOpen Then VerabschiedungEchoClients.RemoveAll Verabschiedung.InputMasks.Add Mouse.CreateInputMask(ebBraceOpen & ebUCase_A & ebUCase_N & ebUCase_Y & ebBraceClose, ebEmptyText, CLng(Verabschiedung.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "") End If Verabschiedung.Run ''''''''''''''''''''''''''''''''''''''''''''' 'End Of Procedure Clean-Up ''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' We are processing any pending input masks. ' To prevent this code from being generated, set the Procedure object's '.ProcessPendingInputMasks property to None. ' ' Loop until a condition allows us to complete this Procedure Do 'Any requests for termination? If GetTerminateMode() = ebTerminate Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Exit Do ElseIf GetTerminateMode() = ebTerminateJump Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Err.Raise ebInputAccepted End If 'NOTE: This Procedure is the root procedure in the Experiment Object. ' No script generated here for Object.InputMasks.IsPending() 'Ready for the next object? If Clock.Read >= GetNextTargetOnsetTime() Then Exit Do End If 'Conditional Exit? If GetConditionalExitState() <> 0 Then Exit Do End If If GetNextTargetOnsetTime() - Clock.Read > 4 Then Sleep 4 DoEvents Loop ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Instruktionen1.EndOfProcedure Instruktionen2.EndOfProcedure Vier.EndOfProcedure Eins.EndOfProcedure Drei.EndOfProcedure Zwei.EndOfProcedure Instruktionen3.EndOfProcedure Instruktionen4.EndOfProcedure Verabschiedung.EndOfProcedure c.Log '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End Sub Sub Trialprog_Run(c as Context) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Fixation.ResetLoggingProperties FingerAufNeutralTraining.ResetLoggingProperties Target.ResetLoggingProperties Feedback.ResetLoggingProperties '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - Targetauswahl BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Target nach Trialtyp auswählen If c.GetAttrib("Trialtyp") = 1 Then Target.ActiveState = "Target1" If c.GetAttrib("Trialtyp") = 2 Then Target.ActiveState = "Target2" If c.GetAttrib("Trialtyp") = 3 Then Target.ActiveState = "Target3" If c.GetAttrib("Trialtyp") = 4 Then Target.ActiveState = "Target4" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - Targetauswahl END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - KorrekteReaktionDefinieren BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die Variablen, die die Zielreaktionen der letzten Trials speichern werden aktualisiert KorrektN3 = KorrektN2 KorrektN2 = KorrektN1 KorrektN1 = KorrektN0 KorrektN0 = c.GetAttrib("Reaktion") 'Die Korrekte Antwort wird dem aktuellen Blocktyp entsprechend ausgewählt If c.GetAttrib("nBlocktyp") = 0 Then c.SetAttrib "Korrekt", KorrektN0 If c.GetAttrib("nBlocktyp") = 1 Then c.SetAttrib "Korrekt", KorrektN1 If c.GetAttrib("nBlocktyp") = 2 Then c.SetAttrib "Korrekt", KorrektN2 If c.GetAttrib("nBlocktyp") = 3 Then c.SetAttrib "Korrekt", KorrektN3 ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - KorrekteReaktionDefinieren END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - ResetCheckMittlereTaste BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Per Default wird davon aufgegangen, dass die mittlere Taste gedrückt wird c.SetAttrib "mDruck", "1" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - ResetCheckMittlereTaste END ''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - TryAgain BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' TryAgain: If Err.Number = ebInputAccepted Then Err.Clear Resume TryAgainResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If TryAgainResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - TryAgain END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Select Case Fixation.ActiveState Case ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t 'Text3 Set Fixation_SlideText = CSlideText(Fixation.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_3)) Fixation_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set Fixation_SlideText = Nothing End Select Fixation.Run ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - CheckMittlereTaste BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die Warnung "Finger auf Neurtal" wird übersprungen, falls die mittlere Taste gedrück ist. If Keyboard.GetKeyState("5") = 1 Or Keyboard.GetKeyState("{NUMPAD5}") = 1 Then GoTo Weiter Else c.SetAttrib "mDruck", "0" End If ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - CheckMittlereTaste END ''''''''''''''''''''''''''''''''''''''''''''' FingerAufNeutralTraining.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then FingerAufNeutralTrainingEchoClients.RemoveAll FingerAufNeutralTraining.InputMasks.Add Keyboard.CreateInputMask(ebDigit_5, ebEmptyText, CLng(FingerAufNeutralTraining.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If FingerAufNeutralTraining.Run ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - GoToTryAgain BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Fixation wiederholen GoTo TryAgain ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - GoToTryAgain END ''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Weiter BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Weiter: If Err.Number = ebInputAccepted Then Err.Clear Resume WeiterResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If WeiterResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Weiter END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Select Case Target.ActiveState Case ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t & ebDigit_1 'Text1 Set Target_SlideText = CSlideText(Target.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) Target_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set Target_SlideText = Nothing Case ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t & ebDigit_2 'Text1 Set Target_SlideText = CSlideText(Target.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) Target_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set Target_SlideText = Nothing Case ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t & ebDigit_3 'Text1 Set Target_SlideText = CSlideText(Target.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) Target_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set Target_SlideText = Nothing Case ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t & ebDigit_4 'Text1 Set Target_SlideText = CSlideText(Target.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) Target_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set Target_SlideText = Nothing End Select Target.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then TargetEchoClients.RemoveAll Target.InputMasks.Add Keyboard.CreateInputMask(ebDigit_8 & ebDigit_6 & ebDigit_2 & ebDigit_4, c.GetAttrib(ebUCase_K & ebLCase_o & ebLCase_r & ebLCase_r & ebLCase_e & ebLCase_k & ebLCase_t), CLng(Target.Duration), CLng(ebDigit_1), ebEndResponseActionNone, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Target.Run c.SetAttrib Target.Name & ebDot & ebLogNameOnsetDelay, Target.OnsetDelay c.SetAttrib Target.Name & ebDot & ebLogNameOnsetTime, Target.OnsetTime c.SetAttrib Target.Name & ebDot & ebLogNameDurationError, Target.DurationError c.SetAttrib Target.Name & ebDot & ebLogNameRTTime, Target.RTTime c.SetAttrib Target.Name & ebDot & ebLogNameACC, Target.ACC c.SetAttrib Target.Name & ebDot & ebLogNameRT, Target.RT c.SetAttrib Target.Name & ebDot & ebLogNameRESP, Target.RESP c.SetAttrib Target.Name & ebDot & ebLogNameCRESP, Target.CRESP c.SetAttrib Target.Name & ebDot & ebLogNameOnsetToOnsetTime, Target.OnsetToOnsetTime ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - FeedbackvorbereitungA BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die korrekten Antworten werden gezählt. nKorrekt = nKorrekt + Target.ACC*c.GetAttrib("mDruck") 'Bei richtiger Antwort wird das Feedback übersprungen. If Target.ACC = 1 Then GoTo Trialende 'Das Feedback wird entsprechend dem Blocktyp und danach, ob falsch oder zu langsam geantwortet wurde ausgewählt. If c.GetAttrib("nBlocktyp") = 0 And Target.RESP <> "" Then Feedback.ActiveState = "FalschNull" If c.GetAttrib("nBlocktyp") = 0 And Target.RESP = "" Then Feedback.ActiveState = "LangsamNull" If c.GetAttrib("nBlocktyp") = 1 And Target.RESP <> "" Then Feedback.ActiveState = "FalschEins" If c.GetAttrib("nBlocktyp") = 1 And Target.RESP = "" Then Feedback.ActiveState = "LangsamEins" If c.GetAttrib("nBlocktyp") = 2 And Target.RESP <> "" Then Feedback.ActiveState = "FalschZwei" If c.GetAttrib("nBlocktyp") = 2 And Target.RESP = "" Then Feedback.ActiveState = "LangsamZwei" If c.GetAttrib("nBlocktyp") = 3 And Target.RESP <> "" Then Feedback.ActiveState = "FalschDrei" If c.GetAttrib("nBlocktyp") = 3 And Target.RESP = "" Then Feedback.ActiveState = "LangsamDrei" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - FeedbackvorbereitungA END ''''''''''''''''''''''''''''''''''''''''''''' Feedback.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then FeedbackEchoClients.RemoveAll Feedback.InputMasks.Add Keyboard.CreateInputMask(ebDigit_5, ebEmptyText, CLng(Feedback.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If Feedback.Run '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Trialende BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Trialende: If Err.Number = ebInputAccepted Then Err.Clear Resume TrialendeResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If TrialendeResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Trialende END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' 'End Of Procedure Clean-Up ''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' We are processing any pending input masks. ' To prevent this code from being generated, set the Procedure object's '.ProcessPendingInputMasks property to None. ' ' Enum through the items on the Procedure and ' and determine if they are RteRunnableInputObject Trialprog_theCollection.RemoveAll For Trialprog_nObject = 1 To Trialprog.ChildObjectCount Set Trialprog_theInputObject = CRteRunnableInputObject(Rte.GetObject(Trialprog.GetChildObjectName(Trialprog_nObject))) If Not Trialprog_theInputObject Is Nothing Then Trialprog_theCollection.Add Trialprog_theInputObject Next ' Loop until a condition allows us to complete this Procedure Do 'Any requests for termination? If GetTerminateMode() = ebTerminate Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Exit Do ElseIf GetTerminateMode() = ebTerminateJump Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Err.Raise ebInputAccepted End If ' Any input mask on this procedure have pending input masks? Trialprog_bCanExit = True For Trialprog_nObject = 1 To Trialprog_theCollection.Count Set Trialprog_theInputObject = CRteRunnableInputObject(Trialprog_theCollection(Trialprog_nObject)) If Not Trialprog_theInputObject Is Nothing Then If Trialprog_theInputObject.InputMasks.IsPending() Then Trialprog_bCanExit = False Exit For End If End If Next ' No input masks If Trialprog_bCanExit Then Exit Do 'Ready for the next object? If Clock.Read >= GetNextTargetOnsetTime() Then Exit Do End If 'Conditional Exit? If GetConditionalExitState() <> 0 Then Exit Do End If If GetNextTargetOnsetTime() - Clock.Read > 4 Then Sleep 4 DoEvents Loop ' Cleanup Trialprog_theCollection.RemoveAll ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Fixation.EndOfProcedure FingerAufNeutralTraining.EndOfProcedure Target.EndOfProcedure Feedback.EndOfProcedure c.SetAttrib Target.Name & ebDot & ebLogNameOnsetDelay, Target.OnsetDelay c.SetAttrib Target.Name & ebDot & ebLogNameOnsetTime, Target.OnsetTime c.SetAttrib Target.Name & ebDot & ebLogNameDurationError, Target.DurationError c.SetAttrib Target.Name & ebDot & ebLogNameRTTime, Target.RTTime c.SetAttrib Target.Name & ebDot & ebLogNameACC, Target.ACC c.SetAttrib Target.Name & ebDot & ebLogNameRT, Target.RT c.SetAttrib Target.Name & ebDot & ebLogNameRESP, Target.RESP c.SetAttrib Target.Name & ebDot & ebLogNameCRESP, Target.CRESP c.SetAttrib Target.Name & ebDot & ebLogNameOnsetToOnsetTime, Target.OnsetToOnsetTime c.Log '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End Sub Sub Trainingsblockprog_Run(c as Context) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' InstruktionenBlocktyp.ResetLoggingProperties FingerAufNeutral.ResetLoggingProperties Baustein1500msFixation.ResetLoggingProperties FeedbackTrainingsblock.ResetLoggingProperties '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - Reset BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Alle Variablen, die korrekte Reaktionen definieren werden auf "" gesetzt KorrektN0 = c.GetAttrib("Reset") KorrektN1 = c.GetAttrib("Reset") KorrektN2 = c.GetAttrib("Reset") KorrektN3 = c.GetAttrib("Reset") 'Die Anzahl korrekt gegebener Antworten wird auf 0 gesetzt nKorrekt = 0 ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - Reset END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - AuswahlInstruktion BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die Instruktionen werden dem nachfolgenden Blocktyp entsprechend ausgewählt If c.GetAttrib("nBlocktyp") = 0 Then InstruktionenBlocktyp.ActiveState = "BlocktypN0" If c.GetAttrib("nBlocktyp") = 1 Then InstruktionenBlocktyp.ActiveState = "BlocktypN1" If c.GetAttrib("nBlocktyp") = 2 Then InstruktionenBlocktyp.ActiveState = "BlocktypN2" If c.GetAttrib("nBlocktyp") = 3 Then InstruktionenBlocktyp.ActiveState = "BlocktypN3" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - AuswahlInstruktion END ''''''''''''''''''''''''''''''''''''''''''''' InstruktionenBlocktyp.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then InstruktionenBlocktypEchoClients.RemoveAll InstruktionenBlocktyp.InputMasks.Add Keyboard.CreateInputMask(ebBraceOpen & ebUCase_S & ebUCase_P & ebUCase_A & ebUCase_C & ebUCase_E & ebBraceClose, ebEmptyText, CLng(InstruktionenBlocktyp.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If InstruktionenBlocktyp.Run FingerAufNeutral.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then FingerAufNeutralEchoClients.RemoveAll FingerAufNeutral.InputMasks.Add Keyboard.CreateInputMask(ebDigit_5, ebEmptyText, CLng(FingerAufNeutral.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If FingerAufNeutral.Run Select Case Baustein1500msFixation.ActiveState Case ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t 'Text1 Set Baustein1500msFixation_SlideText = CSlideText(Baustein1500msFixation.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) Baustein1500msFixation_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Block" Set Baustein1500msFixation_SlideText = Nothing End Select Baustein1500msFixation.Run Trainingstrialliste.Run c ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - FeedbackvorbereitungB BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die prozentuale Anzahl korrekter Anworten wird ausgerechnet und als Attribut gespeichert. KorrektProzent = nKorrekt*100/16 c.SetAttrib "DisplayKorrekt", KorrektProzent ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - FeedbackvorbereitungB END ''''''''''''''''''''''''''''''''''''''''''''' Select Case FeedbackTrainingsblock.ActiveState Case ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t 'Text1 Set FeedbackTrainingsblock_SlideText = CSlideText(FeedbackTrainingsblock.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) FeedbackTrainingsblock_SlideText.Text = "Das war der " &_ c.GetAttrib("nBlocktyp") &_ "-Back Übungsblock. Sie haben auf " &_ c.GetAttrib("DisplayKorrekt") &_ "% aller Durchgänge richtig reagiert.\n\n\nWeiter mit LEERTASTE" Set FeedbackTrainingsblock_SlideText = Nothing End Select FeedbackTrainingsblock.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then FeedbackTrainingsblockEchoClients.RemoveAll FeedbackTrainingsblock.InputMasks.Add Keyboard.CreateInputMask(ebBraceOpen & ebUCase_S & ebUCase_P & ebUCase_A & ebUCase_C & ebUCase_E & ebBraceClose, ebEmptyText, CLng(FeedbackTrainingsblock.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If FeedbackTrainingsblock.Run ''''''''''''''''''''''''''''''''''''''''''''' 'End Of Procedure Clean-Up ''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' We are processing any pending input masks. ' To prevent this code from being generated, set the Procedure object's '.ProcessPendingInputMasks property to None. ' ' Enum through the items on the Procedure and ' and determine if they are RteRunnableInputObject Trainingsblockprog_theCollection.RemoveAll For Trainingsblockprog_nObject = 1 To Trainingsblockprog.ChildObjectCount Set Trainingsblockprog_theInputObject = CRteRunnableInputObject(Rte.GetObject(Trainingsblockprog.GetChildObjectName(Trainingsblockprog_nObject))) If Not Trainingsblockprog_theInputObject Is Nothing Then Trainingsblockprog_theCollection.Add Trainingsblockprog_theInputObject Next ' Loop until a condition allows us to complete this Procedure Do 'Any requests for termination? If GetTerminateMode() = ebTerminate Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Exit Do ElseIf GetTerminateMode() = ebTerminateJump Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Err.Raise ebInputAccepted End If ' Any input mask on this procedure have pending input masks? Trainingsblockprog_bCanExit = True For Trainingsblockprog_nObject = 1 To Trainingsblockprog_theCollection.Count Set Trainingsblockprog_theInputObject = CRteRunnableInputObject(Trainingsblockprog_theCollection(Trainingsblockprog_nObject)) If Not Trainingsblockprog_theInputObject Is Nothing Then If Trainingsblockprog_theInputObject.InputMasks.IsPending() Then Trainingsblockprog_bCanExit = False Exit For End If End If Next ' No input masks If Trainingsblockprog_bCanExit Then Exit Do 'Ready for the next object? If Clock.Read >= GetNextTargetOnsetTime() Then Exit Do End If 'Conditional Exit? If GetConditionalExitState() <> 0 Then Exit Do End If If GetNextTargetOnsetTime() - Clock.Read > 4 Then Sleep 4 DoEvents Loop ' Cleanup Trainingsblockprog_theCollection.RemoveAll ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' InstruktionenBlocktyp.EndOfProcedure FingerAufNeutral.EndOfProcedure Baustein1500msFixation.EndOfProcedure FeedbackTrainingsblock.EndOfProcedure c.Log '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End Sub Sub Testprog_Run(c as Context) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Ruhemessung.ResetLoggingProperties '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - RuhemessungAus BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die Rugemessung vor dem ersten Testblock wird übersprungen. If c.GetAttrib("Testblock") = 1 Then Ruhemessung.ActiveState = "KeineRuhemessung" If c.GetAttrib("Testblock") <> 1 Then Ruhemessung.ActiveState = "Ruhemessung" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - RuhemessungAus END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerRuhe BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Nach den Testblöcken 2-6 wird ein Trigger für die Ruhemessung gesetzt. If c.GetAttrib("Testblock") <> 1 Then WriteTrigger c, 3 'Nach den Testblöcken 2-6 wird ein Trigger für die Ruhemessung geschrieben. If c.GetAttrib("Testblock") <> 1 Then Print #1, "-"; 3; "-" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerRuhe END ''''''''''''''''''''''''''''''''''''''''''''' Ruhemessung.Run Testblockliste.Run c ''''''''''''''''''''''''''''''''''''''''''''' 'End Of Procedure Clean-Up ''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' We are processing any pending input masks. ' To prevent this code from being generated, set the Procedure object's '.ProcessPendingInputMasks property to None. ' ' Enum through the items on the Procedure and ' and determine if they are RteRunnableInputObject Testprog_theCollection.RemoveAll For Testprog_nObject = 1 To Testprog.ChildObjectCount Set Testprog_theInputObject = CRteRunnableInputObject(Rte.GetObject(Testprog.GetChildObjectName(Testprog_nObject))) If Not Testprog_theInputObject Is Nothing Then Testprog_theCollection.Add Testprog_theInputObject Next ' Loop until a condition allows us to complete this Procedure Do 'Any requests for termination? If GetTerminateMode() = ebTerminate Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Exit Do ElseIf GetTerminateMode() = ebTerminateJump Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Err.Raise ebInputAccepted End If ' Any input mask on this procedure have pending input masks? Testprog_bCanExit = True For Testprog_nObject = 1 To Testprog_theCollection.Count Set Testprog_theInputObject = CRteRunnableInputObject(Testprog_theCollection(Testprog_nObject)) If Not Testprog_theInputObject Is Nothing Then If Testprog_theInputObject.InputMasks.IsPending() Then Testprog_bCanExit = False Exit For End If End If Next ' No input masks If Testprog_bCanExit Then Exit Do 'Ready for the next object? If Clock.Read >= GetNextTargetOnsetTime() Then Exit Do End If 'Conditional Exit? If GetConditionalExitState() <> 0 Then Exit Do End If If GetNextTargetOnsetTime() - Clock.Read > 4 Then Sleep 4 DoEvents Loop ' Cleanup Testprog_theCollection.RemoveAll ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Ruhemessung.EndOfProcedure c.Log '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End Sub Sub Testblockprog_Run(c as Context) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' InstruktionenBlocktypTest.ResetLoggingProperties Baustein1500msFixationTest.ResetLoggingProperties FeedbackTestblock.ResetLoggingProperties Pause.ResetLoggingProperties '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - ResetTest BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Alle Variablen, die korrekte Reaktionen definieren werden auf "" gesetzt KorrektN0 = c.GetAttrib("Reset") KorrektN1 = c.GetAttrib("Reset") KorrektN2 = c.GetAttrib("Reset") KorrektN3 = c.GetAttrib("Reset") 'Die Anzahl korrekter Antworten im aktuellen Block wird auf 0 gesetzt. nKorrekt = 0 ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - ResetTest END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - AuswahlInstruktionTest BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die Instruktionen werden entsprechend dem folgenden Blocktyp ausgewählt. If c.GetAttrib("nBlocktyp") = 0 Then InstruktionenBlocktypTest.ActiveState = "BlocktypN0" If c.GetAttrib("nBlocktyp") = 1 Then InstruktionenBlocktypTest.ActiveState = "BlocktypN1" If c.GetAttrib("nBlocktyp") = 2 Then InstruktionenBlocktypTest.ActiveState = "BlocktypN2" If c.GetAttrib("nBlocktyp") = 3 Then InstruktionenBlocktypTest.ActiveState = "BlocktypN3" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - AuswahlInstruktionTest END ''''''''''''''''''''''''''''''''''''''''''''' InstruktionenBlocktypTest.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then InstruktionenBlocktypTestEchoClients.RemoveAll InstruktionenBlocktypTest.InputMasks.Add Keyboard.CreateInputMask(ebDigit_5, ebEmptyText, CLng(InstruktionenBlocktypTest.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If InstruktionenBlocktypTest.Run ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerMittlereTaste BEGIN ''''''''''''''''''''''''''''''''''''''''''''' If Keyboard.GetKeyState("5") = 1 Or Keyboard.GetKeyState("{NUMPAD5}") = 1 Then WriteTrigger c, 13 Else WriteTrigger c, 14 End If If Keyboard.GetKeyState("5") = 1 Or Keyboard.GetKeyState("{NUMPAD5}") = 1 Then Print #1, "-"; 13; "-" Else Print #1, "-"; 14; "-" End If If Keyboard.GetKeyState("5") = 1 Or Keyboard.GetKeyState("{NUMPAD5}") = 1 Then Print #14, 1500 Else Print #15, 1500 End If ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerMittlereTaste END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerFixation BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Set Trigger Fixation WriteTrigger c, 4 'Write Trigger Fixation Print #1, "-"; 4; "-" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerFixation END ''''''''''''''''''''''''''''''''''''''''''''' Select Case Baustein1500msFixationTest.ActiveState Case ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t 'Text1 Set Baustein1500msFixationTest_SlideText = CSlideText(Baustein1500msFixationTest.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) Baustein1500msFixationTest_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set Baustein1500msFixationTest_SlideText = Nothing End Select Baustein1500msFixationTest.Run ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerBlocktyp BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Es wird ein Trigger dem nachfolgenden Blocktyp entsprechend gesetzt. If c.GetAttrib("nBlocktyp") = 1 Then WriteTrigger c, 1 If c.GetAttrib("nBlocktyp") = 3 Then WriteTrigger c, 2 'Die Reihenfolge der Blöcke wird in Dokument #1 geschrieben. If c.GetAttrib("nBlocktyp") = 1 Then Print #1, "-"; 1; "-" If c.GetAttrib("nBlocktyp") = 3 Then Print #1, "-"; 2; "-" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerBlocktyp END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - StartBlockzeitmessung BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die Zeitmessung für die Berechnung der relativen Zeit im Block wird gestartet. BlockStart = Clock.Read RelativeOnsetTime = 0 ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - StartBlockzeitmessung END ''''''''''''''''''''''''''''''''''''''''''''' Testtrialliste.Run c ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - AbleichWrittenSetTriggers BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Zeit seit Blockbeginn in Sekunden und Frames festlegen RelativeOnsetTime = (Clock.Read - BlockStart - 1000 + TargetTest.RT)/1000 RelativeOnsetFrames = RelativeOnsetTime*7.8125 c.SetAttrib "BlockOnsetTime", RelativeOnsetTime c.SetAttrib "BlockOnsetFrames", RelativeOnsetFrames 'Geschriebene und gesetzte Trigger vergleichen If c.GetAttrib("nBlocktyp") = 1 Then WriteTrigger c, 1 If c.GetAttrib("nBlocktyp") = 3 Then WriteTrigger c, 2 If c.GetAttrib("nBlocktyp") = 1 Then Print #1, c.GetAttrib("BlockOnsetTime"); 1; c.GetAttrib("BlockOnsetFrames") If c.GetAttrib("nBlocktyp") = 3 Then Print #1, c.GetAttrib("BlockOnsetTime"); 2; c.GetAttrib("BlockOnsetFrames") ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - AbleichWrittenSetTriggers END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - FeedbackvorbereitungTestB BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die Prozentzahl korrekter Durchgänge des Blocks wird berechnet und als Attribut gespeichert. KorrektProzent = nKorrekt*100/24 c.SetAttrib "DisplayKorrekt", KorrektProzent ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - FeedbackvorbereitungTestB END ''''''''''''''''''''''''''''''''''''''''''''' Select Case FeedbackTestblock.ActiveState Case ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t 'Text1 Set FeedbackTestblock_SlideText = CSlideText(FeedbackTestblock.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) FeedbackTestblock_SlideText.Text = "Das war der " &_ c.GetAttrib("nBlocktyp") &_ "-Back Übungsblock. Sie haben auf " &_ c.GetAttrib("DisplayKorrekt") &_ "% aller Durchgänge richtig reagiert.\n\n\nWeiter mit LEERTASTE" Set FeedbackTestblock_SlideText = Nothing End Select FeedbackTestblock.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then FeedbackTestblockEchoClients.RemoveAll FeedbackTestblock.InputMasks.Add Keyboard.CreateInputMask(ebBraceOpen & ebUCase_S & ebUCase_P & ebUCase_A & ebUCase_C & ebUCase_E & ebBraceClose, ebEmptyText, CLng(FeedbackTestblock.Duration), CLng(ebDigit_1), ebEndResponseActionTerminate, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If FeedbackTestblock.Run Pause.Run ''''''''''''''''''''''''''''''''''''''''''''' 'End Of Procedure Clean-Up ''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' We are processing any pending input masks. ' To prevent this code from being generated, set the Procedure object's '.ProcessPendingInputMasks property to None. ' ' Enum through the items on the Procedure and ' and determine if they are RteRunnableInputObject Testblockprog_theCollection.RemoveAll For Testblockprog_nObject = 1 To Testblockprog.ChildObjectCount Set Testblockprog_theInputObject = CRteRunnableInputObject(Rte.GetObject(Testblockprog.GetChildObjectName(Testblockprog_nObject))) If Not Testblockprog_theInputObject Is Nothing Then Testblockprog_theCollection.Add Testblockprog_theInputObject Next ' Loop until a condition allows us to complete this Procedure Do 'Any requests for termination? If GetTerminateMode() = ebTerminate Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Exit Do ElseIf GetTerminateMode() = ebTerminateJump Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Err.Raise ebInputAccepted End If ' Any input mask on this procedure have pending input masks? Testblockprog_bCanExit = True For Testblockprog_nObject = 1 To Testblockprog_theCollection.Count Set Testblockprog_theInputObject = CRteRunnableInputObject(Testblockprog_theCollection(Testblockprog_nObject)) If Not Testblockprog_theInputObject Is Nothing Then If Testblockprog_theInputObject.InputMasks.IsPending() Then Testblockprog_bCanExit = False Exit For End If End If Next ' No input masks If Testblockprog_bCanExit Then Exit Do 'Ready for the next object? If Clock.Read >= GetNextTargetOnsetTime() Then Exit Do End If 'Conditional Exit? If GetConditionalExitState() <> 0 Then Exit Do End If If GetNextTargetOnsetTime() - Clock.Read > 4 Then Sleep 4 DoEvents Loop ' Cleanup Testblockprog_theCollection.RemoveAll ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' InstruktionenBlocktypTest.EndOfProcedure Baustein1500msFixationTest.EndOfProcedure FeedbackTestblock.EndOfProcedure Pause.EndOfProcedure c.Log '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End Sub Sub TestTrialprog_Run(c as Context) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' FixationTest.ResetLoggingProperties TargetTest.ResetLoggingProperties '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Start: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_StartResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_StartResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Start END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - TargetauswahlTest BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Das Target wird nach Trialtyp ausgewählt. If c.GetAttrib("Trialtyp") = 1 Then TargetTest.ActiveState = "Target1" If c.GetAttrib("Trialtyp") = 2 Then TargetTest.ActiveState = "Target2" If c.GetAttrib("Trialtyp") = 3 Then TargetTest.ActiveState = "Target3" If c.GetAttrib("Trialtyp") = 4 Then TargetTest.ActiveState = "Target4" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - TargetauswahlTest END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - KorrekteReaktionDefinierenTest BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die Variablen, die die Zielreaktionen der letzten Trials speichern werden aktualisiert. KorrektN3 = KorrektN2 KorrektN2 = KorrektN1 KorrektN1 = KorrektN0 KorrektN0 = c.GetAttrib("Reaktion") 'Die korrekte Antwort wird dem Blocktyp entsprechend ausgewählt. If c.GetAttrib("nBlocktyp") = 0 Then c.SetAttrib "Korrekt", KorrektN0 If c.GetAttrib("nBlocktyp") = 1 Then c.SetAttrib "Korrekt", KorrektN1 If c.GetAttrib("nBlocktyp") = 2 Then c.SetAttrib "Korrekt", KorrektN2 If c.GetAttrib("nBlocktyp") = 3 Then c.SetAttrib "Korrekt", KorrektN3 ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - KorrekteReaktionDefinierenTest END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerFixation2 BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Set Trigger Fixation If KorrektN1 <> "" Then WriteTrigger c, 4 'Write Trigger Fixation If KorrektN1 <> "" Then Print #1, "-"; 4; "-" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerFixation2 END ''''''''''''''''''''''''''''''''''''''''''''' Select Case FixationTest.ActiveState Case ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t 'Text3 Set FixationTest_SlideText = CSlideText(FixationTest.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_3)) FixationTest_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set FixationTest_SlideText = Nothing End Select FixationTest.Run ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - CheckMittlereTasteTest BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Überprüfen, ob mittlere Taste gedrückt wird If Keyboard.GetKeyState("5") = 1 Or Keyboard.GetKeyState("{NUMPAD5}") = 1 Then c.SetAttrib "mDruck", "1" Else c.SetAttrib "mDruck", "0" End If ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - CheckMittlereTasteTest END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - SetOnsettimeFrames1 BEGIN ''''''''''''''''''''''''''''''''''''''''''''' If KorrektN1 <> "" Then c.SetAttrib "OnsetTime", RelativeOnsetTime If KorrektN1 <> "" Then c.SetAttrib "OnsetFrames", RelativeOnsetFrames If KorrektN1 = "" Then c.SetAttrib "OnsetTime", "-" If KorrektN1 = "" Then c.SetAttrib "OnsetFrames", "-" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - SetOnsettimeFrames1 END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteTriggerMittlereTaste2 BEGIN ''''''''''''''''''''''''''''''''''''''''''''' If Keyboard.GetKeyState("5") = 1 Or Keyboard.GetKeyState("{NUMPAD5}") = 1 Then Print #1, c.GetAttrib("OnsetTime"); 13; c.GetAttrib("OnsetFrames") Else Print #1, c.GetAttrib("OnsetTime"); 14; c.GetAttrib("OnsetFrames") End If ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteTriggerMittlereTaste2 END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerTarget BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Set Trigger Target If c.GetAttrib("Trialtyp") = 1 Then WriteTrigger c, 5 If c.GetAttrib("Trialtyp") = 2 Then WriteTrigger c, 6 If c.GetAttrib("Trialtyp") = 3 Then WriteTrigger c, 7 If c.GetAttrib("Trialtyp") = 4 Then WriteTrigger c, 8 'Write Trigger Target If c.GetAttrib("Trialtyp") = 1 Then Print #1, "-"; 5; "-" If c.GetAttrib("Trialtyp") = 2 Then Print #1, "-"; 6; "-" If c.GetAttrib("Trialtyp") = 3 Then Print #1, "-"; 7; "-" If c.GetAttrib("Trialtyp") = 4 Then Print #1, "-"; 8; "-" ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteSetTriggerTarget END ''''''''''''''''''''''''''''''''''''''''''''' Select Case TargetTest.ActiveState Case ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t & ebDigit_1 'Text1 Set TargetTest_SlideText = CSlideText(TargetTest.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) TargetTest_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set TargetTest_SlideText = Nothing Case ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t & ebDigit_2 'Text1 Set TargetTest_SlideText = CSlideText(TargetTest.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) TargetTest_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set TargetTest_SlideText = Nothing Case ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t & ebDigit_3 'Text1 Set TargetTest_SlideText = CSlideText(TargetTest.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) TargetTest_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set TargetTest_SlideText = Nothing Case ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t & ebDigit_4 'Text1 Set TargetTest_SlideText = CSlideText(TargetTest.ActiveSlideState.Objects(ebUCase_T & ebLCase_e & ebLCase_x & ebLCase_t & ebDigit_1)) TargetTest_SlideText.Text = c.GetAttrib("nBlocktyp") &_ "-Back Block" Set TargetTest_SlideText = Nothing End Select TargetTest.InputMasks.Reset If Keyboard.GetState() = ebStateOpen Then TargetTestEchoClients.RemoveAll TargetTest.InputMasks.Add Keyboard.CreateInputMask(ebDigit_8 & ebDigit_6 & ebDigit_2 & ebDigit_4, c.GetAttrib(ebUCase_K & ebLCase_o & ebLCase_r & ebLCase_r & ebLCase_e & ebLCase_k & ebLCase_t), CLng(TargetTest.Duration), CLng(ebDigit_1), ebEndResponseActionNone, CLogical(ebUCase_Y & ebLCase_e & ebLCase_s), ebEmptyText, ebEmptyText, "AutoResponseEnabled:Yes ResponseMode:All ProcessBackspace:Yes") End If TargetTest.Run c.SetAttrib TargetTest.Name & ebDot & ebLogNameOnsetDelay, TargetTest.OnsetDelay c.SetAttrib TargetTest.Name & ebDot & ebLogNameOnsetTime, TargetTest.OnsetTime c.SetAttrib TargetTest.Name & ebDot & ebLogNameDurationError, TargetTest.DurationError c.SetAttrib TargetTest.Name & ebDot & ebLogNameRTTime, TargetTest.RTTime c.SetAttrib TargetTest.Name & ebDot & ebLogNameACC, TargetTest.ACC c.SetAttrib TargetTest.Name & ebDot & ebLogNameRT, TargetTest.RT c.SetAttrib TargetTest.Name & ebDot & ebLogNameRESP, TargetTest.RESP c.SetAttrib TargetTest.Name & ebDot & ebLogNameCRESP, TargetTest.CRESP c.SetAttrib TargetTest.Name & ebDot & ebLogNameOnsetToOnsetTime, TargetTest.OnsetToOnsetTime ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - SetOnsettimeFrames2 BEGIN ''''''''''''''''''''''''''''''''''''''''''''' RelativeOnsetTimeNMin1 = RelativeOnsetTime RelativeOnsetTime = (Clock.Read - BlockStart - 1000 + TargetTest.RT)/1000 RelativeOnsetFrames = RelativeOnsetTime*7.8125 c.SetAttrib "OnsetTime", RelativeOnsetTime c.SetAttrib "OnsetFrames", RelativeOnsetFrames ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - SetOnsettimeFrames2 END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteTriggerAntwort BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Write Antwort 1 2 3 4 If TargetTest.RESP = "8" Then Print #1, c.GetAttrib("OnsetTime"); 10; c.GetAttrib("OnsetFrames") If TargetTest.RESP = "6" Then Print #1, c.GetAttrib("OnsetTime"); 10; c.GetAttrib("OnsetFrames") If TargetTest.RESP = "2" Then Print #1, c.GetAttrib("OnsetTime"); 11; c.GetAttrib("OnsetFrames") If TargetTest.RESP = "4" Then Print #1, c.GetAttrib("OnsetTime"); 12; c.GetAttrib("OnsetFrames") 'Write Antwort Richtig Falsch Keine If TargetTest.ACC = 1 Then Print #1, c.GetAttrib("OnsetTime"); 15; c.GetAttrib("OnsetFrames") Else If TargetTest.RESP = "" Then Print #1, c.GetAttrib("OnsetTime"); 17; c.GetAttrib("OnsetFrames") Else Print #1, c.GetAttrib("OnsetTime"); 16; c.GetAttrib("OnsetFrames") End If End If ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteTriggerAntwort END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteDurationAntwort BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Write Antwort Dauer 1 2 3 4 If TargetTest.RESP = "8" Then Print #10, 200 If TargetTest.RESP = "6" Then Print #11, 200 If TargetTest.RESP = "2" Then Print #12, 200 If TargetTest.RESP = "4" Then Print #13, 200 'Write Antwort Dauer Richtig Falsch Keine If TargetTest.ACC = 1 Then Print #16, 500 If TargetTest.RESP = "" Then Print #18, 500 Else Print #17, 500 End If End If ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteDurationAntwort END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteDurationMittlereTaste BEGIN ''''''''''''''''''''''''''''''''''''''''''''' MittlereTasteDur = (RelativeOnsetTime - RelativeOnsetTimeNMin1)*1000 c.SetAttrib "MittlereTasteDuration", MittlereTasteDur If Keyboard.GetKeyState("5") = 1 Or Keyboard.GetKeyState("{NUMPAD5}") = 1 Then Print #14, ; ; c.GetAttrib ("MittlereTasteDuration") Else Print #15, ; ; c.GetAttrib ("MittlereTasteDuration") End If ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - WriteDurationMittlereTaste END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - FeedbackvorbereitungTestA BEGIN ''''''''''''''''''''''''''''''''''''''''''''' 'Die korrekten Antworten des Blocks werden gezählt. nKorrekt = nKorrekt + TargetTest.ACC*c.GetAttrib("mDruck") 'Die gesamten korrekten Antworten werden nach n-Blocktyp aufgeteilt gezählt. If c.GetAttrib("nBlocktyp") = 0 Then NullKorrekt = NullKorrekt + TargetTest.ACC*c.GetAttrib("mDruck") If c.GetAttrib("nBlocktyp") = 1 Then EinsKorrekt = EinsKorrekt + TargetTest.ACC*c.GetAttrib("mDruck") If c.GetAttrib("nBlocktyp") = 2 Then ZweiKorrekt = ZweiKorrekt + TargetTest.ACC*c.GetAttrib("mDruck") If c.GetAttrib("nBlocktyp") = 3 Then DreiKorrekt = DreiKorrekt + TargetTest.ACC*c.GetAttrib("mDruck") ''''''''''''''''''''''''''''''''''''''''''''' ' InLine - FeedbackvorbereitungTestA END ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''' 'End Of Procedure Clean-Up ''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Timeline_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_Timeline_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_Timeline_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Timeline_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' We are processing any pending input masks. ' To prevent this code from being generated, set the Procedure object's '.ProcessPendingInputMasks property to None. ' ' Enum through the items on the Procedure and ' and determine if they are RteRunnableInputObject TestTrialprog_theCollection.RemoveAll For TestTrialprog_nObject = 1 To TestTrialprog.ChildObjectCount Set TestTrialprog_theInputObject = CRteRunnableInputObject(Rte.GetObject(TestTrialprog.GetChildObjectName(TestTrialprog_nObject))) If Not TestTrialprog_theInputObject Is Nothing Then TestTrialprog_theCollection.Add TestTrialprog_theInputObject Next ' Loop until a condition allows us to complete this Procedure Do 'Any requests for termination? If GetTerminateMode() = ebTerminate Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Exit Do ElseIf GetTerminateMode() = ebTerminateJump Then SetTerminateMode ebTerminateNone SetNextTargetOnsetTime Clock.Read Err.Raise ebInputAccepted End If ' Any input mask on this procedure have pending input masks? TestTrialprog_bCanExit = True For TestTrialprog_nObject = 1 To TestTrialprog_theCollection.Count Set TestTrialprog_theInputObject = CRteRunnableInputObject(TestTrialprog_theCollection(TestTrialprog_nObject)) If Not TestTrialprog_theInputObject Is Nothing Then If TestTrialprog_theInputObject.InputMasks.IsPending() Then TestTrialprog_bCanExit = False Exit For End If End If Next ' No input masks If TestTrialprog_bCanExit Then Exit Do 'Ready for the next object? If Clock.Read >= GetNextTargetOnsetTime() Then Exit Do End If 'Conditional Exit? If GetConditionalExitState() <> 0 Then Exit Do End If If GetNextTargetOnsetTime() - Clock.Read > 4 Then Sleep 4 DoEvents Loop ' Cleanup TestTrialprog_theCollection.RemoveAll ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' FixationTest.EndOfProcedure TargetTest.EndOfProcedure c.SetAttrib TargetTest.Name & ebDot & ebLogNameOnsetDelay, TargetTest.OnsetDelay c.SetAttrib TargetTest.Name & ebDot & ebLogNameOnsetTime, TargetTest.OnsetTime c.SetAttrib TargetTest.Name & ebDot & ebLogNameDurationError, TargetTest.DurationError c.SetAttrib TargetTest.Name & ebDot & ebLogNameRTTime, TargetTest.RTTime c.SetAttrib TargetTest.Name & ebDot & ebLogNameACC, TargetTest.ACC c.SetAttrib TargetTest.Name & ebDot & ebLogNameRT, TargetTest.RT c.SetAttrib TargetTest.Name & ebDot & ebLogNameRESP, TargetTest.RESP c.SetAttrib TargetTest.Name & ebDot & ebLogNameCRESP, TargetTest.CRESP c.SetAttrib TargetTest.Name & ebDot & ebLogNameOnsetToOnsetTime, TargetTest.OnsetToOnsetTime c.Log '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish BEGIN '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Procedure_Finish: If Err.Number = ebInputAccepted Then Err.Clear Resume Procedure_FinishResume ElseIf Err.Number <> 0 Then 'NOTE: If you receive a runtime error here, it ' is because a runtime error other than ebInputAccepted ' was thrown (ebInputAccepted for catching input masks that jump). 'You are encouraged to either handle the error so that ' it is not thrown in the future or will have to set up ' your own error handler, which will also need to take ' into account for any input masks that jump. ' 'Raise the error so the default error handler will show the message Err.Raise Err.Number, Err.Source, Err.Description End If Procedure_FinishResume: '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Label - Procedure_Finish END '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End Sub '-------------------------------------------------------------------------- ' InitDevices ' '-------------------------------------------------------------------------- Sub InitDevices(c As Context) Set Display = New DisplayDevice Display.Name = ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y Dim DisplayDisplayDeviceInfo As DisplayDeviceInfo DisplayDisplayDeviceInfo.XRes = 1680 DisplayDisplayDeviceInfo.YRes = 1050 DisplayDisplayDeviceInfo.ColorDepth = 32 DisplayDisplayDeviceInfo.DisplayIndex = 1 DisplayDisplayDeviceInfo.UseDesktopSettings = True DisplayDisplayDeviceInfo.DefaultColor = Color.White DisplayDisplayDeviceInfo.RefreshRateRequested = 0 DisplayDisplayDeviceInfo.NumPages = 0 'Load values from context if they exist If c.AttribExists(Display.Name & ebDot & ebUCase_X & ebUCase_R & ebLCase_e & ebLCase_s) Then DisplayDisplayDeviceInfo.XRes = CLng(c.GetAttrib(Display.Name & ebDot & ebUCase_X & ebUCase_R & ebLCase_e & ebLCase_s)) If c.AttribExists(Display.Name & ebDot & ebUCase_Y & ebUCase_R & ebLCase_e & ebLCase_s) Then DisplayDisplayDeviceInfo.YRes = CLng(c.GetAttrib(Display.Name & ebDot & ebUCase_Y & ebUCase_R & ebLCase_e & ebLCase_s)) If c.AttribExists(Display.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_o & ebLCase_r & ebUCase_D & ebLCase_e & ebLCase_p & ebLCase_t & ebLCase_h) Then DisplayDisplayDeviceInfo.ColorDepth = CLng(c.GetAttrib(Display.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_o & ebLCase_r & ebUCase_D & ebLCase_e & ebLCase_p & ebLCase_t & ebLCase_h)) If c.AttribExists(Display.Name & ebDot & ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebUCase_I & ebLCase_n & ebLCase_d & ebLCase_e & ebLCase_x) Then DisplayDisplayDeviceInfo.DisplayIndex = CLng(c.GetAttrib(Display.Name & ebDot & ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebUCase_I & ebLCase_n & ebLCase_d & ebLCase_e & ebLCase_x)) If c.AttribExists(Display.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_o & ebLCase_r) Then DisplayDisplayDeviceInfo.DefaultColor = CColor(c.GetAttrib(Display.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_o & ebLCase_r)) If c.AttribExists(Display.Name & ebDot & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_R & ebLCase_a & ebLCase_t & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_e & ebLCase_d) Then DisplayDisplayDeviceInfo.RefreshRateRequested = CLng(c.GetAttrib(Display.Name & ebDot & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_R & ebLCase_a & ebLCase_t & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_e & ebLCase_d)) If c.AttribExists(Display.Name & ebDot & ebUCase_N & ebLCase_u & ebLCase_m & ebUCase_P & ebLCase_a & ebLCase_g & ebLCase_e & ebLCase_s) Then DisplayDisplayDeviceInfo.NumPages = CLng(c.GetAttrib(Display.Name & ebDot & ebUCase_N & ebLCase_u & ebLCase_m & ebUCase_P & ebLCase_a & ebLCase_g & ebLCase_e & ebLCase_s)) If c.AttribExists(Display.Name & ebDot & ebUCase_U & ebLCase_s & ebLCase_e & ebUCase_D & ebLCase_e & ebLCase_s & ebLCase_k & ebLCase_t & ebLCase_o & ebLCase_p & ebUCase_S & ebLCase_e & ebLCase_t & ebLCase_t & ebLCase_i & ebLCase_n & ebLCase_g & ebLCase_s) Then DisplayDisplayDeviceInfo.UseDesktopSettings = CLogical(c.GetAttrib(Display.Name & ebDot & ebUCase_U & ebLCase_s & ebLCase_e & ebUCase_D & ebLCase_e & ebLCase_s & ebLCase_k & ebLCase_t & ebLCase_o & ebLCase_p & ebUCase_S & ebLCase_e & ebLCase_t & ebLCase_t & ebLCase_i & ebLCase_n & ebLCase_g & ebLCase_s)) 'Open the device, unless the context values indicate otherwise Dim DisplayOpen As Boolean DisplayOpen = True If c.AttribExists(Display.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n) Then DisplayOpen = CLogical(c.GetAttrib(Display.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n)) If DisplayOpen = True Then Display.Open DisplayDisplayDeviceInfo Display.RefreshAlignment = ebDigit_2 & ebDigit_5 & ebPercent If c.AttribExists(Display.Name & ebDot & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_A & ebLCase_l & ebLCase_i & ebLCase_g & ebLCase_n & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t) Then Display.RefreshAlignment = c.GetAttrib(Display.Name & ebDot & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_A & ebLCase_l & ebLCase_i & ebLCase_g & ebLCase_n & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t) #If RUNTIME_VERSION_PERSIST >= 201 Then Display.RTAdjustment = 0 If c.AttribExists(Display.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t) Then Display.RTAdjustment = CLng(c.GetAttrib(Display.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t)) #End If End If 'Enable flipping, if requested If c.AttribExists(Display.Name & ebDot & ebUCase_F & ebLCase_l & ebLCase_i & ebLCase_p & ebLCase_p & ebLCase_i & ebLCase_n & ebLCase_g & ebUCase_E & ebLCase_n & ebLCase_a & ebLCase_b & ebLCase_l & ebLCase_e & ebLCase_d) Then Display.FlippingEnabled = CLogical(c.GetAttrib(Display.Name & ebDot & ebUCase_F & ebLCase_l & ebLCase_i & ebLCase_p & ebLCase_p & ebLCase_i & ebLCase_n & ebLCase_g & ebUCase_E & ebLCase_n & ebLCase_a & ebLCase_b & ebLCase_l & ebLCase_e & ebLCase_d)) Else Display.FlippingEnabled = True End If Set Keyboard = New KeyboardDevice Keyboard.Name = ebUCase_K & ebLCase_e & ebLCase_y & ebLCase_b & ebLCase_o & ebLCase_a & ebLCase_r & ebLCase_d Dim KeyboardKeyboardDeviceInfo as KeyboardDeviceInfo KeyboardKeyboardDeviceInfo.CollectionMode = ebPressesOnly KeyboardKeyboardDeviceInfo.CapsLock = ebCapsLockOff KeyboardKeyboardDeviceInfo.NumLock = ebNumLockOn 'Load values from context if they exist If c.AttribExists(Keyboard.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_l & ebLCase_e & ebLCase_c & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebUCase_M & ebLCase_o & ebLCase_d & ebLCase_e) Then KeyboardKeyboardDeviceInfo.CollectionMode = CLng(c.GetAttrib(Keyboard.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_l & ebLCase_e & ebLCase_c & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebUCase_M & ebLCase_o & ebLCase_d & ebLCase_e)) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_C & ebLCase_a & ebLCase_p & ebLCase_s & ebUCase_L & ebLCase_o & ebLCase_c & ebLCase_k) Then KeyboardKeyboardDeviceInfo.CapsLock = CLng(c.GetAttrib(Keyboard.Name & ebDot & ebUCase_C & ebLCase_a & ebLCase_p & ebLCase_s & ebUCase_L & ebLCase_o & ebLCase_c & ebLCase_k)) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_N & ebLCase_u & ebLCase_m & ebUCase_L & ebLCase_o & ebLCase_c & ebLCase_k) Then KeyboardKeyboardDeviceInfo.NumLock = CLng(c.GetAttrib(Keyboard.Name & ebDot & ebUCase_N & ebLCase_u & ebLCase_m & ebUCase_L & ebLCase_o & ebLCase_c & ebLCase_k)) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_E & ebLCase_m & ebLCase_u & ebLCase_l & ebLCase_a & ebLCase_t & ebLCase_e & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_N & ebLCase_a & ebLCase_m & ebLCase_e) Then KeyboardKeyboardDeviceInfo.EmulateDeviceName = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_E & ebLCase_m & ebLCase_u & ebLCase_l & ebLCase_a & ebLCase_t & ebLCase_e & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_N & ebLCase_a & ebLCase_m & ebLCase_e) 'Open the device, unless the context values indicate otherwise Dim KeyboardOpen As Boolean KeyboardOpen = True If c.AttribExists(Keyboard.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n) Then KeyboardOpen = CLogical(c.GetAttrib(Keyboard.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n)) If KeyboardOpen = True Then Keyboard.Open KeyboardKeyboardDeviceInfo #If RUNTIME_VERSION_PERSIST >= 201 Then Keyboard.RTAdjustment = 0 If c.AttribExists(Keyboard.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t) Then Keyboard.RTAdjustment = CLng(c.GetAttrib(Keyboard.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t)) #End If Keyboard.AutoResponseEnabled = True Keyboard.AutoResponseTimeLimitLowerBound = ebDigit_2 & ebDigit_5 & ebPercent Keyboard.AutoResponseTimeLimitUpperBound = ebDigit_7 & ebDigit_5 & ebPercent Keyboard.AutoResponseTimeLimitWhenInfinite = 1000 Keyboard.AutoResponseCorrectProbability = ebDigit_8 & ebDigit_0 & ebPercent Keyboard.AutoResponseAllowableOverride = ebEmptyText Keyboard.AutoResponseMaxCountLowerBound = ebDigit_2 & ebDigit_5 & ebPercent Keyboard.AutoResponseMaxCountUpperBound = ebDigit_7 & ebDigit_5 & ebPercent Keyboard.AutoResponseDelayBetweenResponses = 30 If c.AttribExists(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_E & ebLCase_n & ebLCase_a & ebLCase_b & ebLCase_l & ebLCase_e & ebLCase_d) Then Keyboard.AutoResponseEnabled = CLogical(c.GetAttrib(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_E & ebLCase_n & ebLCase_a & ebLCase_b & ebLCase_l & ebLCase_e & ebLCase_d)) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_T & ebLCase_i & ebLCase_m & ebLCase_e & ebUCase_L & ebLCase_i & ebLCase_m & ebLCase_i & ebLCase_t & ebUCase_L & ebLCase_o & ebLCase_w & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_d) Then Keyboard.AutoResponseTimeLimitLowerBound = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_T & ebLCase_i & ebLCase_m & ebLCase_e & ebUCase_L & ebLCase_i & ebLCase_m & ebLCase_i & ebLCase_t & ebUCase_L & ebLCase_o & ebLCase_w & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_d) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_T & ebLCase_i & ebLCase_m & ebLCase_e & ebUCase_L & ebLCase_i & ebLCase_m & ebLCase_i & ebLCase_t & ebUCase_U & ebLCase_p & ebLCase_p & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_d) Then Keyboard.AutoResponseTimeLimitUpperBound = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_T & ebLCase_i & ebLCase_m & ebLCase_e & ebUCase_L & ebLCase_i & ebLCase_m & ebLCase_i & ebLCase_t & ebUCase_U & ebLCase_p & ebLCase_p & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_d) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_T & ebLCase_i & ebLCase_m & ebLCase_e & ebUCase_L & ebLCase_i & ebLCase_m & ebLCase_i & ebLCase_t & ebUCase_W & ebLCase_h & ebLCase_e & ebLCase_n & ebUCase_I & ebLCase_n & ebLCase_f & ebLCase_i & ebLCase_n & ebLCase_i & ebLCase_t & ebLCase_e) Then Keyboard.AutoResponseTimeLimitWhenInfinite = CLng(c.GetAttrib(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_T & ebLCase_i & ebLCase_m & ebLCase_e & ebUCase_L & ebLCase_i & ebLCase_m & ebLCase_i & ebLCase_t & ebUCase_W & ebLCase_h & ebLCase_e & ebLCase_n & ebUCase_I & ebLCase_n & ebLCase_f & ebLCase_i & ebLCase_n & ebLCase_i & ebLCase_t & ebLCase_e)) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_C & ebLCase_o & ebLCase_r & ebLCase_r & ebLCase_e & ebLCase_c & ebLCase_t & ebUCase_P & ebLCase_r & ebLCase_o & ebLCase_b & ebLCase_a & ebLCase_b & ebLCase_i & ebLCase_l & ebLCase_i & ebLCase_t & ebLCase_y) Then Keyboard.AutoResponseCorrectProbability = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_C & ebLCase_o & ebLCase_r & ebLCase_r & ebLCase_e & ebLCase_c & ebLCase_t & ebUCase_P & ebLCase_r & ebLCase_o & ebLCase_b & ebLCase_a & ebLCase_b & ebLCase_i & ebLCase_l & ebLCase_i & ebLCase_t & ebLCase_y) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_A & ebLCase_l & ebLCase_l & ebLCase_o & ebLCase_w & ebLCase_a & ebLCase_b & ebLCase_l & ebLCase_e & ebUCase_O & ebLCase_v & ebLCase_e & ebLCase_r & ebLCase_r & ebLCase_i & ebLCase_d & ebLCase_e) Then Keyboard.AutoResponseAllowableOverride = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_A & ebLCase_l & ebLCase_l & ebLCase_o & ebLCase_w & ebLCase_a & ebLCase_b & ebLCase_l & ebLCase_e & ebUCase_O & ebLCase_v & ebLCase_e & ebLCase_r & ebLCase_r & ebLCase_i & ebLCase_d & ebLCase_e) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_M & ebLCase_a & ebLCase_x & ebUCase_C & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_t & ebUCase_L & ebLCase_o & ebLCase_w & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_d) Then Keyboard.AutoResponseMaxCountLowerBound = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_M & ebLCase_a & ebLCase_x & ebUCase_C & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_t & ebUCase_L & ebLCase_o & ebLCase_w & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_d) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_M & ebLCase_a & ebLCase_x & ebUCase_C & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_t & ebUCase_U & ebLCase_p & ebLCase_p & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_d) Then Keyboard.AutoResponseMaxCountUpperBound = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_M & ebLCase_a & ebLCase_x & ebUCase_C & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_t & ebUCase_U & ebLCase_p & ebLCase_p & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_d) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_D & ebLCase_e & ebLCase_l & ebLCase_a & ebLCase_y & ebUCase_B & ebLCase_e & ebLCase_t & ebLCase_w & ebLCase_e & ebLCase_e & ebLCase_n & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebLCase_s) Then Keyboard.AutoResponseDelayBetweenResponses = CLng(c.GetAttrib(Keyboard.Name & ebDot & ebUCase_A & ebLCase_u & ebLCase_t & ebLCase_o & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebUCase_D & ebLCase_e & ebLCase_l & ebLCase_a & ebLCase_y & ebUCase_B & ebLCase_e & ebLCase_t & ebLCase_w & ebLCase_e & ebLCase_e & ebLCase_n & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_p & ebLCase_o & ebLCase_n & ebLCase_s & ebLCase_e & ebLCase_s)) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_S & ebLCase_y & ebLCase_s & ebLCase_t & ebLCase_e & ebLCase_m & ebUCase_A & ebLCase_b & ebLCase_o & ebLCase_r & ebLCase_t & ebUCase_W & ebLCase_a & ebLCase_t & ebLCase_c & ebLCase_h & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) Then Keyboard.SystemAbortWatchSequence = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_S & ebLCase_y & ebLCase_s & ebLCase_t & ebLCase_e & ebLCase_m & ebUCase_A & ebLCase_b & ebLCase_o & ebLCase_r & ebLCase_t & ebUCase_W & ebLCase_a & ebLCase_t & ebLCase_c & ebLCase_h & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_n & ebLCase_d & ebLCase_i & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_a & ebLCase_l & ebUCase_E & ebLCase_x & ebLCase_i & ebLCase_t & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) Then Keyboard.ConditionalExitSequence = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_n & ebLCase_d & ebLCase_i & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_a & ebLCase_l & ebUCase_E & ebLCase_x & ebLCase_i & ebLCase_t & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) If c.AttribExists(Keyboard.Name & ebDot & ebUCase_U & ebLCase_s & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_r & ebLCase_e & ebLCase_a & ebLCase_k & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) Then Keyboard.UserBreakSequence = c.GetAttrib(Keyboard.Name & ebDot & ebUCase_U & ebLCase_s & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_r & ebLCase_e & ebLCase_a & ebLCase_k & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) End If Set Mouse = New MouseDevice Mouse.Name = ebUCase_M & ebLCase_o & ebLCase_u & ebLCase_s & ebLCase_e Dim MouseMouseDeviceInfo as MouseDeviceInfo MouseMouseDeviceInfo.OpenMode = ebMouseOpenModeDirect MouseMouseDeviceInfo.CollectionMode = ebPressesOnly MouseMouseDeviceInfo.ShowCursor = False 'Load values from context if they exist If c.AttribExists(Mouse.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n & ebUCase_M & ebLCase_o & ebLCase_d & ebLCase_e) Then MouseMouseDeviceInfo.OpenMode = CLng(c.GetAttrib(Mouse.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n & ebUCase_M & ebLCase_o & ebLCase_d & ebLCase_e)) If c.AttribExists(Mouse.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_l & ebLCase_e & ebLCase_c & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebUCase_M & ebLCase_o & ebLCase_d & ebLCase_e) Then MouseMouseDeviceInfo.CollectionMode = CLng(c.GetAttrib(Mouse.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_l & ebLCase_e & ebLCase_c & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebUCase_M & ebLCase_o & ebLCase_d & ebLCase_e)) If c.AttribExists(Mouse.Name & ebDot & ebUCase_S & ebLCase_h & ebLCase_o & ebLCase_w & ebUCase_C & ebLCase_u & ebLCase_r & ebLCase_s & ebLCase_o & ebLCase_r) Then MouseMouseDeviceInfo.ShowCursor = CLng(c.GetAttrib(Mouse.Name & ebDot & ebUCase_S & ebLCase_h & ebLCase_o & ebLCase_w & ebUCase_C & ebLCase_u & ebLCase_r & ebLCase_s & ebLCase_o & ebLCase_r)) If c.AttribExists(Mouse.Name & ebDot & ebUCase_E & ebLCase_m & ebLCase_u & ebLCase_l & ebLCase_a & ebLCase_t & ebLCase_e & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_N & ebLCase_a & ebLCase_m & ebLCase_e) Then MouseMouseDeviceInfo.EmulateDeviceName = c.GetAttrib(Mouse.Name & ebDot & ebUCase_E & ebLCase_m & ebLCase_u & ebLCase_l & ebLCase_a & ebLCase_t & ebLCase_e & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_N & ebLCase_a & ebLCase_m & ebLCase_e) 'Open the device, unless the context values indicate otherwise Dim MouseOpen As Boolean MouseOpen = True If c.AttribExists(Mouse.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n) Then MouseOpen = CLogical(c.GetAttrib(Mouse.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n)) If MouseOpen = True Then Mouse.Open MouseMouseDeviceInfo If c.AttribExists(Mouse.Name & ebDot & ebUCase_S & ebLCase_y & ebLCase_s & ebLCase_t & ebLCase_e & ebLCase_m & ebUCase_A & ebLCase_b & ebLCase_o & ebLCase_r & ebLCase_t & ebUCase_W & ebLCase_a & ebLCase_t & ebLCase_c & ebLCase_h & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) Then Mouse.SystemAbortWatchSequence = c.GetAttrib(Mouse.Name & ebDot & ebUCase_S & ebLCase_y & ebLCase_s & ebLCase_t & ebLCase_e & ebLCase_m & ebUCase_A & ebLCase_b & ebLCase_o & ebLCase_r & ebLCase_t & ebUCase_W & ebLCase_a & ebLCase_t & ebLCase_c & ebLCase_h & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) If c.AttribExists(Mouse.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_n & ebLCase_d & ebLCase_i & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_a & ebLCase_l & ebUCase_E & ebLCase_x & ebLCase_i & ebLCase_t & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) Then Mouse.ConditionalExitSequence = c.GetAttrib(Mouse.Name & ebDot & ebUCase_C & ebLCase_o & ebLCase_n & ebLCase_d & ebLCase_i & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_a & ebLCase_l & ebUCase_E & ebLCase_x & ebLCase_i & ebLCase_t & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) If c.AttribExists(Mouse.Name & ebDot & ebUCase_U & ebLCase_s & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_r & ebLCase_e & ebLCase_a & ebLCase_k & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) Then Mouse.UserBreakSequence = c.GetAttrib(Mouse.Name & ebDot & ebUCase_U & ebLCase_s & ebLCase_e & ebLCase_r & ebUCase_B & ebLCase_r & ebLCase_e & ebLCase_a & ebLCase_k & ebUCase_S & ebLCase_e & ebLCase_q & ebLCase_u & ebLCase_e & ebLCase_n & ebLCase_c & ebLCase_e) #If RUNTIME_VERSION_PERSIST >= 201 Then Mouse.RTAdjustment = 0 If c.AttribExists(Mouse.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t) Then Mouse.RTAdjustment = CLng(c.GetAttrib(Mouse.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t)) #End If End If Set Sound = New SoundDevice Sound.Name = ebUCase_S & ebLCase_o & ebLCase_u & ebLCase_n & ebLCase_d Dim SoundSoundDeviceInfo As SoundDeviceInfo SoundSoundDeviceInfo.API = ebSoundApiDirectSound SoundSoundDeviceInfo.DeviceIndex = 1 SoundSoundDeviceInfo.Channels = 0 SoundSoundDeviceInfo.SamplesPerSecond = 0 SoundSoundDeviceInfo.BitsPerSample = 0 SoundSoundDeviceInfo.DeviceReserved1 = 0 SoundSoundDeviceInfo.DeviceReserved2 = 0 SoundSoundDeviceInfo.DeviceReserved3 = 0 SoundSoundDeviceInfo.DeviceReserved4 = 0 SoundSoundDeviceInfo.DeviceReservedA = ebEmptyText SoundSoundDeviceInfo.DeviceReservedB = ebEmptyText SoundSoundDeviceInfo.DeviceReservedC = ebEmptyText SoundSoundDeviceInfo.DeviceReservedD = ebEmptyText 'Load values from context if they exist If c.AttribExists(Sound.Name & ebDot & ebUCase_A & ebUCase_P & ebUCase_I) Then SoundSoundDeviceInfo.API = c.GetAttrib(Sound.Name & ebDot & ebUCase_A & ebUCase_P & ebUCase_I) If c.AttribExists(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_I & ebLCase_n & ebLCase_d & ebLCase_e & ebLCase_x) Then SoundSoundDeviceInfo.DeviceIndex = CLng(c.GetAttrib(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_I & ebLCase_n & ebLCase_d & ebLCase_e & ebLCase_x)) If c.AttribExists(Sound.Name & ebDot & ebUCase_C & ebLCase_h & ebLCase_a & ebLCase_n & ebLCase_n & ebLCase_e & ebLCase_l & ebLCase_s) Then SoundSoundDeviceInfo.Channels = CLng(c.GetAttrib(Sound.Name & ebDot & ebUCase_C & ebLCase_h & ebLCase_a & ebLCase_n & ebLCase_n & ebLCase_e & ebLCase_l & ebLCase_s)) If c.AttribExists(Sound.Name & ebDot & ebUCase_S & ebLCase_a & ebLCase_m & ebLCase_p & ebLCase_l & ebLCase_e & ebLCase_s & ebUCase_P & ebLCase_e & ebLCase_r & ebUCase_S & ebLCase_e & ebLCase_c & ebLCase_o & ebLCase_n & ebLCase_d) Then SoundSoundDeviceInfo.SamplesPerSecond = CLng(c.GetAttrib(Sound.Name & ebDot & ebUCase_S & ebLCase_a & ebLCase_m & ebLCase_p & ebLCase_l & ebLCase_e & ebLCase_s & ebUCase_P & ebLCase_e & ebLCase_r & ebUCase_S & ebLCase_e & ebLCase_c & ebLCase_o & ebLCase_n & ebLCase_d)) If c.AttribExists(Sound.Name & ebDot & ebUCase_B & ebLCase_i & ebLCase_t & ebLCase_s & ebUCase_P & ebLCase_e & ebLCase_r & ebUCase_S & ebLCase_a & ebLCase_m & ebLCase_p & ebLCase_l & ebLCase_e) Then SoundSoundDeviceInfo.BitsPerSample = CLng(c.GetAttrib(Sound.Name & ebDot & ebUCase_B & ebLCase_i & ebLCase_t & ebLCase_s & ebUCase_P & ebLCase_e & ebLCase_r & ebUCase_S & ebLCase_a & ebLCase_m & ebLCase_p & ebLCase_l & ebLCase_e)) If c.AttribExists(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebDigit_1) Then SoundSoundDeviceInfo.DeviceReserved1 = CLng(c.GetAttrib(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebDigit_1)) If c.AttribExists(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebDigit_2) Then SoundSoundDeviceInfo.DeviceReserved2 = CLng(c.GetAttrib(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebDigit_2)) If c.AttribExists(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebDigit_3) Then SoundSoundDeviceInfo.DeviceReserved3 = CLng(c.GetAttrib(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebDigit_3)) If c.AttribExists(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebDigit_4) Then SoundSoundDeviceInfo.DeviceReserved4 = CLng(c.GetAttrib(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebDigit_4)) If c.AttribExists(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebUCase_A) Then SoundSoundDeviceInfo.DeviceReservedA = c.GetAttrib(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebUCase_A) If c.AttribExists(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebUCase_B) Then SoundSoundDeviceInfo.DeviceReservedB = c.GetAttrib(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebUCase_B) If c.AttribExists(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebUCase_C) Then SoundSoundDeviceInfo.DeviceReservedC = c.GetAttrib(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebUCase_C) If c.AttribExists(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebUCase_D) Then SoundSoundDeviceInfo.DeviceReservedD = c.GetAttrib(Sound.Name & ebDot & ebUCase_D & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebUCase_R & ebLCase_e & ebLCase_s & ebLCase_e & ebLCase_r & ebLCase_v & ebLCase_e & ebLCase_d & ebUCase_D) 'Open the device, unless the context values indicate otherwise Dim SoundOpen As Boolean SoundOpen = True If c.AttribExists(Sound.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n) Then SoundOpen = CLogical(c.GetAttrib(Sound.Name & ebDot & ebUCase_O & ebLCase_p & ebLCase_e & ebLCase_n)) If SoundOpen = True Then Sound.Open SoundSoundDeviceInfo #If RUNTIME_VERSION_PERSIST >= 201 Then Sound.RTAdjustment = 0 If c.AttribExists(Sound.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t) Then Sound.RTAdjustment = CLng(c.GetAttrib(Sound.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t)) #End If End If Set SRBOX = New SRBoxDevice SRBOX.Name = ebUCase_S & ebUCase_R & ebUCase_B & ebUCase_O & ebUCase_X Dim SRBOXSRBoxDeviceInfo As SRBoxDeviceInfo SRBOXSRBoxDeviceInfo.Model = 200 SRBOXSRBoxDeviceInfo.Revision = 1 SRBOXSRBoxDeviceInfo.CommPort = 1 SRBOXSRBoxDeviceInfo.BaudRate = 19200 SRBOXSRBoxDeviceInfo.CharacterRate = 800 SRBOXSRBoxDeviceInfo.Configuration = ebSRBoxConfigStandard SRBOXSRBoxDeviceInfo.CollectionMode = ebPressesOnly 'Load values from context if they exist If c.AttribExists(SRBOX.Name & ".Model") Then SRBOXSRBoxDeviceInfo.Model = CLng(c.GetAttrib(SRBOX.Name & ".Model")) If c.AttribExists(SRBOX.Name & ".Revision") Then SRBOXSRBoxDeviceInfo.Revision = CLng(c.GetAttrib(SRBOX.Name & ".Revision")) If c.AttribExists(SRBOX.Name & ".CommPort") Then SRBOXSRBoxDeviceInfo.CommPort = CLng(c.GetAttrib(SRBOX.Name & ".CommPort")) If c.AttribExists(SRBOX.Name & ".BaudRate") Then SRBOXSRBoxDeviceInfo.BaudRate = CLng(c.GetAttrib(SRBOX.Name & ".BaudRate")) If c.AttribExists(SRBOX.Name & ".CharacterRate") Then SRBOXSRBoxDeviceInfo.CharacterRate = CLng(c.GetAttrib(SRBOX.Name & ".CharacterRate")) If c.AttribExists(SRBOX.Name & ".Configuration") Then SRBOXSRBoxDeviceInfo.Configuration = CLng(c.GetAttrib(SRBOX.Name & ".Configuration")) If c.AttribExists(SRBOX.Name & ".Debounce") Then SRBOXSRBoxDeviceInfo.Debounce = CLng(c.GetAttrib(SRBOX.Name & ".Debounce")) If c.AttribExists(SRBOX.Name & ".CollectionMode") Then SRBOXSRBoxDeviceInfo.CollectionMode = CLng(c.GetAttrib(SRBOX.Name & ".CollectionMode")) If c.AttribExists(SRBOX.Name & ".EmulateDeviceName") Then SRBOXSRBoxDeviceInfo.EmulateDeviceName = c.GetAttrib(SRBOX.Name & ".EmulateDeviceName") 'Open the device, unless the context values indicate otherwise Dim SRBOXOpen As Boolean SRBOXOpen = True If c.AttribExists(SRBOX.Name & ".Open") Then SRBOXOpen = CLogical(c.GetAttrib(SRBOX.Name & ".Open")) If SRBOXOpen = True Then SRBOX.Open SRBOXSRBoxDeviceInfo #If RUNTIME_VERSION_PERSIST >= 201 Then SRBOX.RTAdjustment = 0 If c.AttribExists(SRBOX.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t) Then SRBOX.RTAdjustment = CLng(c.GetAttrib(SRBOX.Name & ebDot & ebUCase_R & ebUCase_T & ebUCase_A & ebLCase_d & ebLCase_j & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t)) #End If End If 'Init All Devices Rte.DeviceManager.Init ' Log DisplayDevice(s) Refresh Rates If DisplayOpen = True Then c.SetAttrib Display.Name & ebDot & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_R & ebLCase_a & ebLCase_t & ebLCase_e, Format$(Display.CalculatedRefreshRate, ebDigit_0 & ebDot & ebDigit_0 & ebDigit_0 & ebDigit_0) 'Ensure that the refresh rate is acceptable If CLng(Display.CalculatedRefreshRate) = 0 Then 'WARNING: RefreshRate of 0 (Zero) Detected. Experiment will assume 60hz to continue. Data collection should NOT be used for time critical analysis. Please ensure your display adapter is configured with the most recent and device specific driver.\n(Standard Display Adapter under Windows Vista or later is not compatible) Dim strDisplayError As String strDisplayError = ebUCase_W & ebUCase_A & ebUCase_R & ebUCase_N & ebUCase_I & ebUCase_N & ebUCase_G & ebColon & ebSpace & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_R & ebLCase_a & ebLCase_t & ebLCase_e & ebSpace & ebLCase_o & ebLCase_f & ebSpace & ebDigit_0 & ebSpace & ebParenOpen & ebUCase_Z & ebLCase_e & ebLCase_r & ebLCase_o & ebParenClose & ebSpace & ebUCase_D & ebLCase_e & ebLCase_t & ebLCase_e & ebLCase_c & ebLCase_t & ebLCase_e & ebLCase_d & ebDot & ebSpace & ebSpace & ebUCase_E & ebLCase_x & ebLCase_p & ebLCase_e & ebLCase_r & ebLCase_i & ebLCase_m & ebLCase_e & ebLCase_n & ebLCase_t & ebSpace & ebLCase_w & ebLCase_i & ebLCase_l & ebLCase_l & ebSpace & ebLCase_a & ebLCase_s & ebLCase_s & ebLCase_u & ebLCase_m & ebLCase_e & ebSpace & ebDigit_6 & ebDigit_0 & ebLCase_h & ebLCase_z & ebSpace & ebLCase_t & ebLCase_o & ebSpace & ebLCase_c & ebLCase_o & ebLCase_n & ebLCase_t & ebLCase_i & ebLCase_n & ebLCase_u & ebLCase_e & ebDot & ebSpace & ebUCase_D & ebLCase_a & ebLCase_t & ebLCase_a & ebSpace & ebLCase_c & ebLCase_o & ebLCase_l & ebLCase_l & ebLCase_e & ebLCase_c & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebSpace & ebLCase_s & ebLCase_h & ebLCase_o & ebLCase_u & ebLCase_l & ebLCase_d & ebSpace & ebUCase_N & ebUCase_O & ebUCase_T & ebSpace & ebLCase_b & ebLCase_e & ebSpace & ebLCase_u & ebLCase_s & ebLCase_e & ebLCase_d & ebSpace & ebLCase_f & ebLCase_o & ebLCase_r & ebSpace & ebLCase_t & ebLCase_i & ebLCase_m & ebLCase_e & ebSpace & ebLCase_c & ebLCase_r & ebLCase_i & ebLCase_t & ebLCase_i & ebLCase_c & ebLCase_a & ebLCase_l & ebSpace & ebLCase_a & ebLCase_n & ebLCase_a & ebLCase_l & ebLCase_y & ebLCase_s & ebLCase_i & ebLCase_s & ebDot & ebSpace & ebSpace & ebUCase_P & ebLCase_l & ebLCase_e & ebLCase_a & ebLCase_s & ebLCase_e & ebSpace & ebLCase_e & ebLCase_n & ebLCase_s & ebLCase_u & ebLCase_r & ebLCase_e & ebSpace & ebLCase_y & ebLCase_o & ebLCase_u & ebLCase_r & ebSpace & ebLCase_d & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebSpace & ebLCase_a & ebLCase_d & ebLCase_a & ebLCase_p & ebLCase_t & ebLCase_e & ebLCase_r & ebSpace & ebLCase_i & ebLCase_s & ebSpace & ebLCase_c & ebLCase_o & ebLCase_n & ebLCase_f & ebLCase_i & ebLCase_g & ebLCase_u & ebLCase_r & ebLCase_e & ebLCase_d & ebSpace & ebLCase_w & ebLCase_i & ebLCase_t & ebLCase_h & ebSpace & ebLCase_t & ebLCase_h & ebLCase_e & ebSpace & ebLCase_m & ebLCase_o & ebLCase_s & ebLCase_t & ebSpace & ebLCase_r & ebLCase_e & ebLCase_c & ebLCase_e & ebLCase_n & ebLCase_t & ebSpace & ebLCase_a & ebLCase_n & ebLCase_d & ebSpace & ebLCase_d & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebSpace & ebLCase_s & ebLCase_p & ebLCase_e & ebLCase_c & ebLCase_i & ebLCase_f & ebLCase_i & ebLCase_c & ebSpace & ebLCase_d & ebLCase_r & ebLCase_i & ebLCase_v & ebLCase_e & ebLCase_r & ebDot & ebLf & ebParenOpen & ebUCase_S & ebLCase_t & ebLCase_a & ebLCase_n & ebLCase_d & ebLCase_a & ebLCase_r & ebLCase_d & ebSpace & ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebSpace & ebUCase_A & ebLCase_d & ebLCase_a & ebLCase_p & ebLCase_t & ebLCase_e & ebLCase_r & ebSpace & ebLCase_u & ebLCase_n & ebLCase_d & ebLCase_e & ebLCase_r & ebSpace & ebUCase_W & ebLCase_i & ebLCase_n & ebLCase_d & ebLCase_o & ebLCase_w & ebLCase_s & ebSpace & ebUCase_V & ebLCase_i & ebLCase_s & ebLCase_t & ebLCase_a & ebSpace & ebLCase_o & ebLCase_r & ebSpace & ebLCase_l & ebLCase_a & ebLCase_t & ebLCase_e & ebLCase_r & ebSpace & ebLCase_i & ebLCase_s & ebSpace & ebLCase_n & ebLCase_o & ebLCase_t & ebSpace & ebLCase_c & ebLCase_o & ebLCase_m & ebLCase_p & ebLCase_a & ebLCase_t & ebLCase_i & ebLCase_b & ebLCase_l & ebLCase_e & ebParenClose Debug.Print strDisplayError c.SetAttrib ebUCase_A & ebUCase_W & ebLCase_a & ebLCase_r & ebLCase_n & ebLCase_i & ebLCase_n & ebLCase_g & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_R & ebLCase_a & ebLCase_t & ebLCase_e, strDisplayError End If 'Determine RefreshRate range Dim dblDisplayMinRefreshRate As Double Dim dblDisplayMaxRefreshRate As Double dblDisplayMinRefreshRate = 39 dblDisplayMaxRefreshRate = 201 If c.AttribExists(Display.Name & ebDot & ebUCase_M & ebLCase_i & ebLCase_n & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_R & ebLCase_a & ebLCase_t & ebLCase_e) Then dblDisplayMinRefreshRate = CDbl(c.GetAttrib(Display.Name & ebDot & ebUCase_M & ebLCase_i & ebLCase_n & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_R & ebLCase_a & ebLCase_t & ebLCase_e)) If c.AttribExists(Display.Name & ebDot & ebUCase_M & ebLCase_a & ebLCase_x & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_R & ebLCase_a & ebLCase_t & ebLCase_e) Then dblDisplayMaxRefreshRate = CDbl(c.GetAttrib(Display.Name & ebDot & ebUCase_M & ebLCase_a & ebLCase_x & ebUCase_R & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebUCase_R & ebLCase_a & ebLCase_t & ebLCase_e)) 'Ensure that the refresh rate is within range If Display.CalculatedRefreshRate < dblDisplayMinRefreshRate Or Display.CalculatedRefreshRate > dblDisplayMaxRefreshRate Then 'Unable to obtain a valid refresh rate.\n\nPlease ensure your display adapter is configured with the most recent and device specific driver.\n(Standard Display Adapter under Windows Vista is not compatible) Rte.AbortExperiment -999, ebUCase_U & ebLCase_n & ebLCase_a & ebLCase_b & ebLCase_l & ebLCase_e & ebSpace & ebLCase_t & ebLCase_o & ebSpace & ebLCase_o & ebLCase_b & ebLCase_t & ebLCase_a & ebLCase_i & ebLCase_n & ebSpace & ebLCase_a & ebSpace & ebLCase_v & ebLCase_a & ebLCase_l & ebLCase_i & ebLCase_d & ebSpace & ebLCase_r & ebLCase_e & ebLCase_f & ebLCase_r & ebLCase_e & ebLCase_s & ebLCase_h & ebSpace & ebLCase_r & ebLCase_a & ebLCase_t & ebLCase_e & ebDot & ebLf & ebLf & ebUCase_P & ebLCase_l & ebLCase_e & ebLCase_a & ebLCase_s & ebLCase_e & ebSpace & ebLCase_e & ebLCase_n & ebLCase_s & ebLCase_u & ebLCase_r & ebLCase_e & ebSpace & ebLCase_y & ebLCase_o & ebLCase_u & ebLCase_r & ebSpace & ebLCase_d & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebSpace & ebLCase_a & ebLCase_d & ebLCase_a & ebLCase_p & ebLCase_t & ebLCase_e & ebLCase_r & ebSpace & ebLCase_i & ebLCase_s & ebSpace & ebLCase_c & ebLCase_o & ebLCase_n & ebLCase_f & ebLCase_i & ebLCase_g & ebLCase_u & ebLCase_r & ebLCase_e & ebLCase_d & ebSpace & ebLCase_w & ebLCase_i & ebLCase_t & ebLCase_h & ebSpace & ebLCase_t & ebLCase_h & ebLCase_e & ebSpace & ebLCase_m & ebLCase_o & ebLCase_s & ebLCase_t & ebSpace & ebLCase_r & ebLCase_e & ebLCase_c & ebLCase_e & ebLCase_n & ebLCase_t & ebSpace & ebLCase_a & ebLCase_n & ebLCase_d & ebSpace & ebLCase_d & ebLCase_e & ebLCase_v & ebLCase_i & ebLCase_c & ebLCase_e & ebSpace & ebLCase_s & ebLCase_p & ebLCase_e & ebLCase_c & ebLCase_i & ebLCase_f & ebLCase_i & ebLCase_c & ebSpace & ebLCase_d & ebLCase_r & ebLCase_i & ebLCase_v & ebLCase_e & ebLCase_r & ebDot & ebLf & ebParenOpen & ebUCase_S & ebLCase_t & ebLCase_a & ebLCase_n & ebLCase_d & ebLCase_a & ebLCase_r & ebLCase_d & ebSpace & ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebSpace & ebUCase_A & ebLCase_d & ebLCase_a & ebLCase_p & ebLCase_t & ebLCase_e & ebLCase_r & ebSpace & ebLCase_u & ebLCase_n & ebLCase_d & ebLCase_e & ebLCase_r & ebSpace & ebUCase_W & ebLCase_i & ebLCase_n & ebLCase_d & ebLCase_o & ebLCase_w & ebLCase_s & ebSpace & ebUCase_V & ebLCase_i & ebLCase_s & ebLCase_t & ebLCase_a & ebSpace & ebLCase_i & ebLCase_s & ebSpace & ebLCase_n & ebLCase_o & ebLCase_t & ebSpace & ebLCase_c & ebLCase_o & ebLCase_m & ebLCase_p & ebLCase_a & ebLCase_t & ebLCase_i & ebLCase_b & ebLCase_l & ebLCase_e & ebParenClose End If End If End Sub '-------------------------------------------------------------------------- ' InitObjects ' '-------------------------------------------------------------------------- Sub InitObjects(c As Context) Set SessionProc = New Procedure SessionProc.Name = ebUCase_S & ebLCase_e & ebLCase_s & ebLCase_s & ebLCase_i & ebLCase_o & ebLCase_n & ebUCase_P & ebLCase_r & ebLCase_o & ebLCase_c '{169EEC5B-560B-4239-B019-81C0C5E51D6E} SessionProc.Guid = CGuid(&H169EEC5B, &H560B, &H4239, &HB019, &H81C0C5E5, &H1D6E) SessionProc.Tag = ebEmptyText SessionProc.LoadProperties SessionProc.Subroutine = ebUCase_S & ebLCase_e & ebLCase_s & ebLCase_s & ebLCase_i & ebLCase_o & ebLCase_n & ebUCase_P & ebLCase_r & ebLCase_o & ebLCase_c & ebUnderscore & ebUCase_R & ebLCase_u & ebLCase_n Set SessionProc_theCollection = New RteCollection Set Instruktionen1 = New Slide Instruktionen1.Name = ebUCase_I & ebLCase_n & ebLCase_s & ebLCase_t & ebLCase_r & ebLCase_u & ebLCase_k & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_e & ebLCase_n & ebDigit_1 '{AB8526CA-CED1-4992-B438-51F54B613CF2} Instruktionen1.Guid = CGuid(&HAB8526CA, &HCED1, &H4992, &HB438, &H51F54B61, &H3CF2) Instruktionen1.Tag = ebEmptyText Set Instruktionen1EchoClients = New EchoClientCollection Instruktionen1.LoadProperties Set Instruktionen2 = New Slide Instruktionen2.Name = ebUCase_I & ebLCase_n & ebLCase_s & ebLCase_t & ebLCase_r & ebLCase_u & ebLCase_k & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_e & ebLCase_n & ebDigit_2 '{038A6F71-8255-4F99-86A9-D3965DEF00E3} Instruktionen2.Guid = CGuid(&H038A6F71, &H8255, &H4F99, &H86A9, &HD3965DEF, &H00E3) Instruktionen2.Tag = ebEmptyText Set Instruktionen2EchoClients = New EchoClientCollection Instruktionen2.LoadProperties Set FingerAufNeutral = New Slide FingerAufNeutral.Name = ebUCase_F & ebLCase_i & ebLCase_n & ebLCase_g & ebLCase_e & ebLCase_r & ebUCase_A & ebLCase_u & ebLCase_f & ebUCase_N & ebLCase_e & ebLCase_u & ebLCase_t & ebLCase_r & ebLCase_a & ebLCase_l '{9102E6A2-2832-46D7-B588-C3044AEFE029} FingerAufNeutral.Guid = CGuid(&H9102E6A2, &H2832, &H46D7, &HB588, &HC3044AEF, &HE029) FingerAufNeutral.Tag = ebEmptyText Set FingerAufNeutralEchoClients = New EchoClientCollection FingerAufNeutral.LoadProperties Set Trainingstrialliste = New List Trainingstrialliste.Name = ebUCase_T & ebLCase_r & ebLCase_a & ebLCase_i & ebLCase_n & ebLCase_i & ebLCase_n & ebLCase_g & ebLCase_s & ebLCase_t & ebLCase_r & ebLCase_i & ebLCase_a & ebLCase_l & ebLCase_l & ebLCase_i & ebLCase_s & ebLCase_t & ebLCase_e '{AD86B0A5-C9BF-4FD5-9832-5EBACD30C91C} Trainingstrialliste.Guid = CGuid(&HAD86B0A5, &HC9BF, &H4FD5, &H9832, &H5EBACD30, &HC91C) Trainingstrialliste.Tag = ebEmptyText 'Initialization for Trainingstrialliste Set Trainingstrialliste.Order = New RandomOrder CRandomOrder(Trainingstrialliste.Order).NoRepeatAfterReset = True Set Trainingstrialliste.Deletion = NoDeletion Trainingstrialliste.ResetEveryRun = False Trainingstrialliste.LoadProperties Set Trainingstrialliste.TerminateCondition = Cycles(1) Set Trainingstrialliste.ResetCondition = Samples(16) Trainingstrialliste.Reset Set Trialprog = New Procedure Trialprog.Name = ebUCase_T & ebLCase_r & ebLCase_i & ebLCase_a & ebLCase_l & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g '{49A2EB09-C64D-445E-8FAF-2FE1284BE6C9} Trialprog.Guid = CGuid(&H49A2EB09, &HC64D, &H445E, &H8FAF, &H2FE1284B, &HE6C9) Trialprog.Tag = ebEmptyText Trialprog.LoadProperties Trialprog.Subroutine = ebUCase_T & ebLCase_r & ebLCase_i & ebLCase_a & ebLCase_l & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g & ebUnderscore & ebUCase_R & ebLCase_u & ebLCase_n Set Trialprog_theCollection = New RteCollection Set Fixation = New Slide Fixation.Name = ebUCase_F & ebLCase_i & ebLCase_x & ebLCase_a & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n '{6494715D-E0B5-4E51-B994-C470964B745B} Fixation.Guid = CGuid(&H6494715D, &HE0B5, &H4E51, &HB994, &HC470964B, &H745B) Fixation.Tag = ebEmptyText Fixation.LoadProperties Set Target = New Slide Target.Name = ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t '{04EB8BB6-E3F9-4750-B660-21F096200A73} Target.Guid = CGuid(&H04EB8BB6, &HE3F9, &H4750, &HB660, &H21F09620, &H0A73) Target.Tag = ebEmptyText Set TargetEchoClients = New EchoClientCollection Target.LoadProperties Set Feedback = New Slide Feedback.Name = ebUCase_F & ebLCase_e & ebLCase_e & ebLCase_d & ebLCase_b & ebLCase_a & ebLCase_c & ebLCase_k '{CD0778E8-9ADA-4E26-8796-A7B22F0208C1} Feedback.Guid = CGuid(&HCD0778E8, &H9ADA, &H4E26, &H8796, &HA7B22F02, &H08C1) Feedback.Tag = ebEmptyText Set FeedbackEchoClients = New EchoClientCollection Feedback.LoadProperties Set Trainingsblockliste = New List Trainingsblockliste.Name = ebUCase_T & ebLCase_r & ebLCase_a & ebLCase_i & ebLCase_n & ebLCase_i & ebLCase_n & ebLCase_g & ebLCase_s & ebLCase_b & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k & ebLCase_l & ebLCase_i & ebLCase_s & ebLCase_t & ebLCase_e '{4D116B7A-EE4A-4115-9FAB-4226F521734F} Trainingsblockliste.Guid = CGuid(&H4D116B7A, &HEE4A, &H4115, &H9FAB, &H4226F521, &H734F) Trainingsblockliste.Tag = ebEmptyText 'Initialization for Trainingsblockliste Set Trainingsblockliste.Order = New SequentialOrder Set Trainingsblockliste.Deletion = NoDeletion Trainingsblockliste.ResetEveryRun = False Trainingsblockliste.LoadProperties Set Trainingsblockliste.TerminateCondition = Cycles(1) Set Trainingsblockliste.ResetCondition = Samples(4) Trainingsblockliste.Reset Set Trainingsblockprog = New Procedure Trainingsblockprog.Name = ebUCase_T & ebLCase_r & ebLCase_a & ebLCase_i & ebLCase_n & ebLCase_i & ebLCase_n & ebLCase_g & ebLCase_s & ebLCase_b & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g '{484D3C3A-6A46-417B-8065-C2E53B11E37F} Trainingsblockprog.Guid = CGuid(&H484D3C3A, &H6A46, &H417B, &H8065, &HC2E53B11, &HE37F) Trainingsblockprog.Tag = ebEmptyText Trainingsblockprog.LoadProperties Trainingsblockprog.Subroutine = ebUCase_T & ebLCase_r & ebLCase_a & ebLCase_i & ebLCase_n & ebLCase_i & ebLCase_n & ebLCase_g & ebLCase_s & ebLCase_b & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g & ebUnderscore & ebUCase_R & ebLCase_u & ebLCase_n Set Trainingsblockprog_theCollection = New RteCollection Set Eins = New Slide Eins.Name = ebUCase_E & ebLCase_i & ebLCase_n & ebLCase_s '{D48941FE-C53B-4721-AE0D-0CC1B510E7E6} Eins.Guid = CGuid(&HD48941FE, &HC53B, &H4721, &HAE0D, &H0CC1B510, &HE7E6) Eins.Tag = ebEmptyText Set EinsEchoClients = New EchoClientCollection Eins.LoadProperties Set Zwei = New Slide Zwei.Name = ebUCase_Z & ebLCase_w & ebLCase_e & ebLCase_i '{AA5FCA57-EEE5-4904-B5A3-79E4BE4A6990} Zwei.Guid = CGuid(&HAA5FCA57, &HEEE5, &H4904, &HB5A3, &H79E4BE4A, &H6990) Zwei.Tag = ebEmptyText Set ZweiEchoClients = New EchoClientCollection Zwei.LoadProperties Set Drei = New Slide Drei.Name = ebUCase_D & ebLCase_r & ebLCase_e & ebLCase_i '{74E0BE08-8814-4495-9201-7842BE103057} Drei.Guid = CGuid(&H74E0BE08, &H8814, &H4495, &H9201, &H7842BE10, &H3057) Drei.Tag = ebEmptyText Set DreiEchoClients = New EchoClientCollection Drei.LoadProperties Set Vier = New Slide Vier.Name = ebUCase_V & ebLCase_i & ebLCase_e & ebLCase_r '{12766DA3-E422-46AC-83BF-A17279B8F1E0} Vier.Guid = CGuid(&H12766DA3, &HE422, &H46AC, &H83BF, &HA17279B8, &HF1E0) Vier.Tag = ebEmptyText Set VierEchoClients = New EchoClientCollection Vier.LoadProperties Set InstruktionenBlocktyp = New Slide InstruktionenBlocktyp.Name = ebUCase_I & ebLCase_n & ebLCase_s & ebLCase_t & ebLCase_r & ebLCase_u & ebLCase_k & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_e & ebLCase_n & ebUCase_B & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k & ebLCase_t & ebLCase_y & ebLCase_p '{9EDC439A-3485-4C34-9E54-F0CCF5C1DA35} InstruktionenBlocktyp.Guid = CGuid(&H9EDC439A, &H3485, &H4C34, &H9E54, &HF0CCF5C1, &HDA35) InstruktionenBlocktyp.Tag = ebEmptyText Set InstruktionenBlocktypEchoClients = New EchoClientCollection InstruktionenBlocktyp.LoadProperties Set FingerAufNeutralTraining = New Slide FingerAufNeutralTraining.Name = ebUCase_F & ebLCase_i & ebLCase_n & ebLCase_g & ebLCase_e & ebLCase_r & ebUCase_A & ebLCase_u & ebLCase_f & ebUCase_N & ebLCase_e & ebLCase_u & ebLCase_t & ebLCase_r & ebLCase_a & ebLCase_l & ebUCase_T & ebLCase_r & ebLCase_a & ebLCase_i & ebLCase_n & ebLCase_i & ebLCase_n & ebLCase_g '{163175E6-2674-4396-A238-AFF9B0B5CD89} FingerAufNeutralTraining.Guid = CGuid(&H163175E6, &H2674, &H4396, &HA238, &HAFF9B0B5, &HCD89) FingerAufNeutralTraining.Tag = ebEmptyText Set FingerAufNeutralTrainingEchoClients = New EchoClientCollection FingerAufNeutralTraining.LoadProperties Set Baustein1500msFixation = New Slide Baustein1500msFixation.Name = ebUCase_B & ebLCase_a & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_e & ebLCase_i & ebLCase_n & ebDigit_1 & ebDigit_5 & ebDigit_0 & ebDigit_0 & ebLCase_m & ebLCase_s & ebUCase_F & ebLCase_i & ebLCase_x & ebLCase_a & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n '{84865293-DFB2-4468-A0BA-67F4659975B5} Baustein1500msFixation.Guid = CGuid(&H84865293, &HDFB2, &H4468, &HA0BA, &H67F46599, &H75B5) Baustein1500msFixation.Tag = ebEmptyText Baustein1500msFixation.LoadProperties Set FeedbackTrainingsblock = New Slide FeedbackTrainingsblock.Name = ebUCase_F & ebLCase_e & ebLCase_e & ebLCase_d & ebLCase_b & ebLCase_a & ebLCase_c & ebLCase_k & ebUCase_T & ebLCase_r & ebLCase_a & ebLCase_i & ebLCase_n & ebLCase_i & ebLCase_n & ebLCase_g & ebLCase_s & ebLCase_b & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k '{7C5840A2-19E3-4E62-A7A7-0D7155CF15AA} FeedbackTrainingsblock.Guid = CGuid(&H7C5840A2, &H19E3, &H4E62, &HA7A7, &H0D7155CF, &H15AA) FeedbackTrainingsblock.Tag = ebEmptyText Set FeedbackTrainingsblockEchoClients = New EchoClientCollection FeedbackTrainingsblock.LoadProperties Set Instruktionen3 = New Slide Instruktionen3.Name = ebUCase_I & ebLCase_n & ebLCase_s & ebLCase_t & ebLCase_r & ebLCase_u & ebLCase_k & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_e & ebLCase_n & ebDigit_3 '{96A7591F-E8B7-4F43-AFBC-26AA01A5BB68} Instruktionen3.Guid = CGuid(&H96A7591F, &HE8B7, &H4F43, &HAFBC, &H26AA01A5, &HBB68) Instruktionen3.Tag = ebEmptyText Set Instruktionen3EchoClients = New EchoClientCollection Instruktionen3.LoadProperties Set Testliste = New List Testliste.Name = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_l & ebLCase_i & ebLCase_s & ebLCase_t & ebLCase_e '{D18AE29F-E3E1-4037-9929-66C15CC03C15} Testliste.Guid = CGuid(&HD18AE29F, &HE3E1, &H4037, &H9929, &H66C15CC0, &H3C15) Testliste.Tag = ebEmptyText 'Initialization for Testliste Set Testliste.Order = New SequentialOrder Set Testliste.Deletion = NoDeletion Testliste.ResetEveryRun = False Testliste.LoadProperties Set Testliste.TerminateCondition = Cycles(1) Set Testliste.ResetCondition = Samples(6) Testliste.Reset Set Testprog = New Procedure Testprog.Name = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g '{98BF4299-593B-40BF-B77D-040950066D22} Testprog.Guid = CGuid(&H98BF4299, &H593B, &H40BF, &HB77D, &H04095006, &H6D22) Testprog.Tag = ebEmptyText Testprog.LoadProperties Testprog.Subroutine = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g & ebUnderscore & ebUCase_R & ebLCase_u & ebLCase_n Set Testprog_theCollection = New RteCollection Set Ruhemessung = New Slide Ruhemessung.Name = ebUCase_R & ebLCase_u & ebLCase_h & ebLCase_e & ebLCase_m & ebLCase_e & ebLCase_s & ebLCase_s & ebLCase_u & ebLCase_n & ebLCase_g '{7DB91AE1-B5A5-4C74-8196-C07551889EC0} Ruhemessung.Guid = CGuid(&H7DB91AE1, &HB5A5, &H4C74, &H8196, &HC0755188, &H9EC0) Ruhemessung.Tag = ebEmptyText Ruhemessung.LoadProperties Set Testblockliste = New List Testblockliste.Name = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_b & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k & ebLCase_l & ebLCase_i & ebLCase_s & ebLCase_t & ebLCase_e '{CE094F69-223B-4E44-A041-A2E32E3885DE} Testblockliste.Guid = CGuid(&HCE094F69, &H223B, &H4E44, &HA041, &HA2E32E38, &H85DE) Testblockliste.Tag = ebEmptyText 'Initialization for Testblockliste Set Testblockliste.Order = New RandomOrder CRandomOrder(Testblockliste.Order).NoRepeatAfterReset = True Set Testblockliste.Deletion = NoDeletion Testblockliste.ResetEveryRun = False Testblockliste.LoadProperties Set Testblockliste.TerminateCondition = Cycles(1) Set Testblockliste.ResetCondition = Samples(4) Testblockliste.Reset Set Testblockprog = New Procedure Testblockprog.Name = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_b & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g '{09806A17-9284-4049-AD9F-88AAB3CC4B07} Testblockprog.Guid = CGuid(&H09806A17, &H9284, &H4049, &HAD9F, &H88AAB3CC, &H4B07) Testblockprog.Tag = ebEmptyText Testblockprog.LoadProperties Testblockprog.Subroutine = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_b & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g & ebUnderscore & ebUCase_R & ebLCase_u & ebLCase_n Set Testblockprog_theCollection = New RteCollection Set InstruktionenBlocktypTest = New Slide InstruktionenBlocktypTest.Name = ebUCase_I & ebLCase_n & ebLCase_s & ebLCase_t & ebLCase_r & ebLCase_u & ebLCase_k & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_e & ebLCase_n & ebUCase_B & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k & ebLCase_t & ebLCase_y & ebLCase_p & ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t '{7026EB9C-460C-4181-B0AD-15D04761674D} InstruktionenBlocktypTest.Guid = CGuid(&H7026EB9C, &H460C, &H4181, &HB0AD, &H15D04761, &H674D) InstruktionenBlocktypTest.Tag = ebEmptyText Set InstruktionenBlocktypTestEchoClients = New EchoClientCollection InstruktionenBlocktypTest.LoadProperties Set Baustein1500msFixationTest = New Slide Baustein1500msFixationTest.Name = ebUCase_B & ebLCase_a & ebLCase_u & ebLCase_s & ebLCase_t & ebLCase_e & ebLCase_i & ebLCase_n & ebDigit_1 & ebDigit_5 & ebDigit_0 & ebDigit_0 & ebLCase_m & ebLCase_s & ebUCase_F & ebLCase_i & ebLCase_x & ebLCase_a & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t '{476EDACF-8FB8-4A00-86FA-2F68B98FBBDD} Baustein1500msFixationTest.Guid = CGuid(&H476EDACF, &H8FB8, &H4A00, &H86FA, &H2F68B98F, &HBBDD) Baustein1500msFixationTest.Tag = ebEmptyText Baustein1500msFixationTest.LoadProperties Set Testtrialliste = New List Testtrialliste.Name = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_t & ebLCase_r & ebLCase_i & ebLCase_a & ebLCase_l & ebLCase_l & ebLCase_i & ebLCase_s & ebLCase_t & ebLCase_e '{1FCF8AC1-F17B-4BB3-8EF8-9965F3987DA3} Testtrialliste.Guid = CGuid(&H1FCF8AC1, &HF17B, &H4BB3, &H8EF8, &H9965F398, &H7DA3) Testtrialliste.Tag = ebEmptyText 'Initialization for Testtrialliste Set Testtrialliste.Order = New RandomOrder CRandomOrder(Testtrialliste.Order).NoRepeatAfterReset = True Set Testtrialliste.Deletion = NoDeletion Testtrialliste.ResetEveryRun = False Testtrialliste.LoadProperties Set Testtrialliste.TerminateCondition = Cycles(1) Set Testtrialliste.ResetCondition = Samples(24) Testtrialliste.Reset Set TestTrialprog = New Procedure TestTrialprog.Name = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebUCase_T & ebLCase_r & ebLCase_i & ebLCase_a & ebLCase_l & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g '{69E73835-7B69-41B6-A3CB-93F4CEE6BB66} TestTrialprog.Guid = CGuid(&H69E73835, &H7B69, &H41B6, &HA3CB, &H93F4CEE6, &HBB66) TestTrialprog.Tag = ebEmptyText TestTrialprog.LoadProperties TestTrialprog.Subroutine = ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebUCase_T & ebLCase_r & ebLCase_i & ebLCase_a & ebLCase_l & ebLCase_p & ebLCase_r & ebLCase_o & ebLCase_g & ebUnderscore & ebUCase_R & ebLCase_u & ebLCase_n Set TestTrialprog_theCollection = New RteCollection Set FixationTest = New Slide FixationTest.Name = ebUCase_F & ebLCase_i & ebLCase_x & ebLCase_a & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t '{F3DB44FC-F442-46B1-92A0-4A8E8AC229B9} FixationTest.Guid = CGuid(&HF3DB44FC, &HF442, &H46B1, &H92A0, &H4A8E8AC2, &H29B9) FixationTest.Tag = ebEmptyText FixationTest.LoadProperties Set TargetTest = New Slide TargetTest.Name = ebUCase_T & ebLCase_a & ebLCase_r & ebLCase_g & ebLCase_e & ebLCase_t & ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t '{EF1FB47E-09BB-4B8A-89C5-75EB8F16F3A9} TargetTest.Guid = CGuid(&HEF1FB47E, &H09BB, &H4B8A, &H89C5, &H75EB8F16, &HF3A9) TargetTest.Tag = ebEmptyText Set TargetTestEchoClients = New EchoClientCollection TargetTest.LoadProperties Set FeedbackTestblock = New Slide FeedbackTestblock.Name = ebUCase_F & ebLCase_e & ebLCase_e & ebLCase_d & ebLCase_b & ebLCase_a & ebLCase_c & ebLCase_k & ebUCase_T & ebLCase_e & ebLCase_s & ebLCase_t & ebLCase_b & ebLCase_l & ebLCase_o & ebLCase_c & ebLCase_k '{B94D1A45-6877-4F22-A0DD-5F087D6959F6} FeedbackTestblock.Guid = CGuid(&HB94D1A45, &H6877, &H4F22, &HA0DD, &H5F087D69, &H59F6) FeedbackTestblock.Tag = ebEmptyText Set FeedbackTestblockEchoClients = New EchoClientCollection FeedbackTestblock.LoadProperties Set Instruktionen4 = New Slide Instruktionen4.Name = ebUCase_I & ebLCase_n & ebLCase_s & ebLCase_t & ebLCase_r & ebLCase_u & ebLCase_k & ebLCase_t & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_e & ebLCase_n & ebDigit_4 '{64C4FE92-3B97-419F-9BD8-C5B279E732E8} Instruktionen4.Guid = CGuid(&H64C4FE92, &H3B97, &H419F, &H9BD8, &HC5B279E7, &H32E8) Instruktionen4.Tag = ebEmptyText Set Instruktionen4EchoClients = New EchoClientCollection Instruktionen4.LoadProperties Set Pause = New Slide Pause.Name = ebUCase_P & ebLCase_a & ebLCase_u & ebLCase_s & ebLCase_e '{25FEE29A-7BA7-4239-BE4A-FA492381AAB1} Pause.Guid = CGuid(&H25FEE29A, &H7BA7, &H4239, &HBE4A, &HFA492381, &HAAB1) Pause.Tag = ebEmptyText Pause.LoadProperties Set Verabschiedung = New Slide Verabschiedung.Name = ebUCase_V & ebLCase_e & ebLCase_r & ebLCase_a & ebLCase_b & ebLCase_s & ebLCase_c & ebLCase_h & ebLCase_i & ebLCase_e & ebLCase_d & ebLCase_u & ebLCase_n & ebLCase_g '{639274B1-ABD4-4DAE-B2DB-1ED18877C2A6} Verabschiedung.Guid = CGuid(&H639274B1, &HABD4, &H4DAE, &HB2DB, &H1ED18877, &HC2A6) Verabschiedung.Tag = ebEmptyText Set VerabschiedungEchoClients = New EchoClientCollection Verabschiedung.LoadProperties End Sub '-------------------------------------------------------------------------- ' InitPackages ' '-------------------------------------------------------------------------- Sub InitPackages(c As Context) End Sub '-------------------------------------------------------------------------- ' InitGlobals ' '-------------------------------------------------------------------------- Sub InitGlobals(c As Context) 'Assign Context to the StartupInfo object Set Rte.StartupInfo.Context = c 'Load and Transfer external StartupInfo Rte.StartupInfo.Load Rte.StartupInfo.Transfer End Sub '-------------------------------------------------------------------------- '-------------------------------------------------------------------------- '-------------------------------------------------------------------------- ' UnInitGlobals '-------------------------------------------------------------------------- Sub UnInitGlobals() 'Close the external StartupInfo Rte.StartupInfo.Close End Sub '-------------------------------------------------------------------------- ' UnInitDevices '-------------------------------------------------------------------------- Sub UnInitDevices() 'UnInit All Devices Rte.DeviceManager.UnInit Display.Close Set Display = Nothing Keyboard.Close Set Keyboard = Nothing Mouse.Close Set Mouse = Nothing Sound.Close SRBOX.Close Set SRBOX = Nothing End Sub '-------------------------------------------------------------------------- '-------------------------------------------------------------------------- ' UnInitPackages '-------------------------------------------------------------------------- Sub UnInitPackages() End Sub '-------------------------------------------------------------------------- ' UnInitObjects ' '-------------------------------------------------------------------------- Sub UnInitObjects() Set SessionProc = Nothing Set Instruktionen1 = Nothing Set Instruktionen1EchoClients = Nothing Set Instruktionen2 = Nothing Set Instruktionen2EchoClients = Nothing Set FingerAufNeutral = Nothing Set FingerAufNeutralEchoClients = Nothing Set Trainingstrialliste = Nothing Set Trialprog = Nothing Set Fixation = Nothing Set Target = Nothing Set TargetEchoClients = Nothing Set Feedback = Nothing Set FeedbackEchoClients = Nothing Set Trainingsblockliste = Nothing Set Trainingsblockprog = Nothing Set Eins = Nothing Set EinsEchoClients = Nothing Set Zwei = Nothing Set ZweiEchoClients = Nothing Set Drei = Nothing Set DreiEchoClients = Nothing Set Vier = Nothing Set VierEchoClients = Nothing Set InstruktionenBlocktyp = Nothing Set InstruktionenBlocktypEchoClients = Nothing Set FingerAufNeutralTraining = Nothing Set FingerAufNeutralTrainingEchoClients = Nothing Set Baustein1500msFixation = Nothing Set FeedbackTrainingsblock = Nothing Set FeedbackTrainingsblockEchoClients = Nothing Set Instruktionen3 = Nothing Set Instruktionen3EchoClients = Nothing Set Testliste = Nothing Set Testprog = Nothing Set Ruhemessung = Nothing Set Testblockliste = Nothing Set Testblockprog = Nothing Set InstruktionenBlocktypTest = Nothing Set InstruktionenBlocktypTestEchoClients = Nothing Set Baustein1500msFixationTest = Nothing Set Testtrialliste = Nothing Set TestTrialprog = Nothing Set FixationTest = Nothing Set TargetTest = Nothing Set TargetTestEchoClients = Nothing Set FeedbackTestblock = Nothing Set FeedbackTestblockEchoClients = Nothing Set Instruktionen4 = Nothing Set Instruktionen4EchoClients = Nothing Set Pause = Nothing Set Verabschiedung = Nothing Set VerabschiedungEchoClients = Nothing End Sub '-------------------------------------------------------------------------- ' Main ' '-------------------------------------------------------------------------- Sub Main() ' Create and initialize the default context, data file, ' and provide global access to the context. Dim c As Context Set c = New Context c.Name = "ebContext" Set c.DataFile = New DataFile c.PushNewFrame Set ebContext = c ' Set the log level names c.SetLogLevelName 1, "Session" c.SetLogLevelName 2, "Block" c.SetLogLevelName 3, "Trial" c.SetLogLevelName 4, "SubTrial" c.SetLogLevelName 5, "LogLevel5" c.SetLogLevelName 6, "LogLevel6" c.SetLogLevelName 7, "LogLevel7" c.SetLogLevelName 8, "LogLevel8" c.SetLogLevelName 9, "LogLevel9" c.SetLogLevelName 10, "LogLevel10" ' Set standard logging items ebContext.SetAttrib "Experiment", "nBack" ebContext.SetAttrib "SessionDate", Date$ ebContext.SetAttrib "SessionTime", Time$ ebContext.SetAttrib "SessionStartDateTimeUtc", NowUtc() 'Initialize global variables for packages InitGlobals c ' Initialize the Display Device(s) for runtime Dim DisplayDisplayDeviceInfo As DisplayDeviceInfo DisplayDisplayDeviceInfo.DefaultColor = Color.White DisplayDisplayDeviceInfo.DisplayIndex = 1 If c.AttribExists(ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebDot & ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_o & ebLCase_r) Then DisplayDisplayDeviceInfo.DefaultColor = CColor(c.GetAttrib(ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebDot & ebUCase_D & ebLCase_e & ebLCase_f & ebLCase_a & ebLCase_u & ebLCase_l & ebLCase_t & ebUCase_C & ebLCase_o & ebLCase_l & ebLCase_o & ebLCase_r)) If c.AttribExists(ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebDot & ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebUCase_I & ebLCase_n & ebLCase_d & ebLCase_e & ebLCase_x) Then DisplayDisplayDeviceInfo.DisplayIndex = CLng(c.GetAttrib(ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebDot & ebUCase_D & ebLCase_i & ebLCase_s & ebLCase_p & ebLCase_l & ebLCase_a & ebLCase_y & ebUCase_I & ebLCase_n & ebLCase_d & ebLCase_e & ebLCase_x)) CreateDefaultPort DisplayDisplayDeviceInfo.DefaultColor, "", DisplayDisplayDeviceInfo.DisplayIndex If Basic.OS = ebWin32 Then WinActivate "E-Run Experiment Window" End If ' Get the StartupInfo ' Set the defaults for all of the StartupInfo If Not c.AttribExists("Stoerung") Then c.SetAttrib "Stoerung", "Nein" If Not c.AttribExists("Kappenausrichtung") Then c.SetAttrib "Kappenausrichtung", "Nein" If Not c.AttribExists("Abstand") Then c.SetAttrib "Abstand", "Nein" If Not c.AttribExists("Haare") Then c.SetAttrib "Haare", "Nein" If Not c.AttribExists("Speichern") Then c.SetAttrib "Speichern", "Nein" If Not c.AttribExists("Kabel") Then c.SetAttrib "Kabel", "Nein" If Not c.AttribExists("Licht") Then c.SetAttrib "Licht", "Nein" If Not c.AttribExists("Duschhaube") Then c.SetAttrib "Duschhaube", "Nein" If Not c.AttribExists("Quality1") Then c.SetAttrib "Quality1", "0" If Not c.AttribExists("Quality2") Then c.SetAttrib "Quality2", "Nein" If Not c.AttribExists("Triggerkabel") Then c.SetAttrib "Triggerkabel", "Nein" If Not c.AttribExists("Aufnahme") Then c.SetAttrib "Aufnahme", "Nein" If Not c.AttribExists("Subject") Then c.SetAttrib "Subject", "101" If Not c.AttribExists("Session") Then c.SetAttrib "Session", "1" If Not c.AttribExists("Age") Then c.SetAttrib "Age", "0" If Not c.AttribExists("Sex") Then c.SetAttrib "Sex", "weiblich" If Not c.AttribExists("Handedness") Then c.SetAttrib "Handedness", "rechts" If Not c.AttribExists("Brille") Then c.SetAttrib "Brille", "Nein" ' Determine if StartupInfo.UseDefaults exists and is True/False to override prompts for StartupInfo parameters Dim bStartupInfoUseDefaults As Boolean bStartupInfoUseDefaults = False If c.AttribExists("StartupInfo.UseDefaults") Then bStartupInfoUseDefaults = CLogical(c.GetAttrib("StartupInfo.UseDefaults")) If Not bStartupInfoUseDefaults Then Dim vAnswer As Variant StartupInfo_Begin: StartupInfoPrompt_Stoerung: Dim arrayChoicesStoerung(2) arrayChoicesStoerung(0) = "Nein" arrayChoicesStoerung(1) = "Ja" vAnswer = SelectBox(, "Hängt 'Nicht stören'-Schild?", arrayChoicesStoerung) If vAnswer >= 0 then c.SetAttrib "Stoerung", arrayChoicesStoerung(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Kappenausrichtung: Dim arrayChoicesKappenausrichtung(2) arrayChoicesKappenausrichtung(0) = "Nein" arrayChoicesKappenausrichtung(1) = "Ja" vAnswer = SelectBox(, "Kappe bei Nasion-Inion 10%?", arrayChoicesKappenausrichtung) If vAnswer >= 0 then c.SetAttrib "Kappenausrichtung", arrayChoicesKappenausrichtung(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Abstand: Dim arrayChoicesAbstand(2) arrayChoicesAbstand(0) = "Nein" arrayChoicesAbstand(1) = "Ja" vAnswer = SelectBox(, "Abstand 65 cm?", arrayChoicesAbstand) If vAnswer >= 0 then c.SetAttrib "Abstand", arrayChoicesAbstand(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Haare: Dim arrayChoicesHaare(3) arrayChoicesHaare(0) = "Nein" arrayChoicesHaare(1) = "Ja" arrayChoicesHaare(2) = "Nicht nötig, kurze Haare" vAnswer = SelectBox(, "Mittelscheitel gezogen?", arrayChoicesHaare) If vAnswer >= 0 then c.SetAttrib "Haare", arrayChoicesHaare(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Speichern: Dim arrayChoicesSpeichern(2) arrayChoicesSpeichern(0) = "Nein" arrayChoicesSpeichern(1) = "Ja" vAnswer = SelectBox(, "Häkchen Homer2 gesetzt?", arrayChoicesSpeichern) If vAnswer >= 0 then c.SetAttrib "Speichern", arrayChoicesSpeichern(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Kabel: Dim arrayChoicesKabel(2) arrayChoicesKabel(0) = "Nein" arrayChoicesKabel(1) = "Ja" vAnswer = SelectBox(, "PC-, fNIRS-Kabel ausgesteckt?", arrayChoicesKabel) If vAnswer >= 0 then c.SetAttrib "Kabel", arrayChoicesKabel(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Licht: Dim arrayChoicesLicht(2) arrayChoicesLicht(0) = "Nein" arrayChoicesLicht(1) = "Ja" vAnswer = SelectBox(, "Licht aus vorm Kalibrieren?", arrayChoicesLicht) If vAnswer >= 0 then c.SetAttrib "Licht", arrayChoicesLicht(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Duschhaube: Dim arrayChoicesDuschhaube(2) arrayChoicesDuschhaube(0) = "Nein" arrayChoicesDuschhaube(1) = "Ja" vAnswer = SelectBox(, "Duschhaube aufgesetzt?", arrayChoicesDuschhaube) If vAnswer >= 0 then c.SetAttrib "Duschhaube", arrayChoicesDuschhaube(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Quality1: vAnswer = AskBox("Anzahl grüner Kanäle:", c.GetAttrib("Quality1")) If Not IsEmpty(vAnswer) then If Not IsNumeric(vAnswer) then MsgBox "Please enter an integer value" GoTo StartupInfoPrompt_Quality1 ElseIf CLng(vAnswer) < 0 Then MsgBox "The value for Quality1 must not be less than 0" GoTo StartupInfoPrompt_Quality1 ElseIf CLng(vAnswer) > 18 Then MsgBox "The value for Quality1 must not be greater than 18" GoTo StartupInfoPrompt_Quality1 End If Else GoTo ExperimentAbort End if c.SetAttrib "Quality1", CStr(vAnswer) StartupInfoPrompt_Quality2: Dim arrayChoicesQuality2(3) arrayChoicesQuality2(0) = "Nein" arrayChoicesQuality2(1) = "Ja" arrayChoicesQuality2(2) = "Nicht nötig, alles grün" vAnswer = SelectBox(, "Qualitätsmessung gespeichert?", arrayChoicesQuality2) If vAnswer >= 0 then c.SetAttrib "Quality2", arrayChoicesQuality2(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Triggerkabel: Dim arrayChoicesTriggerkabel(2) arrayChoicesTriggerkabel(0) = "Nein" arrayChoicesTriggerkabel(1) = "Ja" vAnswer = SelectBox(, "Triggerkabel verbunden?", arrayChoicesTriggerkabel) If vAnswer >= 0 then c.SetAttrib "Triggerkabel", arrayChoicesTriggerkabel(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Aufnahme: Dim arrayChoicesAufnahme(2) arrayChoicesAufnahme(0) = "Nein" arrayChoicesAufnahme(1) = "Ja" vAnswer = SelectBox(, "Aufnahme gestartet?", arrayChoicesAufnahme) If vAnswer >= 0 then c.SetAttrib "Aufnahme", arrayChoicesAufnahme(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Subject: vAnswer = AskBox("Please enter the Subject Number (0=No Data Logging):", c.GetAttrib("Subject")) If Not IsEmpty(vAnswer) then If Not IsNumeric(vAnswer) then MsgBox "Please enter an integer value" GoTo StartupInfoPrompt_Subject ElseIf CLng(vAnswer) < 0 Then MsgBox "The value for Subject must not be less than 0" GoTo StartupInfoPrompt_Subject ElseIf CLng(vAnswer) > 999 Then MsgBox "The value for Subject must not be greater than 999" GoTo StartupInfoPrompt_Subject End If Else GoTo ExperimentAbort End if c.SetAttrib "Subject", CStr(vAnswer) StartupInfoPrompt_Age: vAnswer = AskBox("Alter der VP (0-150):", c.GetAttrib("Age")) If Not IsEmpty(vAnswer) then If Not IsNumeric(vAnswer) then MsgBox "Please enter an integer value" GoTo StartupInfoPrompt_Age ElseIf CLng(vAnswer) < 0 Then MsgBox "The value for Age must not be less than 0" GoTo StartupInfoPrompt_Age ElseIf CLng(vAnswer) > 150 Then MsgBox "The value for Age must not be greater than 150" GoTo StartupInfoPrompt_Age End If Else GoTo ExperimentAbort End if c.SetAttrib "Age", CStr(vAnswer) StartupInfoPrompt_Sex: Dim arrayChoicesSex(3) arrayChoicesSex(0) = "weiblich" arrayChoicesSex(1) = "männlich" arrayChoicesSex(2) = "diverse" vAnswer = SelectBox(, "Geschlecht der VP", arrayChoicesSex) If vAnswer >= 0 then c.SetAttrib "Sex", arrayChoicesSex(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Handedness: Dim arrayChoicesHandedness(2) arrayChoicesHandedness(0) = "rechts" arrayChoicesHandedness(1) = "links" vAnswer = SelectBox(, "Händichkeit der VP", arrayChoicesHandedness) If vAnswer >= 0 then c.SetAttrib "Handedness", arrayChoicesHandedness(vAnswer) Else GoTo ExperimentAbort End If StartupInfoPrompt_Brille: Dim arrayChoicesBrille(2) arrayChoicesBrille(0) = "Nein" arrayChoicesBrille(1) = "Ja" vAnswer = SelectBox(, "Brille oder Kontaktlinsen?", arrayChoicesBrille) If vAnswer >= 0 then c.SetAttrib "Brille", arrayChoicesBrille(vAnswer) Else GoTo ExperimentAbort End If ' Display the summary Dim strSummary As String strSummary = "Stoerung: " & c.GetAttrib("Stoerung") & "\n" strSummary = strSummary & "Kappenausrichtung: " & c.GetAttrib("Kappenausrichtung") & "\n" strSummary = strSummary & "Abstand: " & c.GetAttrib("Abstand") & "\n" strSummary = strSummary & "Haare: " & c.GetAttrib("Haare") & "\n" strSummary = strSummary & "Speichern: " & c.GetAttrib("Speichern") & "\n" strSummary = strSummary & "Kabel: " & c.GetAttrib("Kabel") & "\n" strSummary = strSummary & "Licht: " & c.GetAttrib("Licht") & "\n" strSummary = strSummary & "Duschhaube: " & c.GetAttrib("Duschhaube") & "\n" strSummary = strSummary & "Quality1: " & c.GetAttrib("Quality1") & "\n" strSummary = strSummary & "Quality2: " & c.GetAttrib("Quality2") & "\n" strSummary = strSummary & "Triggerkabel: " & c.GetAttrib("Triggerkabel") & "\n" strSummary = strSummary & "Aufnahme: " & c.GetAttrib("Aufnahme") & "\n" strSummary = strSummary & "Subject: " & c.GetAttrib("Subject") & "\n" strSummary = strSummary & "Age: " & c.GetAttrib("Age") & "\n" strSummary = strSummary & "Sex: " & c.GetAttrib("Sex") & "\n" strSummary = strSummary & "Handedness: " & c.GetAttrib("Handedness") & "\n" strSummary = strSummary & "Brille: " & c.GetAttrib("Brille") & "\n" strSummary = strSummary & "\nContinue with the above startup info?" Dim nSummaryAnswer As Integer nSummaryAnswer = MsgBox(strSummary, ebYesNoCancel + ebQuestion, "Summary of Startup Info") If nSummaryAnswer = ebNo Then GoTo StartupInfo_Begin ElseIf nSummaryAnswer = ebCancel Then GoTo ExperimentAbort End If End If 'Assign the Clock.Scale value Clock.Scale = 1.000000 'If the attribute Clock.Scale.Override exists ' then use it for to set the Clock.Scale value If c.AttribExists("Clock.Scale.Override") Then Clock.Scale = CDbl(c.GetAttrib("Clock.Scale.Override")) End If ' Set the Filenames for the data files Dim strFilenameBase As String Dim strFilenameRecovery As String Dim strFilenameEDAT As String 'If the attribute DataFile.Filename.Override exists ' then use it for the .txt and .edat2 filenames If c.AttribExists("DataFile.Filename.Override") Then ' Set the default Data Filename strFilenameBase = CStr(c.GetAttrib("DataFile.Filename.Override")) Else ' Set the default Data Filename strFilenameBase = c.GetAttrib("Experiment") &_ "-" &_ c.GetAttrib("Subject") &_ "-" &_ c.GetAttrib("Session") End If 'Set the name of the data file strFilenameRecovery = strFilenameBase & ".txt" strFilenameEDAT = strFilenameBase & ".edat2" c.DataFile.Filename = strFilenameRecovery c.SetAttrib "DataFile.Basename", strFilenameBase ' If we are logging data, then prompt to overwrite the data file if it exists If CLng(c.GetAttrib("Subject")) <> 0 Then If FileExists(c.DataFile.Filename) Or FileExists(strFilenameEDAT) Then If ebYes <> MsgBox("WARNING: The data file and/or recovery file already exists:\nFILE: " & c.DataFile.Filename & "\n\nDo you want to overwrite?", ebYesNo + ebQuestion) Then GoTo ExperimentAbort End If ' If you receive an error here then ensure that your E-Recovery (txt) file or ' the edat2 file is not open and then try the experiment run again. If FileExists(strFilenameEDAT) Then Kill strFilenameEDAT If FileExists(c.DataFile.Filename) Then Kill c.DataFile.Filename End If End If ' Set defaults for RandomSeed and GroupNumber if StartupInfo did not assign their values If Not c.AttribExists("RandomSeed") Then c.SetAttrib "RandomSeed", PRNG.GetSeed() If Not c.AttribExists("Group") Then c.SetAttrib "Group", "1" 'Set the random seed Randomize CLng(c.GetAttrib("RandomSeed")) ' Initialize Experiment Advisor Properties Rte.ExperimentAdvisor.LoadProperties If c.AttribExists("Rte.ExperimentAdvisor.Enabled") Then Rte.ExperimentAdvisor.Enabled = CLogical(c.GetAttrib("Rte.ExperimentAdvisor.Enabled")) If c.AttribExists("Rte.ExperimentAdvisor.Filename") Then Rte.ExperimentAdvisor.Filename = CStr(c.GetAttrib("Rte.ExperimentAdvisor.Filename")) Dim nPriority As Long 'Priority for init routines nPriority = 3 'Determine if the priority should use the override value If c.AttribExists("SetOSThreadPriority.Init.Override") Then nPriority = c.GetAttrib("SetOSThreadPriority.Init.Override") End If 'Update E-Prime Priority for INIT routines SetOSThreadPriority nPriority ' Initialize all system devices, packages, and objects InitDevices c InitPackages c InitObjects c 'Priority for start of experiment nPriority = -1 'Determine if the priority should use the override value If c.AttribExists("SetOSThreadPriority.Override") Then nPriority = c.GetAttrib("SetOSThreadPriority.Override") End If 'Update E-Prime Priority for start of experiment SetOSThreadPriority nPriority 'Disable System power save mode Rte.PreventSystemIdle = True If CLng(c.GetAttrib("Subject")) < 0 Then Rte.AbortExperiment 12102, ebUCase_S & ebLCase_u & ebLCase_b & ebLCase_j & ebLCase_e & ebLCase_c & ebLCase_t & ebSpace & ebLCase_c & ebLCase_a & ebLCase_n & ebLCase_n & ebLCase_o & ebLCase_t & ebSpace & ebLCase_b & ebLCase_e & ebSpace & ebLCase_l & ebLCase_e & ebLCase_s & ebLCase_s & ebSpace & ebLCase_t & ebLCase_h & ebLCase_a & ebLCase_n & ebSpace & ebDigit_0 & ebDot End If If CLng(c.GetAttrib("Session")) < 1 Then Rte.AbortExperiment 12103, ebUCase_S & ebLCase_e & ebLCase_s & ebLCase_s & ebLCase_i & ebLCase_o & ebLCase_n & ebSpace & ebLCase_c & ebLCase_a & ebLCase_n & ebLCase_n & ebLCase_o & ebLCase_t & ebSpace & ebLCase_b & ebLCase_e & ebSpace & ebLCase_l & ebLCase_e & ebLCase_s & ebLCase_s & ebSpace & ebLCase_t & ebLCase_h & ebLCase_a & ebLCase_n & ebSpace & ebDigit_1 & ebDot End If ' If we are logging data, then open the datafile If CLng(c.GetAttrib("Subject")) <> 0 Then c.DataFile.Open c.LogHeader End If 'Setup the DataFile.BaseName attribute c.SetAttrib "DataFile.BaseName", Replace(c.DataFile.Filename, ".txt", ebEmptyText) ' Log clock timing information c.SetAttrib "Clock.Information", Clock.Information ' Log E-Studio version c.SetAttrib "StudioVersion", "2.0.10.252" ' Log runtime version. c.SetAttrib "RuntimeVersion", Rte.Version.Major & ebDot & Rte.Version.Minor & ebDot & Rte.Version.Internal & ebDot & Rte.Version.Build c.SetAttrib "RuntimeVersionExpected", 2 & ebDot & 0 & ebDot & 10 & ebDot & 356 c.SetAttrib "RuntimeCapabilities", ebUCase_P & ebLCase_r & ebLCase_o & ebLCase_f & ebLCase_e & ebLCase_s & ebLCase_s & ebLCase_i & ebLCase_o & ebLCase_n & ebLCase_a & ebLCase_l ' Log experiment version c.SetAttrib "ExperimentVersion", "1.0.0.1089" ' ExperimentStart Rte.ExperimentStart ' Start the running of the Experiment SessionProc.Run c ' ExperimentFinish Rte.ExperimentFinish ' Clean up the context and close the datafile If CLng(c.GetAttrib("Subject")) <> 0 Then Dim nDataFileConvertProgress As Long nDataFileConvertProgress = ebProgressSimple If c.AttribExists("DataFile.ConvertProgress") Then nDataFileConvertProgress = CLng(c.GetAttrib("DataFile.ConvertProgress")) c.DataFile.Close ' Attempt to convert the recovery file into a data file Dim nConvert As Long nConvert = c.DataFile.Convert(nDataFileConvertProgress) If nConvert = 0 Then ' Settings in E-Studio are set to not remove E-Recovery file Else ' The datafile failed to convert! MsgBox "ERROR: The datafile did not convert!\nFILE: " & c.DataFile.Filename & "\n\nIt is recommended that you recover your data with the E-Recovery utility" MsgBox c.DataFile.GetLastErrorMessage() End If End If ExperimentFinish: UnInitObjects UnInitPackages UnInitDevices UnInitGlobals ' Experiment Advisor Report Generation If Rte.ExperimentAdvisor.Enabled = True Then If Len(Rte.ExperimentAdvisor.Filename) = 0 Then Rte.ExperimentAdvisor.Filename = Replace(c.DataFile.Filename, ".txt", "-ExperimentAdvisorReport.xml") Rte.ExperimentAdvisor.GenerateReport End If ExperimentAbort: ' Clean up the context c.PopFrame Set c = Nothing Set ebContext = Nothing DestroyDefaultPort End Sub