import { Guid } from '../../common/src/guid'; /** * PlcToken */ export abstract class PlcToken { public abstract type: string; constructor(public group: string, public address: string, public id: string, public writeperm: string, public addressType: string) { } public abstract toString(): string; } export class PlcTextToken extends PlcToken { public guid: string = Guid.newGuid(); public type: string = 'textbox'; constructor(public group: string, public address: string, public id: string, public writeperm: string, public addressType: string, public defaultText: string, public minval: string, public maxval: string) { super(group, address, id, writeperm, addressType); } public toString(): string { return this.group + '~p~l~c~' + this.address + '~p~l~c~' + this.id + '~p~l~c~' + this.writeperm + '~p~l~c~' + this.addressType + '~p~l~c~' + this.defaultText; } } export class PlcButtonToken extends PlcToken { public guid: string = Guid.newGuid(); public type: string = 'button'; constructor( // common values public group: string, public address: string, public id: string, public writeperm: string, public addressType: string, // specific values public toggle: string, public trueVal: string, public falseVal: string, public trueValMes: string, public falseValMes: string ) { super(group, address, id, writeperm, addressType); } public toString(): string { return this.group + '~p~l~c~' + this.address + '~p~l~c~' + this.id + '~p~l~c~' + this.writeperm + '~p~l~c~' + this.addressType; } } export class PlcCheckboxToken extends PlcToken { public guid: string = Guid.newGuid(); public type: string = 'checkbox'; constructor( // common values public group: string, public address: string, public id: string, public writeperm: string, public addressType: string, // specific values public trueVal: string, public falseVal: string, public trueValMes: string, public falseValMes: string ) { super(group, address, id, writeperm, addressType); } public toString(): string { return this.group + '~p~l~c~' + this.address + '~p~l~c~' + this.id + '~p~l~c~' + this.writeperm + '~p~l~c~' + this.addressType; } } export class PlcRadioToken extends PlcToken { public guid: string = Guid.newGuid(); public type: string = 'radio'; constructor( // common values public group: string, public address: string, public id: string, public writeperm: string, public addressType: string, // specific values public values: Array ) { super(group, address, id, writeperm, addressType); } public toString(): string { return this.group + '~p~l~c~' + this.address + '~p~l~c~' + this.id + '~p~l~c~' + this.writeperm + '~p~l~c~' + this.addressType; } } export class PlcStateToken extends PlcToken { public guid: string = Guid.newGuid(); public type: string = 'state'; constructor( // common values public group: string, public address: string, public id: string, public writeperm: string, public addressType: string, // specific values public trueVal: string, public falseVal: string, public trueValMes: string, public falseValMes: string, public interval: number ) { super(group, address, id, writeperm, addressType); } public toString(): string { return this.group + '~p~l~c~' + this.address + '~p~l~c~' + this.id + '~p~l~c~' + this.writeperm + '~p~l~c~' + this.addressType; } }