UNPKG

@aptpod/iscp-ts

Version:

iSCP 2.0 client library for TypeScript

160 lines (159 loc) 5.62 kB
/** * QoSを表します。 * @category Enum * @enum */ export declare const QOS: { /** 低信頼。 */ readonly UNRELIABLE: 1; /** 高信頼。 */ readonly RELIABLE: 2; /** 信頼性のあるトランスポートを利用する低信頼。 */ readonly PARTIAL: 3; }; /** * {@link QOS}の型です。 * @category Enum */ export type QoS = (typeof QOS)[keyof typeof QOS]; /** * データポイントを表します。 * * データポイントは、経過時間を付与されたバイナリデータです。 バイナリデータのことをペイロードと呼びます。 * @category Data ID and Data Point */ export declare class DataPoint { /** 経過時間(ナノ秒)。 */ elapsedTime: bigint; /** ペイロード。 */ payload: Uint8Array; constructor(init: { elapsedTime: DataPoint['elapsedTime']; payload: DataPoint['payload']; }); } /** * データポイントの、名称とデータ型を表す識別子です。 * * おもに、ブローカーおよびノードでのデータの意味と型の特定、 * ダウンストリームフィルタにて指定された受信条件に各時系列データポイントが合致するかどうかの判定、などに使用されます。 * * 特殊文字 ``/`` はセパレータです。名称や型の階層構造を表現することができます。 * * @category Data ID and Data Point */ export declare class DataId { /** 名称。 */ name: string; /** 型。 */ type: string; constructor(init: { name: DataId['name']; type: DataId['type']; }); /** * DataIdの文字列表現から{@link DataId}を生成します。 */ static parse(dataId: string): DataId; /** * DataIdを文字列表現に変換します。 */ toString(): string; /** * DataIdを再帰的に複製します。 */ deepCopy(): DataId; } export type DataIdOrAlias = DataId | number; /** * ストリームチャンクの中のデータポイントをデータIDごとにまとめた集合です。 */ export declare class DataPointGroup { /** データIDまたはそのエイリアス */ dataIdOrAlias: DataIdOrAlias; /** データポイントのリスト */ dataPoints: DataPoint[]; constructor(init: { dataIdOrAlias: DataPointGroup['dataIdOrAlias']; dataPoints: DataPointGroup['dataPoints']; }); } /** * 受信するデータを指定するためのデータフィルタです。 * * 名称や型の指定において階層構造を表現したいときには、特殊文字 ``/`` をセパレータとして使用することができます。 * * 特殊文字 ``#`` はマルチレベルワイルドカードです。 * * - フィルタが ``#`` のとき、 ``name`` はマッチします。 * - フィルタが ``#`` のとき、 ``group/name`` はマッチします。 * - フィルタが ``group/#`` のとき、 ``group/name`` はマッチします。 * - フィルタが ``group/#`` のとき、 ``group/sub-group/name`` はマッチします。 * - フィルタが ``group/#`` のとき、 ``other-group/name`` はマッチしません。 * * 特殊文字 ``+`` は単一レベルワイルドカードです。 * * - フィルタが ``+`` のとき、 ``name`` はマッチします。 * - フィルタが ``group/+`` のとき、 ``group/name`` はマッチします。 * - フィルタが ``group/+/name`` のとき、 ``group/sub-group/name`` はマッチします。 * - フィルタが ``group/+/name`` のとき、 ``group/other-group/name`` はマッチします。 * - フィルタが ``group/+/name`` のとき、 ``group/other-group/some-name`` はマッチしません。 * * @category Downstream */ export declare class DataFilter { /** 名称 */ name: string; /** 型 */ type: string; constructor(init: { name: DataFilter['name']; type: DataFilter['type']; }); /** * 全データ型、全データ名称を受信対象とするデータフィルタを取得します。 */ static fullOpen(): DataFilter; /** * データフィルタの文字列表現から{@link DataFilter}を生成します。 */ static parse(dataId: string): DataFilter; /** * データフィルタの文字列表現を取得します。 */ toString(): string; } /** * ダウンストリームフィルタを表します。 * @category Downstream */ export declare class DownstreamFilter { /** 送信元ノードID。 */ sourceNodeId: string; /** データフィルタのリスト。 */ dataFilters: DataFilter[]; constructor(init: { sourceNodeId: DownstreamFilter['sourceNodeId']; dataFilters: DownstreamFilter['dataFilters']; }); /** * 指定したノードが送信するすべてのデータを取得するフィルタです。 * @param sourceNodeId データ取得対象とする送信元ノード。 */ static allFor(sourceNodeId: string): DownstreamFilter; } /** * ストリームを時間で区切ったデータポイントのまとまりです。 * * iSCPにおけるデータ伝送は、このチャンク単位で行われます。 */ export declare class StreamChunk { /** シーケンス番号 */ sequenceNumber: number; /** データポイントグループのリスト */ dataPointGroups: DataPointGroup[]; constructor(init: { sequenceNumber: number; dataPointGroups: DataPointGroup[]; }); }