diff --git a/acquisition/bs_data.py b/acquisition/bs_data.py index 61c766d..66fdb7b 100755 --- a/acquisition/bs_data.py +++ b/acquisition/bs_data.py @@ -21,6 +21,35 @@ class BStools: def avail(self,*args,**kwargs): return dispatcher.get_current_channels(*args,**kwargs) + def check_channel_list(self, printResult=True, printOnlineChannels=False): + all_available = set([i['name'] for i in self.avail()]) + status = {} + for listname in self._default_channel_list.keys(): + tch = set(self._default_channel_list[listname]) + status[listname] = {} + status[listname]['online'] = tch.intersection(all_available) + status[listname]['offline'] = tch.difference(all_available) + if printResult: + for listname in status.keys(): + if printOnlineChannels: + print('#### Online Channels in {} ####'.format(listname)) + print('\n'.join(status[listname]['online'])) + print('\n') + print('#### Offline Channels in {} ####'.format(listname)) + print('\n'.join(status[listname]['offline'])) + else: + return status + + def cleanup_channel_list(self,listname): + status = self.check_channel_list(printResult=False) + self._default_channel_list[listname] = \ + list(set(self._default_channel_list[listname]).difference(set(status[listname]['offline']))) + print('#### Temporarily removed Offline Channels in {} ####'.format(listname)) + print('\n'.join(status[listname]['offline'])) + print('NB: The channels will be back after restart if they originate from a config file.') + + + def h5(self,fina=None,channel_list=None,N_pulses=None,default_path=True,queue_size=100): if default_path: fina = self._default_file_path%fina @@ -39,6 +68,7 @@ class BStools: source = dispatcher.request_stream(channel_list) mode = zmq.SUB receive(source, fina, queue_size=queue_size, mode=mode, n_messages=N_pulses) + def db(self,channel_list=None,start_time_delta=dict(),end_time_delta=dict(),default_path=True): if not channel_list: print('No channels specified, using default list \'%s\' instead.'%list(self._default_channel_list.keys())[0]) diff --git a/instruments/bernina.py b/instruments/bernina.py index 04d25ea..3f1d49b 100755 --- a/instruments/bernina.py +++ b/instruments/bernina.py @@ -96,7 +96,7 @@ from ..acquisition import scan as _scan from ..acquisition.ioxos_data import Ioxostools channellist = dict(bernina_channel_list= - parseChannelListFile('/sf/bernina/config/channel_lists/default_channel_list_bs')) + parseChannelListFile('/sf/bernina/config/channel_lists/default_channel_list')) bsdaq = BStools(default_channel_list=channellist,default_file_path='%s') channellistioxos = dict(bernina_channel_list=