1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from .chs_type_spec import type_spec_chs
- import logging
- logger = logging.getLogger('chs_manager')
- class chs_manager(object):
- def __init__(self):
- self.channels = {}
- pass
- def add(self,name, card_type, spec, data,end_pos):
- if card_type != 4 or spec != 100:
- return
- key_gen = lambda card_type,spec: f'{spec}-{card_type}'
- key = key_gen(card_type,spec)
- if key in self.channels:
- subch = self.channels[key]
- else:
- subch = type_spec_chs(card_type, spec)
- self.channels[key] = subch
- subch.add(name, data, end_pos)
- def optimize(self):
- for key,item in self.channels.items():
- item.optimize()
- def cur_speed(self):
- total = 0
- for key,item in self.channels.items():
- total += item.cur_speed()
- logger.debug(f'total = {total}')
- return total
- def get_reckon(self):
- result = {}
- for key,item in self.channels.items():
- reckons = item.get_reckon()
- for ch_name, speed in reckons.items():
- prefix = f'{ch_name}-{key}'
- result[prefix] = speed
- return result
- pass
|