Skip to main content

Cookbook: Collect → Terminal

Deprecated (DBJ5): terminal NewTrack / NewFftTrendsAnalysis — legacy v0.5. NewFftTrendsAnalysis больше не пишет report в journal напрямую. Канонический путь v0.6: Journal + Reporter.
Эталон device-board collectors v0.5 (DBC5): exec tick накапливает ref’ы, flush запускает event-ветку (не exec tick).

Singletons (один раз на device)

Main exec tick (onMainTick)

Параллельно на том же tick: CollectSamples получает recorder + sample.

Event branches (при flush)

Flush trigger: queueCapacity OR windowSec (настройки Collect в правом сайдбаре).
Data-ребро batches → samples/frames обязательно — terminal читает batch ref list.

Checklist

1

StartStreaming в On start

Без потока GetSample / Collect не получают валидные ref’ы.
2

GetFFTFrame отдельно от GetSample

Sample ≠ Frame; bypass FFT-узла запрещён в MVP.
3

Event-out → exec-in

Квадратный порт Collect; exec tick Collect идёт по exec-out (∞), flush — по event.
4

Один Collect на singleton (MVP QA)

Multicast архитектурно поддержан; тестируем один Collect на device.
5

Sidebar Collect

Defaults: bufferSize 2048, smoothing 0.75, windowSec 3, queueCapacity 10.

Runtime

При flush Collect runtime:
  1. Сохраняет batch в CollectRuntimeStore
  2. Вызывает dispatchCollectEventBranches — downstream только по kind: event
  3. Продолжает main exec по exec-out Collect
Источник: packages/device-board/src/runtime/event-dispatch.ts.