variables_motor['LickPort_RostroCaudal_pos'] = 0 print('protracting zaber motor to avoid watering the camera below..') variables_subject['motor_forwardposition'] = variables_motor[ 'LickPort_RostroCaudal_pos'] variables_subject['motor_retractedposition'] = variables_motor[ 'LickPort_RostroCaudal_pos'] + variables_subject['motor_retractiondistance'] #generate json files with open(setupfile, 'w') as outfile: json.dump(variables_setup, outfile) with open(subjectfile, 'w') as outfile: json.dump(variables_subject, outfile) print('json files (re)generated') my_bpod.softcode_handler_function = my_softcode_handler # Assign the SoftCode function variables = variables_subject.copy() variables.update(variables_setup) print('Variables:', variables) #print('subjectname for testing:',my_bpod.session.INFO_SUBJECT_NAME) # ============== Final preparations ============== # ----> Start the task ignore_trial_num_in_a_row = 0 if variables['accumulate_reward']: # Always get a reward on the first trial reward_L_accumulated = True reward_R_accumulated = True if lickportnum == 3: reward_M_accumulated = True
display_stim_event.set() print("present stimulus") elif data == settings_obj.SC_START_OPEN_LOOP: stimulus_game.stop_closed_loop_before() print("start open loop") elif data == settings_obj.SC_STOP_OPEN_LOOP: stimulus_game.stop_open_loop() print("stop open loop") elif data == settings_obj.SC_END_PRESENT_STIM: stimulus_game.stop_closed_loop_after() still_show_event.set() print("end present stim") elif data == 9: print("wheel not stopping") bpod.softcode_handler_function = softcode_handler #probability constructor probability_obj = ProbabilityConstuctor(settings_obj) #stimulus # failsave for stimulus file stimulus_game = Stimulus(settings_obj, rotary_encoder_module, probability_obj.stim_side_dict) sides_li = [] # times times_punish_li = [] # list of toples (bool insist mode active, insist mode side) insist_mode_li = [] # active rule list active_rule_li = []
'LickPort_RostroCaudal_pos': pos_Forward_Backward, } return variables_motor break except zaber_serial.binaryserial.serial.SerialException: print('can' 't access Zaber ' + str(zabertry_i)) time.sleep(.01) variables_motor = read_motor_position(variables['comport_motor']) variables['motor_forwardposition'] = variables_motor[ 'LickPort_RostroCaudal_pos'] variables['motor_retractedposition'] = variables_motor[ 'LickPort_RostroCaudal_pos'] + variables['motor_retractiondistance'] my_bpod.softcode_handler_function = my_softcode_handler print('Variables:', variables) #print('subjectname for testing:',my_bpod.session.INFO_SUBJECT_NAME) # ----> Start the task ignore_trial_num_in_a_row = 0 for blocki, (p_R, p_L) in enumerate( zip(variables['reward_probabilities_R'], variables['reward_probabilities_L'])): rewarded_trial_num = 0 unrewarded_trial_num_in_a_row = 0 triali = -1 #for triali in range(variables['Trialnumber_in_block']): # Main loop trialnum_now = np.random.normal(variables['Trialnumber_in_block'],