UNPKG

dlms-protocol

Version:

DLMS Protocol parser for JavaScript

71 lines (70 loc) 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("core-js/modules/es.regexp.to-string.js"); require("core-js/modules/esnext.iterator.map.js"); require("core-js/modules/web.dom-collections.iterator.js"); var _MessageType = _interopRequireDefault(require("./enum/MessageType")); var _DlmsDatas = _interopRequireDefault(require("../typesDLMS/DlmsDatas")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class ActionResponse { constructor() { let bytes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; this.SetType = null; this.InvokeIdAndPriority = null; this.DataAcessResult = null; this.ReturnParameters = null; this.ParameterType = null; this.DlmsData = null; this.GetDataAcessResult = null; this.Value = null; if (bytes) { this.insertData(bytes); } } insertData(bytes) { this.Value = [...bytes]; this.SetType = bytes[1]; this.InvokeIdAndPriority = bytes[2]; this.DataAcessResult = bytes[3]; this.ReturnParameters = bytes[4]; if (this.ReturnParameters === 0) return; this.ParameterType = bytes[5]; switch (this.ParameterType) { case 0: this.DlmsData = _DlmsDatas.default.factory(bytes[6]); const temp = bytes.slice(6); this.DlmsData.insertData(temp); break; default: this.GetDataAcessResult = bytes[6]; break; } } getBytes() { const result = []; result.push(_MessageType.default.ACTION_RESPONSE); result.push(this.SetType); result.push(this.InvokeIdAndPriority); result.push(this.DataAcessResult); result.push(this.ReturnParameters); if (this.ReturnParameters !== 0) { result.push(this.ParameterType); switch (this.ParameterType) { case 0: result.push(...this.DlmsData.rawValue); break; default: result.push(this.GetDataAcessResult); break; } } return Buffer.from(result); } getHexString() { return this.Value.map(byte => byte.toString(16).toUpperCase().padStart(2, '0')).join(' '); } } var _default = exports.default = ActionResponse;