def select_response(self) -> (str, str): """ Chooses an appropriate response based upon user's performance. Returns that response string""" print("RIVA msg number: ", self._RIVA_message_num) overall_avg = self.user_stats.new_overall_avg() scale_points = self.user_stats.get_scale_points(abs_val_list(grip_times(self._all_grips))) #print("overall avg: {}\n scale point 1: {} scale point 2: {}".format(overall_avg,scale_points[1],scale_points[2])) # if self._RIVA_message_num == 1: # return self.response_welcome() if self._last_response == "training_prompt": return self.response_training_response() '''elif self.user_stats.get_grip_avg(grip_number=self._last_worst_grip) > \ self.user_stats.get_scale_points(abs_val_list(grip_times(self._all_grips)))[2]: return self.response_training_prompt() ''' elif overall_avg > scale_points[2]: #print("Q2", scale_points[2]) return self.response_negative() elif overall_avg < scale_points[1]: #print("Q1", scale_points[1]) return self.response_positive() return self.response_training_prompt()
def response_positive(self): """ Returns a scaled string telling the user that their overall reaction time is good/great""" self._last_response = "positive_response" print("Positive Response") #print("scale =", self.user_stats.find_best_grip_scale(grip_times(self._all_grips))) return Mglove_str_gen.positive_response(self.user_stats.find_best_grip_scale(grip_times(self._all_grips)))
def response_negative(self): """ Returns a scaled string telling the user they need to improve their overall reaction time""" print("Negative Response") self._last_response = "negative_response" #print("scale = ", self.user_stats.find_worst_grip_scale(grip_times(self._all_grips))) return Mglove_str_gen.negative_response(self.user_stats.find_worst_grip_scale(grip_times(self._all_grips)))
def tester2(self) -> None: """Updates log file to simulate specified user interaction with MGlove """ grip_number = self.grip_number seconds = self.seconds self.clear_csv() while seconds > 0: print("2nd simulated song started") for i in range(32): self.update_csv(self.chosen_grip(grip_number,150)) seconds-=1 sleep(1) print("expect welcome") for i in range(32): seconds-=1 self.update_csv(self.chosen_grip(grip_number,300)) sleep(1) print("expect Negative") grip_list = grip_times(parse_csv(read_csv(CSV_functions.MUSICGLOVE))) user_stats = User_Stats(new_song=False) for i in range(32): seconds-=1 self.update_csv(self.chosen_grip(grip_number,1)) sleep(1) print("expect Positive") grip_list = grip_times(parse_csv(read_csv(CSV_functions.MUSICGLOVE))) user_stats = User_Stats(new_song=False) for i in range(7): seconds-=5 self.update_csv(self.chosen_grip(1,250)) for j in range(1,5): self.update_csv(self.chosen_grip(j+1,150)) sleep(5) print("expect red prompt") grip_list = grip_times(parse_csv(read_csv(CSV_functions.MUSICGLOVE))) user_stats = User_Stats(new_song=False) for i in range(7): seconds-=5 self.update_csv(self.chosen_grip(1,300)) for j in range(1,5): self.update_csv(self.chosen_grip(j+1,150)) sleep(5) print("expect Negative red response") grip_list = grip_times(parse_csv(read_csv(CSV_functions.MUSICGLOVE))) user_stats = User_Stats(new_song=False) for i in range(7): seconds-=5 self.update_csv(self.chosen_grip(1,150)) for j in range(1,5): self.update_csv(self.chosen_grip(j+1,150)) sleep(5) print("expect Positive red response") grip_list = grip_times(parse_csv(read_csv(CSV_functions.MUSICGLOVE))) user_stats = User_Stats(new_song=False) for i in range(7): seconds-=5 self.update_csv(self.chosen_grip(1,1)) for j in range(1,5): self.update_csv(self.chosen_grip(j+1,150)) sleep(5) print("2nd simulated song is over")
temp_list.append(line) new_list = [] print("Number of lines this song = ",len(temp_list)) for i in range(len(temp_list)): self.write_csv(new_list, temp_list[i]) new_list.append(temp_list[i]) sleep(1) if __name__ == "__main__": import CSV_functions from CSV_functions import read_csv from Interface import parse_csv, grip_times from time import sleep from user_stats import User_Stats with open(CSV_FILE, 'w', newline='') as outfile: outfile.write('') tester = N_test() tester.tester1() grip_list = grip_times(parse_csv(read_csv(CSV_functions.MUSICGLOVE))) user_stats = User_Stats() sleep(40) tester.tester2() sleep(40) tester.tester3()