UNPKG

@rfkit/spectrum-analyzer

Version:

A high-performance spectrum analyzer library for RF signal processing, supporting real-time spectrum analysis, waterfall display, and multi-segment frequency scanning

112 lines 3.22 kB
import type { SeriesChangeCallback, SeriesConfig, SeriesSubscriber, SubscriptionOptions } from './types'; /** * Series 处理工具,用于管理图形系列的配置 * 支持初始化、属性设置、变更回调和订阅功能 */ export default class SeriesManager { private seriesMap; private changeCallbacks; private subscribers; /** * 构造函数,支持初始化系列配置 * @param initialSeries 初始系列配置数组 */ constructor(initialSeries?: SeriesConfig[]); /** * 初始化系列配置 * @param seriesConfigs 系列配置数组 */ private initializeSeries; /** * 添加新的系列配置 * @param config 系列配置 */ addSeries(config: SeriesConfig): void; /** * 获取指定名称的系列配置 * @param name 系列名称 * @returns 系列配置或 undefined */ getSeries(name: string): SeriesConfig | undefined; /** * 获取所有系列配置 * @returns 所有系列配置的数组 */ getAllSeries(): SeriesConfig[]; /** * 获取当前所有配置 * @returns 包含所有系列配置的对象,以系列名为键 */ getAllConfigs(): Record<string, SeriesConfig>; /** * 设置指定系列的某个属性 * @param name 系列名称 * @param property 属性名 * @param value 属性值 * @returns 是否设置成功 */ setSeriesProperty<K extends keyof SeriesConfig>(name: string, property: K, value: SeriesConfig[K]): boolean; /** * 删除指定名称的系列 * @param name 系列名称 * @returns 是否删除成功 */ removeSeries(name: string): boolean; /** * 检查系列是否存在 * @param name 系列名称 * @returns 是否存在 */ hasSeries(name: string): boolean; /** * 添加变更回调函数 * @param callback 回调函数 */ onChange(callback: SeriesChangeCallback): void; /** * 移除变更回调函数 * @param callback 要移除的回调函数 */ offChange(callback: SeriesChangeCallback): void; /** * 通知所有回调函数属性变更 * @param name 系列名称 * @param property 属性名 * @param value 新值 */ private notifyChange; /** * 清空所有系列配置 */ clear(): void; /** * 获取系列数量 * @returns 系列数量 */ size(): number; /** * 订阅系列变更事件 * @param subscriber 订阅回调函数 * @param options 订阅选项 * @returns 取消订阅的函数 */ subscribe(subscriber: SeriesSubscriber, options?: SubscriptionOptions): () => void; /** * 取消订阅 * @param subscriber 要取消的订阅回调函数 */ unsubscribe(subscriber: SeriesSubscriber): void; /** * 发送事件给所有订阅者 * @param event 事件数据 */ private emitEvent; /** * 判断是否应该通知订阅者 * @param subscriber 订阅者 * @param event 事件数据 * @returns 是否应该通知 */ private shouldNotifySubscriber; } //# sourceMappingURL=index.d.ts.map