@joergmittaglawo/dmvconfig
Version:
DMV Configuration scripts for Lawo V__matrix Distributed Multiviewers.
193 lines (192 loc) • 10.5 kB
TypeScript
import * as VScript from "vscript";
import * as _Primitives from "./Primitives";
import * as _PTP from "./PTP";
import * as _Time from "./Time";
export declare const lift: {
readonly Stretcher: (kwl: string | null, socket: VScript.VSocket) => Stretcher | null;
readonly Shifter: (kwl: string | null, socket: VScript.VSocket) => Shifter | null;
readonly DriftConverter: (kwl: string | null, socket: VScript.VSocket) => DriftConverter | null;
readonly Detonator: (kwl: string | null, socket: VScript.VSocket) => Detonator | null;
readonly Combinator: (kwl: string | null, socket: VScript.VSocket) => Combinator | null;
readonly CombinatorInputs: (kwl: string | null, socket: VScript.VSocket) => CombinatorInputs | null;
readonly Aligner: (kwl: string | null, socket: VScript.VSocket) => Aligner | null;
};
export declare const lower: {
readonly Stretcher: (ref: Stretcher | null) => string | null;
readonly Shifter: (ref: Shifter | null) => string | null;
readonly DriftConverter: (ref: DriftConverter | null) => string | null;
readonly Detonator: (ref: Detonator | null) => string | null;
readonly Combinator: (ref: Combinator | null) => string | null;
readonly CombinatorInputs: (ref: CombinatorInputs | null) => string | null;
readonly Aligner: (ref: Aligner | null) => string | null;
};
/**
ideally, all inputs to a clock combinator should use the same reference
frame as the clock combinator itself. If this is not the case, mismatching
inputs will be discarded by default. By setting
`on_reference_frame_mismatch` to `Convert`, inputs can also be converted to
the combinator's own reference frame. Note, however, that this generally
incurs a loss in precision
*/
export declare type ReferenceFrameMismatchPolicy = "Discard" | "Convert";
export declare type PTPSourceTypeFilter = "UseHighest" | "UseAtomicClock" | "UseGPSOrBetter" | "UseTerrestrialRadioOrBetter" | "UsePTPOrBetter" | "UseNTPOrBetter" | "UseHandSetOrBetter" | "UseInternalOscillatorOrBetter";
export declare class Aligner {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get alert_level(): VScript.rKeyword<_Primitives.AlertLevel, _Primitives.AlertLevel, Aligner>;
get absolute_input(): VScript.duplexKeyword<string | null, _Time.Source | null, Aligner>;
get grain_accurate_input(): VScript.duplexKeyword<string | null, _Time.Source | null, Aligner>;
get warning_threshold(): VScript.rwKeyword<number, number, Aligner>;
get holdover_grains(): VScript.rwKeyword<number, number, Aligner>;
get output(): _Time.Source;
get ptp_traits(): _PTP.Traits;
}
export declare class AlignerAsNamedTableRow extends Aligner {
private readonly raw_row;
readonly enclosing_table: VScript.StronglyTypedNamedTable<Aligner>;
readonly index: number;
constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<Aligner>);
rename(name: string, opts?: VScript.CommonWriteOptions): Promise<void>;
delete(opts?: VScript.CommonWriteOptions): Promise<void>;
}
export declare type CombinatorType = "AbsoluteTime";
declare class CombinatorInputs {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get selected(): VScript.rKeyword<boolean, boolean, CombinatorInputs>;
get source(): VScript.duplexKeyword<string | null, _Time.Source | null, CombinatorInputs>;
}
export declare class Combinator {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get required_offset_type(): VScript.rwKeyword<"AbsoluteTime", "AbsoluteTime", Combinator>;
get required_ptp_source_type(): VScript.rwKeyword<PTPSourceTypeFilter, PTPSourceTypeFilter, Combinator>;
get drift_reference(): VScript.rwKeyword<_Time.ReferenceFrame, _Time.ReferenceFrame, Combinator>;
get min_drift_tolerance(): VScript.rwKeyword<number, number, Combinator>;
get min_offset_tolerance(): VScript.rwKeyword<number, number, Combinator>;
get quorum(): VScript.duplexKeyword<number, number, Combinator>;
get session_length(): VScript.duplexKeyword<number, number, Combinator>;
get inputs(): VScript.StronglyTypedArray<Combinator, CombinatorInputs, VScript.RowView<CombinatorInputs>>;
get output(): _Time.Source;
get ptp_traits(): _PTP.Traits;
}
export declare class CombinatorAsNamedTableRow extends Combinator {
private readonly raw_row;
readonly enclosing_table: VScript.StronglyTypedNamedTable<Combinator>;
readonly index: number;
constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<Combinator>);
rename(name: string, opts?: VScript.CommonWriteOptions): Promise<void>;
delete(opts?: VScript.CommonWriteOptions): Promise<void>;
}
export declare class Detonator {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get max_drift_blast(): VScript.rwKeyword<number, number, Detonator>;
get max_offset_blast(): VScript.rwKeyword<number, number, Detonator>;
/**
Discharge
*/
get discharge(): VScript.wKeyword<"Click", "Click", Detonator>;
/**
Realign
*/
get realign(): VScript.wKeyword<"Click", "Click", Detonator>;
get friction(): VScript.rwKeyword<number, number, Detonator>;
get stiffness(): VScript.rwKeyword<number, number, Detonator>;
get input(): VScript.duplexKeyword<string | null, _Time.Source | null, Detonator>;
get output(): _Time.Source;
get ptp_traits(): _PTP.Traits;
}
export declare class DetonatorAsNamedTableRow extends Detonator {
private readonly raw_row;
readonly enclosing_table: VScript.StronglyTypedNamedTable<Detonator>;
readonly index: number;
constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<Detonator>);
rename(name: string, opts?: VScript.CommonWriteOptions): Promise<void>;
delete(opts?: VScript.CommonWriteOptions): Promise<void>;
}
export declare class DriftConverter {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get drift_reference(): VScript.rwKeyword<_Time.ReferenceFrame, _Time.ReferenceFrame, DriftConverter>;
/**
ideally, all inputs to a clock combinator should use the same reference
frame as the clock combinator itself. If this is not the case,
mismatching inputs will be discarded by default. By setting
`on_reference_frame_mismatch` to `Convert`, inputs can also be converted
to the combinator's own reference frame. Note, however, that this
generally incurs a loss in precision
*/
get on_drift_reference_mismatch(): VScript.rwKeyword<ReferenceFrameMismatchPolicy, ReferenceFrameMismatchPolicy, DriftConverter>;
get input(): VScript.duplexKeyword<string | null, _Time.Source | null, DriftConverter>;
get output(): _Time.Source;
get ptp_traits(): _PTP.Traits;
}
export declare class DriftConverterAsNamedTableRow extends DriftConverter {
private readonly raw_row;
readonly enclosing_table: VScript.StronglyTypedNamedTable<DriftConverter>;
readonly index: number;
constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<DriftConverter>);
rename(name: string, opts?: VScript.CommonWriteOptions): Promise<void>;
delete(opts?: VScript.CommonWriteOptions): Promise<void>;
}
export declare class Shifter {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get shift(): VScript.rwKeyword<number, number, Shifter>;
get input(): VScript.duplexKeyword<string | null, _Time.Source | null, Shifter>;
get output(): _Time.Source;
get ptp_traits(): _PTP.Traits;
}
export declare class ShifterAsNamedTableRow extends Shifter {
private readonly raw_row;
readonly enclosing_table: VScript.StronglyTypedNamedTable<Shifter>;
readonly index: number;
constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<Shifter>);
rename(name: string, opts?: VScript.CommonWriteOptions): Promise<void>;
delete(opts?: VScript.CommonWriteOptions): Promise<void>;
}
/**
stretchers shift their input source's measured drift by a user-defined
amount (note that this demotes `Absolute` and `GrainAccurate` time sources
to class `FrequencyOnly`). Stretchers are probably useless in a production
setting, but can be helpful in simulating failure scenarios.
*/
export declare class Stretcher {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get frequency_shift(): VScript.rwKeyword<number, number, Stretcher>;
get input(): VScript.duplexKeyword<string | null, _Time.Source | null, Stretcher>;
get output(): _Time.Source;
get ptp_traits(): _PTP.Traits;
}
export declare class StretcherAsNamedTableRow extends Stretcher {
private readonly raw_row;
readonly enclosing_table: VScript.StronglyTypedNamedTable<Stretcher>;
readonly index: number;
constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<Stretcher>);
rename(name: string, opts?: VScript.CommonWriteOptions): Promise<void>;
delete(opts?: VScript.CommonWriteOptions): Promise<void>;
}
export declare class All {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get aligners(): VScript.StronglyTypedNamedTable<Aligner, VScript.NamedTableRowView<Aligner>>;
get combinators(): VScript.StronglyTypedNamedTable<Combinator, VScript.NamedTableRowView<Combinator>>;
get detonators(): VScript.StronglyTypedNamedTable<Detonator, VScript.NamedTableRowView<Detonator>>;
get drift_converters(): VScript.StronglyTypedNamedTable<DriftConverter, VScript.NamedTableRowView<DriftConverter>>;
get shifters(): VScript.StronglyTypedNamedTable<Shifter, VScript.NamedTableRowView<Shifter>>;
/**
stretchers shift their input source's measured drift by a user-defined
amount (note that this demotes `Absolute` and `GrainAccurate` time
sources to class `FrequencyOnly`). Stretchers are probably useless in a
production setting, but can be helpful in simulating failure scenarios.
*/
get stretchers(): VScript.StronglyTypedNamedTable<Stretcher, VScript.NamedTableRowView<Stretcher>>;
}
export declare const Enums: {
readonly CombinatorType: "AbsoluteTime"[];
readonly PTPSourceTypeFilter: PTPSourceTypeFilter[];
readonly ReferenceFrameMismatchPolicy: ReferenceFrameMismatchPolicy[];
};
export {};