Расширить обмен по шинам, CAN-адаптеры и обработку графиков
Добавить очереди операций PBUS/SBUS, общую консоль, настройки Candle и SLCAN, декодеры DSView и обработку плотных графиков. Обновить протокол Бальзам и проверки общих компонентов.
This commit is contained in:
@@ -10,7 +10,7 @@ are separate objects, never channels in the acquisition or measurement model.
|
||||
from __future__ import annotations
|
||||
import csv
|
||||
from bisect import bisect_left, bisect_right
|
||||
from operator import itemgetter
|
||||
from .plot_decimation import PointTimes # Используем координаты X без копирования ряда и без недоступного в Python 3.8 параметра key.
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime, timezone
|
||||
from .signal_reconstruction import METHODS, reconstruct
|
||||
@@ -28,8 +28,9 @@ class FrozenPoints(tuple):
|
||||
|
||||
def between(self, left, right):
|
||||
if self.ordered:
|
||||
start = bisect_left(self, left, key=itemgetter(0))
|
||||
stop = bisect_right(self, right, key=itemgetter(0))
|
||||
timestamps = PointTimes(self) # Создаём индексируемое представление X, сохраняя логарифмическую сложность поиска границ.
|
||||
start = bisect_left(timestamps, left) # Начинаем с первой точки X >= left, включая все повторы левой границы.
|
||||
stop = bisect_right(timestamps, right) # Заканчиваем перед первой точкой X > right, включая все повторы правой границы.
|
||||
if start == 0 and stop == len(self):
|
||||
return self
|
||||
result = tuple.__new__(type(self), self[start:stop])
|
||||
|
||||
Reference in New Issue
Block a user