added some bsdaq channel checkers

This commit is contained in:
2018-05-22 16:04:24 +02:00
parent 0e336911bf
commit 9f98c7a402
2 changed files with 31 additions and 1 deletions
+30
View File
@@ -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])
+1 -1
View File
@@ -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=