UNPKG

open-sml

Version:

Smart Message Language Implementation

94 lines (74 loc) 2.81 kB
/*! * OpenSML * Copyright(c) 2014-2015 D. Spautz (d.spautz@web.de) * MIT Licensed */ var SmlTreePath = require('./data_structures/SmlTreePath'); var SmlTree = require('./data_structures/SmlTree'); var Constants = require('../Constants'); function SmlGetProcParameterResponse(){ this.serverId = undefined; this.parameterTreePath = undefined; this.parameterTree = undefined; } SmlGetProcParameterResponse.prototype.getServerId = function getServerId(){ return this.serverId; }; SmlGetProcParameterResponse.prototype.setServerId = function setServerId(value){ this.serverId = value; }; SmlGetProcParameterResponse.prototype.getParameterTreePath = function getParameterTreePath(){ return this.parameterTreePath; }; SmlGetProcParameterResponse.prototype.setParameterTreePath = function setParameterTreePath(value){ this.parameterTreePath = value; }; SmlGetProcParameterResponse.prototype.getParameterTree = function getParameterTree(){ return this.parameterTree; }; SmlGetProcParameterResponse.prototype.setParameterTree = function setParameterTree(value){ this.parameterTree = value; }; SmlGetProcParameterResponse.prototype.getSize = function getSize(){ var size = 11; if(this.serverId){ size += this.serverId.length; } if(this.username){ size += this.username.length; } if(this.password){ size += this.password.length; } size += this.parameterTreePath.getSize(); if(this.attribute){ size += this.sttribute.length; } return size; }; SmlGetProcParameterResponse.prototype.write = function write(buffer){ buffer.writeChoice(Constants.GET_PROC_PARAMETER_RESPONSE, Constants.UINT32); buffer.writeTLField(0x73); // SEQUENZ buffer.writeOctetString(this.serverId); this.parameterTreePath.write(buffer); this.parameterTree.write(buffer); }; SmlGetProcParameterResponse.prototype.toString = function toString(){ var str = "\t\tSmlGetProcParameterResponse\n"; str += "\t\t\tServer-ID: "+(this.serverId?this.serverId.toString('hex'):this.serverId)+"\n"; str += "\t\t\tParameter-Tree-Path: "+(this.parameterTreePath?this.parameterTreePath.toString():this.parameterTreePath)+"\n"; str += "\t\t\tParameter-Tree: "+(this.parameterTree?this.parameterTree.toString():this.parameterTree)+"\n"; return str; }; SmlGetProcParameterResponse.parse = function parse(buffer){ if(buffer.readTLField()==0x07,0x03){ var smlGetProcParameterResponse = new SmlGetProcParameterResponse(); smlGetProcParameterResponse.setServerId(buffer.readOctetString()); smlGetProcParameterResponse.setParameterTreePath(SmlTreePath.parse(buffer)); smlGetProcParameterResponse.setParameterTree(SmlTree.parse(buffer)); return smlGetProcParameterResponse; } else { throw new Error("Unknown TL-Field for SmlGetProcParameterResponse!"); } }; module.exports = SmlGetProcParameterResponse;