///
///
import { EventEmitter } from "events";
export type ValueType = {
[key: string]: any;
} | string | boolean[] | number[] | bigint | number | boolean | null;
export declare class Tag extends EventEmitter {
program: any;
state: {
tag: {
name: string;
type?: number | null;
arrayDims: number;
bitIndex: number | null;
value: ValueType;
controllerValue: ValueType;
path: Buffer;
program?: string | null;
stage_write: boolean;
};
read_size: number;
error: {
code: null;
status: null;
};
timestamp: number;
instance: string;
keepAlive: number;
};
constructor(tagname: string, program?: string | null, datatype?: number | null, keepAlive?: number, arrayDims?: number, arraySize?: number);
/**
* Returns the total number of Tag Instances
* that have been Created
*
* @readonly
* @static
* @returns {number} instances
* @memberof Tag
*/
static get instances(): number;
/**
* Returns the Tag Instance ID
*
* @readonly
* @returns {string} Instance ID
* @memberof Tag
*/
get instance_id(): string;
/**
* Gets Tagname
*
* @memberof Tag
* @returns {string} tagname
*/
get name(): string;
/**
* Sets Tagname if Valid
*
* @memberof Tag
* @property {string} New Tag Name
*/
set name(name: string);
/**
* Gets Tag Datatype
*
* @memberof Tag
* @returns {string} datatype
*/
get type(): string | number | null | undefined;
/**
* Gets Tag Bit Index
* - Returns null if no bit index has been assigned
*
* @memberof Tag
* @returns {number} bitIndex
*/
get bitIndex(): number | null;
/**
* Sets Tag Datatype if Valid
*
* @memberof Tag
* @property {number} Valid Datatype Code
*/
set type(type: string | number | null | undefined);
/**
* Gets Tag Read Size
*
* @memberof Tag
* @returns {number} read size
*/
get read_size(): number;
/**
* Sets Tag Read Size
*
* @memberof Tag
* @property {number} read size
*/
set read_size(size: number);
/**
* Gets Tag value
* - Returns null if no value has been read
*
* @memberof Tag
* @returns {number|string|boolean|object} value
*/
get value(): ValueType;
/**
* Sets Tag Value
*
* @memberof Tag
* @property {number|string|boolean|object} new value
*/
set value(newValue: ValueType);
/**
* Sets Controller Tag Value and Emits Changed Event
*
* @memberof Tag
* @property {number|string|boolean|object} new value
*/
set controller_value(newValue: ValueType);
/**
* Sets Controller Tag Value and Emits Changed Event
*
* @memberof Tag
* @returns {number|string|boolean|object} new value
*/
get controller_value(): ValueType;
/**
* Gets Timestamp in a Human Readable Format
*
* @readonly
* @memberof Tag
* @returns {string}
*/
get timestamp(): string;
/**
* Gets Javascript Date Object of Timestamp
*
* @readonly
* @memberof Tag
* @returns {Date}
*/
get timestamp_raw(): number;
/**
* Gets Error
*
* @readonly
* @memberof Tag
* @returns {object|null} error
*/
get error(): {
code: null;
status: null;
} | null;
/**
* Returns a Padded EPATH of Tag
*
* @readonly
* @returns {buffer} Padded EPATH
* @memberof Tag
*/
get path(): Buffer;
/**
* Returns a whether or not a write is staging
*
* @returns {boolean}
* @memberof Tag
*/
get write_ready(): boolean;
/**
* Generates Read Tag Message
*
* @param {number} [size=null]
* @returns {buffer} - Read Tag Message Service
* @memberof Tag
*/
generateReadMessageRequest(value?: any, size?: number | null): Buffer;
/**
* Generates Fragmented Read Tag Message
*
* @param {number} [offset=0]
* @param {number} [size=null]
* @returns {buffer} - Read Tag Message Service
* @memberof Tag
*/
generateReadMessageRequestFrag(offset?: number, size?: null): Buffer;
/**
* Parses Good Read Request Messages
*
* @param {buffer} Data Returned from Successful Read Tag Request
* @memberof Tag
*/
parseReadMessageResponse(data: any): void;
/**
* Parses Good Read Request Messages Using A Mask For A Specified Bit Index
*
* @param {buffer} Data Returned from Successful Read Tag Request
* @memberof Tag
*/
parseReadMessageResponseValueForBitIndex(data: any): void;
/**
* Parses Good Read Request Messages For Atomic Data Types
*
* @param {buffer} Data Returned from Successful Read Tag Request
* @memberof Tag
*/
parseReadMessageResponseValueForAtomic(data: any): void;
/**
* Generates Write Tag Message
*
* @param {number|boolean|object|string} [newValue=null] - If Omitted, Tag.value will be used
* @param {number} [size=0x01]
* @returns {buffer} - Write Tag Message Service
* @memberof Tag
*/
generateWriteMessageRequest(value?: any, size?: number): Buffer | undefined;
/**
* Generates Write Tag Message For A Bit Index
*
* @param {number|boolean|object|string} value
* @param {number} size
* @returns {buffer} - Write Tag Message Service
* @memberof Tag
*/
generateWriteMessageRequestForBitIndex(value: any): Buffer;
/**
* Generates Write Tag Message For Atomic Types
*
* @param {number|boolean|object|string} value
* @param {number} size
* @returns {buffer} - Write Tag Message Service
* @memberof Tag
*/
generateWriteMessageRequestForAtomic(value: any, size: any): Buffer | undefined;
/**
* Unstages Value Edit by Updating controllerValue
* after the Successful Completion of
* a Tag Write
*
* @memberof Tag
*/
unstageWriteRequest(): void;
/**
* Determines if a Tagname is Valid
*
* @static
* @param {string} tagname
* @returns {boolean}
* @memberof Tag
*/
static isValidTagname(tagname: any): boolean;
}