UNPKG

@corvina/device-client

Version:
233 lines 7.7 kB
import { MessagePublisher } from "./messagepublisher"; import { MessageSubscriber } from "./messagesubscriber"; import { MessagePublisherPolicy, LevelMode } from "./messagepublisherpolicies"; export type TypedObject<T> = { [key: string]: T; }; export type ConfigurationType = "datamodel"; export type PolicyType = "send" | "history"; export type PlatformConfigurationInterfaceType = "properties" | "datastream"; export type PlatformAggregationType = "object" | "individual"; export type OwnershipType = "device" | "server"; export type ModelBasicType = "integer" | "double" | "string" | "boolean" | "bytestring" | "integerarray" | "doublearray" | "booleanarray" | "binaryblob"; export type ModelObjectType = "object"; export type ModelArrayType = "array"; export type ModelStructType = "struct"; export type MappingModeType = "R" | "RW"; export interface ModelBasic { type: ModelBasicType; description?: string; label?: string; unit?: string; tags?: string[]; version?: string; deprecated?: boolean; } export interface ModelArray { UUID?: string; type: ModelArrayType; length: number; item: ModelObject; description?: string; label?: string; unit?: string; tags?: string[]; version?: string; deprecated?: boolean; } export interface ModelObject { UUID?: string; type: ModelObjectType; instanceOf: string; properties: TypedObject<ModelNode>; description?: string; label?: string; unit?: string; tags?: string[]; version?: string; deprecated?: boolean; } export interface ModelStruct { UUID?: string; type: ModelStructType; instanceOf: string; properties: TypedObject<ModelBasic>; description?: string; label?: string; unit?: string; tags?: string[]; version?: string; deprecated?: boolean; } export interface ModelMetadata { path: string; label?: string; description?: string; unit?: string; tags?: string[]; type?: ModelType; version?: string; instanceOf?: string; } export type ModelNode = ModelBasic | ModelArray | ModelInterfaceCreatable; export type ModelInterfaceCreatable = ModelObject | ModelStruct; export type ModelType = ModelBasicType | ModelObjectType | ModelArrayType | ModelStructType; export interface BasePolicyData { type: PolicyType; instanceOf?: string; [key: string]: any; } export interface MappingData { device_endpoint: string; server_endpoint?: string; } export interface MappingHistoryPolicy { enabled: boolean; limit?: string; compressionStrategy?: string; } export interface MappingSendPolicyTrigger { type: "timer" | "onchange" | "onlevel" | "fieldchange" | "fieldlevel"; [key: string]: any; } export interface OnChangeTrigger extends MappingSendPolicyTrigger { minIntervalMs?: number; tagName?: string; skipFirstNChanges?: number; deadband?: number; deadbandPercent?: number; changeMask?: "value" | "timestamp" | "value|timestamp"; } export interface IntervalTrigger extends MappingSendPolicyTrigger { intervalMs: number; type: "timer"; } export interface OnLevelTrigger extends MappingSendPolicyTrigger { minIntervalMs?: number; tagName?: string; skipFirstNChanges?: number; level?: number; levelString?: string; mode?: LevelMode; deadband?: number; deadbandPercent?: number; changeMask?: "value" | "timestamp" | "value|timestamp"; type: "onlevel"; } export interface OnFieldChangeTrigger extends MappingSendPolicyTrigger { minIntervalMs?: number; tagName?: string; fieldName?: string; skipFirstNChanges?: number; deadband?: number; deadbandPercent?: number; changeMask?: "value" | "timestamp" | "value|timestamp"; type: "fieldchange"; } export interface OnFieldLevelTrigger extends MappingSendPolicyTrigger { minIntervalMs?: number; fieldName?: string; skipFirstNChanges?: number; level?: number; levelString?: string; mode?: LevelMode; deadband?: number; deadbandPercent?: number; changeMask?: "value" | "timestamp" | "value|timestamp"; type: "fieldlevel"; } export interface MappingSendPolicyCondition { type: "and" | "or" | "inband" | "outband"; } export interface LogicCondition extends MappingSendPolicyCondition { type: "and" | "or"; operands: MappingSendPolicyCondition[]; } export interface InOutBandCondition extends MappingSendPolicyCondition { type: "inband" | "outband"; low: number; high: number; tagName: string; } export interface MappingSendPolicy { triggers: MappingSendPolicyTrigger[]; conditions?: MappingSendPolicyCondition; } export interface SendPolicyData extends BasePolicyData, MappingSendPolicy { } export interface HistoryPolicyData extends BasePolicyData, MappingHistoryPolicy { } export type PolicyData = SendPolicyData | HistoryPolicyData; export interface MappingDatalink { source: string; } export interface MappingAdditionalInfo { mode?: MappingModeType; historyPolicy?: MappingHistoryPolicy; sendPolicy?: MappingSendPolicy; datalink?: MappingDatalink; } export interface MappingInfo { mapping?: MappingData; } export interface MappingBasic extends ModelBasic, MappingAdditionalInfo { } export interface MappingObject extends ModelObject, MappingAdditionalInfo { properties: TypedObject<MappingNode>; } export interface MappingArray extends ModelArray, MappingAdditionalInfo { item: MappingObject; } export interface MappingStruct extends ModelStruct, MappingAdditionalInfo { properties: TypedObject<MappingBasic>; } export type MappingNode = MappingBasic | MappingArray | MappingInterfaceCreatable; export type MappingInterfaceCreatable = MappingObject | MappingStruct; export interface DeviceConfigurationBasic extends MappingBasic, MappingInfo { } export interface DeviceConfigurationArray extends MappingArray, MappingInfo { item: DeviceConfigurationObject; } export interface DeviceConfigurationObject extends MappingObject, MappingInfo { properties: TypedObject<DeviceConfigurationNode>; } export interface DeviceConfigurationStruct extends MappingStruct, MappingInfo { properties: TypedObject<DeviceConfigurationBasic>; } export type DeviceConfigurationWithProperties = DeviceConfigurationObject | DeviceConfigurationStruct; export type DeviceConfigurationNode = DeviceConfigurationBasic | DeviceConfigurationArray | DeviceConfigurationWithProperties; export interface MappingsData { endpoint: string; type: ModelBasicType | ModelStructType; explicit_timestamp?: boolean; } export interface InterfaceData { interface_name: string; version_major: number; version_minor: number; type: PlatformConfigurationInterfaceType; ownership: OwnershipType; aggregation?: PlatformAggregationType; mappings: MappingsData[]; } export interface ConfigurationData { UUID: string; type: ModelObjectType; instanceOf: string; policies?: TypedObject<PolicyData>; interfaces: InterfaceData[]; properties: TypedObject<DeviceConfigurationNode>; } export interface DeviceConfigurationData { type: ConfigurationType; properties: TypedObject<ConfigurationData>; } export declare function indexTemplateApply(templateString: string, values: number[]): string; export interface DeviceConfiguration { interfaceNames: string[]; tagPublishers: Map<string, Set<MessagePublisher>>; namedPolicies: Map<string, MessagePublisherPolicy>; subscribedTopics: Map<string, MessageSubscriber>; } export default function parseDeviceConfig(config: DeviceConfigurationData): DeviceConfiguration; //# sourceMappingURL=configparser.d.ts.map