new graph style
This commit is contained in:
@ -37,16 +37,17 @@ class RingBuffer:
|
||||
return self.ring is not None
|
||||
|
||||
def ensure_init(self, sweep_width: int):
|
||||
"""Инициализировать буферы при первом свипе. Повторные вызовы — no-op."""
|
||||
if self.ring is not None:
|
||||
return
|
||||
self.width = WF_WIDTH
|
||||
self.x_shared = np.arange(self.width, dtype=np.int32)
|
||||
self.ring = np.full((self.max_sweeps, self.width), np.nan, dtype=np.float32)
|
||||
self.ring_time = np.full((self.max_sweeps,), np.nan, dtype=np.float64)
|
||||
self.ring_fft = np.full((self.max_sweeps, self.fft_bins), np.nan, dtype=np.float32)
|
||||
self.freq_shared = np.arange(self.fft_bins, dtype=np.int32)
|
||||
self.head = 0
|
||||
"""Инициализировать буферы при первом свипе. Повторные вызовы — no-op (кроме x_shared)."""
|
||||
if self.ring is None:
|
||||
self.width = WF_WIDTH
|
||||
self.ring = np.full((self.max_sweeps, self.width), np.nan, dtype=np.float32)
|
||||
self.ring_time = np.full((self.max_sweeps,), np.nan, dtype=np.float64)
|
||||
self.ring_fft = np.full((self.max_sweeps, self.fft_bins), np.nan, dtype=np.float32)
|
||||
self.freq_shared = np.arange(self.fft_bins, dtype=np.int32)
|
||||
self.head = 0
|
||||
# Обновляем x_shared если пришёл свип большего размера
|
||||
if self.x_shared is None or sweep_width > self.x_shared.size:
|
||||
self.x_shared = np.linspace(3.323, 14.323, sweep_width, dtype=np.float32)
|
||||
|
||||
def push(self, s: np.ndarray):
|
||||
"""Добавить строку свипа в кольцевой буфер, вычислить FFT-строку."""
|
||||
|
||||
Reference in New Issue
Block a user