|
@@ -1,5 +1,5 @@
|
|
|
from .DataStream import EChPosmap as pos_map
|
|
|
-from .ChannelReader import ChannelReader
|
|
|
+from .ChannelReader import ChannelReader, ChPathFilter
|
|
|
from .ChannelPainter import ChannelPainter, ratio_pathes
|
|
|
from matplotlib.figure import Figure
|
|
|
from matplotlib import ticker
|
|
@@ -9,13 +9,16 @@ from .algorithm import calc_cov_chratios
|
|
|
import time as time
|
|
|
|
|
|
import logging
|
|
|
+
|
|
|
logger = logging.getLogger('ChannelCumPainter')
|
|
|
|
|
|
+
|
|
|
class ChannelCovPainter(ChannelPainter):
|
|
|
- def __init__(self, start_time: int, end_time: int, chnames: set = None, card_types: set = None, spec: int = None, filter_wave: int = None):
|
|
|
+ def __init__(self, start_time: int, end_time: int, chnames: set = None, card_types: set = None, spec: int = None, filter_wave: int = None,
|
|
|
+ show_all: bool = False):
|
|
|
self._reader = ChannelReader()
|
|
|
filter_wave = filter_wave or 3600
|
|
|
- self._chnames, self._card_types, self._spec, self._filter_wave = chnames, card_types, spec, filter_wave
|
|
|
+ self._chnames, self._card_types, self._spec, self._filter_wave, self._show_all = chnames, card_types, spec, filter_wave, show_all
|
|
|
days, self._start_time, self._end_time, self._interval = self.calc_time(self._reader, start_time, end_time)
|
|
|
pass
|
|
|
|
|
@@ -25,8 +28,9 @@ class ChannelCovPainter(ChannelPainter):
|
|
|
if len(days) == 0:
|
|
|
return BytesIO()
|
|
|
|
|
|
+ filter = ChPathFilter(self._chnames, self._card_types, self._spec, self._show_all)
|
|
|
tuple_pathes = reader.many_tuple_path(days, self._chnames, self._card_types, self._spec)
|
|
|
- gen = ratio_pathes(reader, tuple_pathes, days, self._spec)
|
|
|
+ gen = ratio_pathes(reader, tuple_pathes, days, filter)
|
|
|
day_stamp = days[0]
|
|
|
|
|
|
fig_create, fig_flush = self._fig_funs()
|
|
@@ -40,7 +44,7 @@ class ChannelCovPainter(ChannelPainter):
|
|
|
|
|
|
stime = lambda t: time.strftime('%d-%H:%M:%S', time.localtime(t))
|
|
|
logger.debug("start_time %d, %s end_time=%s left_len=%d right_len=%d",
|
|
|
- self._start_time, stime(self._start_time), stime(self._end_time),left_len,right_len)
|
|
|
+ self._start_time, stime(self._start_time), stime(self._end_time), left_len, right_len)
|
|
|
|
|
|
chname_ratios = []
|
|
|
for _chname, _card_type, _spec, _data in gen:
|
|
@@ -58,4 +62,4 @@ class ChannelCovPainter(ChannelPainter):
|
|
|
result = []
|
|
|
for name, ratio in chname_ratios:
|
|
|
result.append(f'{name}:{ratio}')
|
|
|
- return buf, result
|
|
|
+ return buf, result
|