class Experiment(object): def __init__(self): self._connection = connect_client(type=peers.LOGIC) self._long_mgr = UgmConfigManager() self._long_mgr.update_from_file(LONG_FILE, True) self._word_mgr = UgmConfigManager() self._word_mgr.update_from_file(WORD_FILE, True) self.fixation = '+' self.mask = 'XXXXXXXXXXXXXX' self.available_keys = ['1', '2', '3', '4', '5'] self.word_config = {'id': 5555, 'message': ''} self.img_config = {'id': 6666, 'image_path': ''} self.data_manager = DataManager() self.run_tag = {} def run(self): #time.sleep(INIT_SLEEP) l_saver_control = signal_saver_control.SignalSaverControl() l_saver_control.start_saving() self.send_text(u"Gotowy? Aby rozpocząć wciśnij '1'.") keystroke.wait(['1']) for i in range(self.data_manager.words_count()): self.send_fixation() self.send_mask1() self.send_word(self.data_manager.words[i]) self.send_mask2() self.send_long_view() self.send_run_tag() self.send_text(u"Dziękujemy") print("ALL DONE", l_saver_control.finish_saving()) def send_text(self, text): self.word_config['message'] = text self._word_mgr.set_config(self.word_config) self.send_to_ugm(self._word_mgr.config_to_message(), 0) def send_fixation(self): self.word_config['message'] = self.fixation self._word_mgr.set_config(self.word_config) self.send_to_ugm(self._word_mgr.config_to_message(), 0) self.run_tag['fix_start_timestamp'] = time.time() time.sleep(SLEEP_FIX_MIN + random.random() * (SLEEP_FIX_MAX - SLEEP_FIX_MIN)) pass def send_mask1(self): self.send_mask('mask1_start_timestamp') def send_mask2(self): self.send_mask('mask2_start_timestamp') def send_mask(self, tag_entry): self.word_config['message'] = self.mask self.send_to_ugm(str([self.word_config])) self.run_tag[tag_entry] = time.time() time.sleep(SLEEP_MASK) pass def send_word(self, word): self.word_config['message'] = word[1] self.send_to_ugm(str([self.word_config])) self.run_tag['word_start_timestamp'] = time.time() self.run_tag['word_message'] = word[1] self.run_tag['word_group'] = word[0] time.sleep(SLEEP_WORD) def send_long_view(self): self.img_config['image_path'] = self.data_manager.next_image() self._long_mgr.set_config(self.img_config) self.send_to_ugm(self._long_mgr.config_to_message(), 0) start = time.time() # Now wait for user input key = keystroke.wait(self.available_keys) end = time.time() self.run_tag['key_start_timestamp'] = start self.run_tag['key_end_timestamp'] = end self.run_tag['key_answer'] = key #time.sleep(SLEEP_LONG) def send_run_tag(self): now = time.time() TAGGER.send_tag(now, now, 'experiment_run', self.run_tag) def send_to_ugm(self, config_value, msg_type=1): l_type = msg_type l_msg = variables_pb2.UgmUpdate() l_msg.type = int(l_type) l_msg.value = config_value self._connection.send_message(message=l_msg.SerializeToString(), type=types.UGM_UPDATE_MESSAGE, flush=True)
class Experiment(object): def __init__(self): self._connection = connect_client(type = peers.LOGIC) self._long_mgr = UgmConfigManager() self._long_mgr.update_from_file(LONG_FILE, True) self._word_mgr = UgmConfigManager() self._word_mgr.update_from_file(WORD_FILE, True) self.fixation = '+' self.mask = 'XXXXXXXXXXXXXX' self.available_keys = ['1','2','3','4','5'] self.word_config = {'id':5555, 'message':''} self.img_config = {'id':6666, 'image_path':''} self.data_manager = DataManager() self.run_tag = {} def run(self): #time.sleep(INIT_SLEEP) l_saver_control = signal_saver_control.SignalSaverControl() l_saver_control.start_saving() self.send_text(u"Gotowy? Aby rozpocząć wciśnij '1'.") keystroke.wait(['1']) for i in range(self.data_manager.words_count()): self.send_fixation() self.send_mask1() self.send_word(self.data_manager.words[i]) self.send_mask2() self.send_long_view() self.send_run_tag() self.send_text(u"Dziękujemy") print("ALL DONE", l_saver_control.finish_saving()) def send_text(self, text): self.word_config['message'] = text self._word_mgr.set_config(self.word_config) self.send_to_ugm(self._word_mgr.config_to_message(), 0) def send_fixation(self): self.word_config['message'] = self.fixation self._word_mgr.set_config(self.word_config) self.send_to_ugm(self._word_mgr.config_to_message(), 0) self.run_tag['fix_start_timestamp'] = time.time() time.sleep(SLEEP_FIX_MIN + random.random()*(SLEEP_FIX_MAX-SLEEP_FIX_MIN)) pass def send_mask1(self): self.send_mask('mask1_start_timestamp') def send_mask2(self): self.send_mask('mask2_start_timestamp') def send_mask(self, tag_entry): self.word_config['message'] = self.mask self.send_to_ugm(str([self.word_config])) self.run_tag[tag_entry] = time.time() time.sleep(SLEEP_MASK) pass def send_word(self, word): self.word_config['message'] = word[1] self.send_to_ugm(str([self.word_config])) self.run_tag['word_start_timestamp'] = time.time() self.run_tag['word_message'] = word[1] self.run_tag['word_group'] = word[0] time.sleep(SLEEP_WORD) def send_long_view(self): self.img_config['image_path'] = self.data_manager.next_image() self._long_mgr.set_config(self.img_config) self.send_to_ugm(self._long_mgr.config_to_message(), 0) start = time.time() # Now wait for user input key = keystroke.wait(self.available_keys) end = time.time() self.run_tag['key_start_timestamp'] = start self.run_tag['key_end_timestamp'] = end self.run_tag['key_answer'] = key #time.sleep(SLEEP_LONG) def send_run_tag(self): now = time.time() TAGGER.send_tag(now, now, 'experiment_run', self.run_tag) def send_to_ugm(self, config_value, msg_type=1): l_type = msg_type l_msg = variables_pb2.UgmUpdate() l_msg.type = int(l_type) l_msg.value = config_value self._connection.send_message( message = l_msg.SerializeToString(), type=types.UGM_UPDATE_MESSAGE, flush=True)