Skip to content

Commit 0a811da

Browse files
committed
- Updated utility.Task_info class to show output from print_variables in the print box as earlier changes had stopped this working.
- Fixed bug introduced in recent changes where print_variables output was saved as repr(var_dict) not json.dumps(var_dict) in txt data files.
1 parent 50704e0 commit 0a811da

File tree

4 files changed

+14
-14
lines changed

4 files changed

+14
-14
lines changed

com/data_logger.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def data_to_string(self, new_data, verbose=False):
122122
if nd.ID == 'print':
123123
data_string += f'P {nd.time} {nd.data}\n'
124124
elif nd.ID in ('set','get'):
125-
for v_name, v_value in nd.data.items():
125+
for v_name, v_value in json.loads(nd.data).items():
126126
data_string += f'V {nd.time} {v_name} {v_value}\n'
127127
elif nd.type == '!': # Warning
128128
data_string += f'! {nd.data}\n'
@@ -140,7 +140,7 @@ def data_to_string(self, new_data, verbose=False):
140140
elif nd.type == 'P': # User print output.
141141
data_string += self.tsv_row_str('print', time=nd.time, value=nd.data)
142142
elif nd.type == 'V': # Variable.
143-
data_string += self.tsv_row_str('variable', time=nd.time, name=nd.ID, value=json.dumps(nd.data))
143+
data_string += self.tsv_row_str('variable', time=nd.time, name=nd.ID, value=nd.data)
144144
elif nd.type == '!': # Warning
145145
data_string += self.tsv_row_str('warning', value=nd.data)
146146
elif nd.type == '!!': # Error

com/pycboard.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -475,10 +475,10 @@ def process_data(self):
475475
new_data.append(Datatuple(type=data_type,time=timestamp, data=data_str))
476476
elif data_type == 'V': # Store new variable value in sm_info
477477
op_ID = {'g':'get', 's':'set', 'p':'print'}[data_str[0]]
478-
var_dict = json.loads(data_str[1:])
479-
for v_name, v_value in var_dict.items():
480-
self.sm_info['variables'][v_name] = v_value
481-
new_data.append(Datatuple(type='V',time=timestamp, ID=op_ID, data=var_dict))
478+
var_json = data_str[1:]
479+
var_dict = json.loads(var_json)
480+
self.sm_info['variables'].update(var_dict)
481+
new_data.append(Datatuple(type='V',time=timestamp, ID=op_ID, data=var_json))
482482
else:
483483
unexpected_input.append(type_byte.decode())
484484
elif new_byte == b'\x04': # End of framework run.

gui/run_experiment_tab.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ def start_task(self):
444444
self.data_logger.open_data_file(ex['data_dir'], ex['name'], self.setup_name, self.subject, ex['file_type'], datetime.now())
445445
if self.subject_variables: # Write variables set pre run to data file.
446446
var_dict = {v_name: eval(v_value) for v_name, v_value, pv in self.variables_set_pre_run}
447-
self.data_logger.write_to_file([Datatuple(type='V',time=0, ID='set', data=var_dict)])
447+
self.data_logger.write_to_file([Datatuple(type='V',time=0, ID='set', data=json.dumps(var_dict))])
448448
self.board.start_framework()
449449
self.start_stop_button.setText('Stop')
450450
self.start_stop_button.setIcon(QtGui.QIcon("gui/icons/stop.svg"))
@@ -479,7 +479,7 @@ def stop_task(self):
479479
if summary_variables:
480480
self.subject_sumr_vars = {v['name']:
481481
self.board.get_variable(v['name']) for v in summary_variables}
482-
self.data_logger.write_to_file([Datatuple(type='V',time=self.data_logger.end_time, ID='get', data=self.subject_sumr_vars)])
482+
self.data_logger.write_to_file([Datatuple(type='V',time=self.data_logger.end_time, ID='get', data=json.dumps(self.subject_sumr_vars))])
483483
# Close data files and disconnect from board.
484484
self.data_logger.close_files()
485485
self.board.close()

gui/utility.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -382,28 +382,28 @@ def __init__(self):
382382
def process_data(self, new_data):
383383
'''Update the state, event and print line info.'''
384384
try:
385-
new_state = next(self.sm_info['ID2name'][nd[2]] for nd in reversed(new_data)
386-
if nd[0] == 'D' and nd[2] in self.sm_info['states'].values())
385+
new_state = next(self.sm_info['ID2name'][nd.ID] for nd in reversed(new_data)
386+
if nd.type == 'D' and nd.ID in self.sm_info['states'].values())
387387
self.state_text.setText(new_state)
388388
self.state_text.home(False)
389389
except StopIteration:
390390
pass
391391
try:
392-
new_event = next(self.sm_info['ID2name'][nd[2]] for nd in reversed(new_data)
393-
if nd[0] == 'D' and nd[2] in self.sm_info['events'].values())
392+
new_event = next(self.sm_info['ID2name'][nd.ID] for nd in reversed(new_data)
393+
if nd.type == 'D' and nd.ID in self.sm_info['events'].values())
394394
self.event_text.setText(new_event)
395395
self.event_text.home(False)
396396
except StopIteration:
397397
pass
398398
try:
399-
new_print = next(nd[-1] for nd in reversed(new_data) if nd[0] == 'P')
399+
new_print = next(nd.data for nd in reversed(new_data) if nd.type == 'P' or nd.ID == 'print')
400400
self.print_text.setText(new_print)
401401
self.print_text.setStyleSheet('color: black;')
402402
self.print_text.home(False)
403403
except StopIteration:
404404
pass
405405
try:
406-
new_warning = next(nd[-1] for nd in reversed(new_data) if nd[0] == '!')
406+
new_warning = next(nd.data for nd in reversed(new_data) if nd.type == '!')
407407
self.print_text.setText('! ' + new_warning)
408408
self.print_text.setStyleSheet('color: orange;')
409409
self.print_text.home(False)

0 commit comments

Comments
 (0)