113 lines
2.8 KiB
TypeScript
113 lines
2.8 KiB
TypeScript
'use strict';
|
|
|
|
import { Encoder, Decoder, DPT } from './definitions';
|
|
|
|
import { DPT1 } from './DPT1';
|
|
import { DPT2 } from './DPT2';
|
|
import { DPT3 } from './DPT3';
|
|
import { DPT4 } from './DPT4';
|
|
import { DPT5 } from './DPT5';
|
|
import { DPT6 } from './DPT6';
|
|
import { DPT7 } from './DPT7';
|
|
import { DPT8 } from './DPT8';
|
|
import { DPT9 } from './DPT9';
|
|
import { DPT10 } from './DPT10';
|
|
import { DPT11 } from './DPT11';
|
|
import { DPT12 } from './DPT12';
|
|
import { DPT13 } from './DPT13';
|
|
import { DPT14 } from './DPT14';
|
|
import { DPT15 } from './DPT15';
|
|
import { DPT16 } from './DPT16';
|
|
import { DPT17 } from './DPT17';
|
|
import { DPT18 } from './DPT18';
|
|
import { DPT19 } from './DPT19';
|
|
import { DPT20 } from './DPT20';
|
|
import { DPT21 } from './DPT21';
|
|
//import { DPT22 } from './DPT22';
|
|
import { DPT232 } from './DPT232';
|
|
import { DPT237 } from './DPT237';
|
|
import { DPT238 } from './DPT238';
|
|
|
|
export class DataPointType {
|
|
|
|
get type(): string {
|
|
return this._type;
|
|
}
|
|
|
|
get subtype(): string {
|
|
return this._subtype;
|
|
}
|
|
|
|
/**
|
|
* @property {DPTYPE} DPT1
|
|
* @property {DPTYPE} DPT2
|
|
* @property {DPTYPE} DPT3
|
|
* @property {DPTYPE} DPT4
|
|
* @property {DPTYPE} DPT5
|
|
* @property {DPTYPE} DPT6
|
|
* @property {DPTYPE} DPT7
|
|
* @property {DPTYPE} DPT8
|
|
* @property {DPTYPE} DPT9
|
|
* @property {DPTYPE} DPT10
|
|
* @property {DPTYPE} DPT11
|
|
* @property {DPTYPE} DPT12
|
|
* @property {DPTYPE} DPT13
|
|
* @property {DPTYPE} DPT14
|
|
* @property {DPTYPE} DPT15
|
|
* @property {DPTYPE} DPT16
|
|
* @property {DPTYPE} DPT17
|
|
* @property {DPTYPE} DPT18
|
|
* @property {DPTYPE} DPT19
|
|
* @property {DPTYPE} DPT20
|
|
*/
|
|
static get TYPES(): { [index: string]: DPT | null } {
|
|
return {
|
|
DPT1: new DPT1(),
|
|
DPT2: new DPT2(),
|
|
DPT3: new DPT3(),
|
|
DPT4: new DPT4(),
|
|
DPT5: new DPT5(),
|
|
DPT6: new DPT6(),
|
|
DPT7: new DPT7(),
|
|
DPT8: new DPT8(),
|
|
DPT9: new DPT9(),
|
|
DPT10: new DPT10(),
|
|
DPT11: new DPT11(),
|
|
DPT12: new DPT12(),
|
|
DPT13: new DPT13(),
|
|
DPT14: new DPT14(),
|
|
DPT15: new DPT15(),
|
|
DPT16: new DPT16(),
|
|
DPT17: new DPT17(),
|
|
DPT18: new DPT18(),
|
|
DPT19: new DPT19(),
|
|
DPT20: new DPT20(),
|
|
DPT21: new DPT21(),
|
|
//DPT22: new DPT22(),
|
|
|
|
DPT232: new DPT232(),
|
|
DPT237: new DPT237(),
|
|
DPT238: new DPT238()
|
|
};
|
|
}
|
|
|
|
constructor(private _type: string, private _subtype: string, private _encoder: Encoder, private _decoder: Decoder) {
|
|
}
|
|
|
|
static validType(text: string): boolean {
|
|
const m = text.toUpperCase().match(/(?:DPT)?(\d+)(\.(\d+))?/);
|
|
return m != null;
|
|
}
|
|
|
|
toString(): string {
|
|
return `${this.type}.${this.subtype}`;
|
|
}
|
|
|
|
decode(buffer: Buffer): string | number {
|
|
return this._decoder(buffer);
|
|
}
|
|
|
|
encode(value: string | number): Buffer {
|
|
return this._encoder(value);
|
|
}
|
|
} |