@corvina/device-client
Version:
Corvina NodeJS Device Client
233 lines • 7.7 kB
TypeScript
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