1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { XMLElem } from "@/util/XmlElem";
- import { UABaseNode, type UABaseNodeOptions } from "./UABaseNode";
- import type { NamespaceTable } from "./NameSpaceTable";
- import type { IAddressSpace } from "./IAddressSpace";
- export class UAVariable extends UABaseNode {
- public parentNodeId?: string;
- public dataType!: string;
- public valueRank!: number;
- public arrayDimensions?: string;
- public accessLevel!: number;
- public userAccessLevel!: number;
- public minimumSamplingInterval!: number;
- public historizing!: Boolean;
- constructor(options: UAVariableNodeOptions) {
- super(options);
- Object.assign(this, options);
- this.nodeClass="Variable";
- }
- static fromXML(uaObject: any, addressSpace: IAddressSpace): UAVariable{
- const bn=super.fromXML(uaObject, addressSpace) as UAVariableNodeOptions
- bn.parentNodeId=uaObject['ParentNodeId'];
- bn.dataType=uaObject['@_DataType']||"i=24";
- bn.valueRank=Number(uaObject['@_ValueRank']||-1);
- bn.arrayDimensions=uaObject['@_ArrayDimensions'];
- bn.accessLevel=Number(uaObject['@_AccessLevel']||1);
- bn.userAccessLevel=Number(uaObject['@_UserAccessLevel']||1);
- bn.minimumSamplingInterval=Number(uaObject['@_MinimumSamplingInterval']||0);
- bn.historizing=Boolean(uaObject['@_Historizing']||false);
- return new UAVariable(bn as UABaseNodeOptions);
- }
- toXML(lnst:NamespaceTable, gnst:NamespaceTable): XMLElem {
- const elem=super.toXML(lnst, gnst);
- elem.attr("ParentNodeId", this.parentNodeId);
- elem.attr("DataType", this.dataType);
- elem.attr("ValueRank", this.valueRank.toString());
- elem.attr("ArrayDimensions", this.arrayDimensions);
- elem.attr("AccessLevel", this.accessLevel.toString());
- elem.attr("UserAccessLevel", this.userAccessLevel.toString());
- elem.attr("MinimumSamplingInterval", this.minimumSamplingInterval.toString());
- elem.attr("Historizing", this.historizing.toString());
- return elem;
- }
- }
- export interface UAVariableNodeOptions extends UABaseNodeOptions{
- parentNodeId?: string;
- dataType?: string;
- valueRank?: number;
- arrayDimensions?: string;
- accessLevel?: number;
- userAccessLevel?: number;
- minimumSamplingInterval?: number;
- historizing?: Boolean;
- }
|