def save_data(self): try: path = select_file(start_path=self.settings.child( 'main_settings', 'base_path').value(), save=True, ext='h5') if path is not None: # init the file object with an addhoc name given by the user h5saver = H5Saver(save_type='custom') h5saver.init_file(update_h5=True, addhoc_file_path=path) # save all metadata settings_str = ioxml.parameter_to_xml_string(self.settings) settings_str = b'<All_settings>' + settings_str settings_str += ioxml.parameter_to_xml_string( self.detector.settings) + ioxml.parameter_to_xml_string( h5saver.settings) + b'</All_settings>' data_group = h5saver.add_data_group( h5saver.raw_group, group_data_type='data0D', title='data from custom app', settings_as_xml=settings_str) for dat in self.raw_data: channel = h5saver.add_CH_group(data_group) data_dict = dict(data=np.array(dat), x_axis=dict(data=np.linspace( 0, len(dat) - 1, len(dat)), units='pxl')) h5saver.add_data(channel, data_dict=data_dict, scan_type='') st = 'file {:s} has been saved'.format(str(path)) self.add_log(st) self.settings.child('main_settings', 'info').setValue(st) h5saver.close_file() except Exception as e: logger.exception(str(e))
def save_ROI(self): try: data = ioxml.parameter_to_xml_string(self.settings.child(('ROIs'))) path = select_file(start_path=Path.home(), ext='xml') if path != '': with open(path, 'wb') as f: f.write(data) except Exception as e: print(e)
def commit_settings(self, param): if param.name() in iter_children(self.settings.child(('settings_client')), []): grabber_socket = \ [client['socket'] for client in self.connected_clients if client['type'] == self.client_type][0] grabber_socket.send_string('set_info') path = get_param_path(param)[2:] # get the path of this param as a list starting at parent 'infos' grabber_socket.send_list(path) # send value data = ioxml.parameter_to_xml_string(param) grabber_socket.send_string(data)
def commit_settings(self, param): if param.name() in putils.iter_children( self.settings.child(('settings_client')), []): actuator_socket = [ client['socket'] for client in self.connected_clients if client['type'] == 'ACTUATOR' ][0] actuator_socket.send_string('set_info') path = putils.get_param_path(param)[2:] # get the path of this param as a list starting at parent 'infos' actuator_socket.send_list(path) # send value data = ioxml.parameter_to_xml_string(param) actuator_socket.send_string(data)