@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
TypeScript
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