@joergmittaglawo/dmvconfig
Version:
DMV Configuration scripts for Lawo V__matrix Distributed Multiviewers.
168 lines (167 loc) • 6.54 kB
TypeScript
export declare enum KeywordType {
UserOwnedEvent = 0,
DriverOwnedEvent = 1,
Command = 2,
Status = 3,
Duplex = 4
}
export declare type kw_data_type = "bool" | "int" | "float" | "float duration" | "int duration" | "string" | "timestamp" | "ipaddress" | "enum" | "timecode" | "ref" | "device_tree_node";
export declare type data_type = "subtree" | "atomic subtree" | kw_data_type;
export declare type kw_type = "event" | "driver-owned event" | "status" | "command" | "duplex";
export declare type BranchName = string;
export declare type TargetTypeIdentifier = string;
export declare type FullKWLName = string;
export declare type OtherNodeProperties = {
formatter?: string;
filter?: string;
visibility?: "basic" | "advanced" | "developer";
};
export interface CommonNodeProperties<DataType> {
data_type: DataType;
sys_name: string;
brief?: string;
desc?: string;
persistent: boolean;
other_properties: OtherNodeProperties;
}
export interface CommonConstantProperties<DataType> {
data_type: DataType;
path: string;
}
export interface ConstantBoolDescription extends CommonConstantProperties<"bool"> {
}
export interface ConstantIntDescription extends CommonConstantProperties<"int"> {
min: number;
max: number;
}
export interface ConstantStringDescription extends CommonConstantProperties<"string"> {
maxlength: number;
}
export interface ConstantDurationDescription extends CommonConstantProperties<"int duration" | "float duration"> {
min: number;
max: number;
}
export interface ConstantIPAddressDescription extends CommonConstantProperties<"ipaddress"> {
}
export interface ConstantTimestampDescription extends CommonConstantProperties<"timestamp"> {
}
export declare type ConstantDescription = ConstantBoolDescription | ConstantIntDescription | ConstantStringDescription | ConstantDurationDescription | ConstantIPAddressDescription | ConstantTimestampDescription;
export declare type MaybeChildrenMaybeTypeIdentifier = {
children?: ChildDescription<MaybeChildrenMaybeTypeIdentifier>[];
type_identifier?: string;
};
export declare type MaybeAtomicChildrenMaybeTypeIdentifier = {
children?: AtomicChildDescription<MaybeAtomicChildrenMaybeTypeIdentifier>[];
type_identifier?: string;
};
export declare type RuntimeConstantIdentifier = string;
export declare type ContainerSize = number | RuntimeConstantIdentifier;
export declare type SubtreeDescription<ExtraProperties = MaybeChildrenMaybeTypeIdentifier> = CommonNodeProperties<"subtree"> & ExtraProperties & ({} | {
array_size: ContainerSize;
} | {
table_size: ContainerSize;
named_rows: boolean;
});
export declare type AtomicSubtreeDescription<ExtraProperties = MaybeAtomicChildrenMaybeTypeIdentifier> = CommonNodeProperties<"atomic subtree"> & ExtraProperties & {
kw_type: kw_type;
array_size?: ContainerSize;
optional: boolean;
};
export interface StringDescription extends CommonNodeProperties<"string"> {
kw_type: kw_type;
optional: boolean;
array_size?: ContainerSize;
max_length: number;
default_value?: string;
}
export interface NumberDescription extends CommonNodeProperties<"int" | "float"> {
kw_type: kw_type;
optional: boolean;
array_size?: ContainerSize;
min: number;
max: number;
default_value?: number;
}
export interface DeviceTreeNodeDescription extends CommonNodeProperties<"device_tree_node"> {
kw_type: kw_type;
optional: boolean;
array_size?: ContainerSize;
}
export interface ReferenceDescription extends CommonNodeProperties<"ref"> {
kw_type: kw_type;
optional: boolean;
array_size?: ContainerSize;
default_value?: string;
target_type_identifier: string;
target_type: "subtree";
ref_perm: "mutating" | "non-mutating";
}
export interface EnumDescription extends CommonNodeProperties<"enum"> {
kw_type: kw_type;
optional: boolean;
array_size?: ContainerSize;
default_value?: string;
enum_values: string[];
}
export interface BoolDescription extends CommonNodeProperties<"bool"> {
kw_type: kw_type;
optional: boolean;
array_size?: ContainerSize;
default_value?: boolean;
}
export interface DurationDescription extends CommonNodeProperties<"int duration" | "float duration"> {
kw_type: kw_type;
min: number;
max: number;
optional: boolean;
array_size?: ContainerSize;
default_value?: number;
}
export interface TimecodeDescription extends CommonNodeProperties<"timecode"> {
kw_type: kw_type;
optional: boolean;
array_size?: ContainerSize;
default_value?: number;
}
export interface TimestampDescription extends CommonNodeProperties<"timestamp"> {
kw_type: kw_type;
min?: number;
max?: number;
optional: boolean;
array_size?: ContainerSize;
default_value?: string;
}
export interface IPAddressDescription extends CommonNodeProperties<"ipaddress"> {
kw_type: kw_type;
optional: boolean;
array_size?: ContainerSize;
default_value?: string;
}
export declare type ComponentDescription<ExtraProperties = {}> = SubtreeDescription<ExtraProperties> & {
ua_name: string;
owning_module: string;
bound_to?: string[];
};
export declare type KeywordDescription<ExtraScalarProperties> = (TimestampDescription | IPAddressDescription | BoolDescription | EnumDescription | StringDescription | NumberDescription | DeviceTreeNodeDescription | ReferenceDescription | DurationDescription | TimecodeDescription) & ExtraScalarProperties;
export declare type AtomicChildDescription<ExtraAtomicSubtreeProperties = {}, ExtraScalarProperties = {}> = AtomicSubtreeDescription<ExtraAtomicSubtreeProperties> | KeywordDescription<ExtraScalarProperties>;
export declare type ChildDescription<ExtraSubtreeProperties = {}, ExtraAtomicSubtreeProperties = {}, ExtraScalarProperties = {}> = SubtreeDescription<ExtraSubtreeProperties> | AtomicChildDescription<ExtraAtomicSubtreeProperties, ExtraScalarProperties>;
export declare type ConstantsDictionary = {
[component_name: string]: {
[constant_name: string]: ConstantDescription;
};
};
export interface ErrorFeedbackChannel {
kwl: string;
owner: string;
}
export interface Schema {
constants: ConstantsDictionary;
error_feedback_channels: ErrorFeedbackChannel[];
typedef_identifiers: string[];
typedefs: {
[typedef_name: string]: (SubtreeDescription | AtomicSubtreeDescription) & {
common: boolean;
};
};
keywords: ComponentDescription[];
}