@@ -87,40 +87,40 @@ import harp
8787import pandas as pd
8888
8989# Load device reader
90- device = harp.create_reader(" ./data/device.yml " )
90+ device = harp.create_reader(" ./Hobgoblin.harp " )
9191
9292# Load digital input and digital output
93- df_digital_output_set = device.DigitalOutputSet.read()
94- df_digital_input_state = device.DigitalInputState.read()
93+ digital_output_set = device.DigitalOutputSet.read()
94+ digital_input_state = device.DigitalInputState.read()
9595
9696# Inspect dataframe
97- df_digital_output_set .head()
98- df_digital_input_state .head()
97+ print (digital_output_set .head() )
98+ print (digital_input_state .head() )
9999
100100# Discard_unused_channels
101- df_digital_output_set = df_digital_output_set [" GP15" ]
102- df_digital_input_state = df_digital_input_state [" GP2" ]
101+ digital_output_set = digital_output_set [" GP15" ]
102+ digital_input_state = digital_input_state [" GP2" ]
103103
104104# Keep digital_input_state == True values (when button is pressed)
105- df_digital_input_state = df_digital_input_state[df_digital_input_state == True ]
105+ digital_input_state = digital_input_state[digital_input_state == True ]
106106
107107# Extract valid responses (first button press that occurs within response_window, our ITI is ~1.2 second)
108108response_window = 1.0
109109valid_response_times = []
110- for led_on in df_digital_output_set .index:
111- for button_press in df_digital_input_state .index:
110+ for led_on in digital_output_set .index:
111+ for button_press in digital_input_state .index:
112112 response_time = button_press - led_on
113113 if 0 < response_time < response_window:
114114 valid_response_times.append(response_time)
115115
116116# Calculate and print hit/miss percentage
117117num_valid_responses = len (valid_response_times)
118- num_total_trials = len (df_digital_output_set .index)
118+ num_total_trials = len (digital_output_set .index)
119119hit_percentage = num_valid_responses / num_total_trials * 100
120120print (f " There were { num_valid_responses} valid responses out of { num_total_trials} trials, giving a hit rate of { hit_percentage} % " )
121121
122122# Plot valid response times
123- pd.Series(valid_response_times).plot(kind = " box" , ylim = (0 ,1 ), ylabel = " Response Times (seconds) " , title = " Boxplot of valid response times " )
123+ pd.Series(valid_response_times).plot(kind = " box" , ylim = (0 ,1 ))
124124```
125125
126126### Exercise 4: Driving state transitions with external behaviour events
0 commit comments