UNPKG

open-sml

Version:

Smart Message Language Implementation

130 lines (104 loc) 3.73 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 SmlSetProcParameterRequest(){ this.serverId = undefined; this.username = undefined; this.password = undefined; this.parameterTreePath = undefined; this.parameterTree = undefined; } SmlSetProcParameterRequest.prototype.getServerId = function getServerId(){ return this.serverId; }; SmlSetProcParameterRequest.prototype.setServerId = function setServerId(value){ this.serverId = value; }; SmlSetProcParameterRequest.prototype.getUsername = function getUsername(){ return this.username; }; SmlSetProcParameterRequest.prototype.setUsername = function setUsername(value){ this.username = value; }; SmlSetProcParameterRequest.prototype.getPassword = function getPassword(){ return this.password; }; SmlSetProcParameterRequest.prototype.setPassword = function setPassword(value){ this.password = value; }; SmlSetProcParameterRequest.prototype.getParameterTreePath = function getParameterTreePath(){ return this.parameterTreePath; }; SmlSetProcParameterRequest.prototype.setParameterTreePath = function setParameterTreePath(value){ this.parameterTreePath = value; }; SmlSetProcParameterRequest.prototype.getParameterTree = function getParameterTree(){ return this.parameterTree; }; SmlSetProcParameterRequest.prototype.setParameterTree = function setParameterTree(value){ this.parameterTree = value; }; SmlSetProcParameterRequest.prototype.getSize = function getSize(){ var size = 10; if(this.serverId !== undefined){ size += this.serverId.lenght; } if(this.username !== undefined){ size += this.username.lenght; } if(this.password !== undefined){ size += this.password.lenght; } size += this.parameterTreePath.getSize(); size += this.parameterTree.getSize(); return size; }; SmlSetProcParameterRequest.prototype.write = function write(buffer){ buffer.writeChoice(Constants.SET_PROC_PARAMETER_REQUEST, Constants.UINT32); buffer.writeTLField(0x75); // SEQUENZ if(this.serverId !== undefined){ buffer.writeOctetString(this.serverId); } else { buffer.writeUInt8(0x01); } if(this.username !== undefined){ buffer.writeOctetString(this.username); } else { buffer.writeUInt8(0x01); } if(this.password !== undefined){ buffer.writeOctetString(this.password); } else { buffer.writeUInt8(0x01); } this.parameterTreePath.write(buffer); this.parameterTree.write(buffer); }; SmlSetProcParameterRequest.prototype.toString = function toString(){ var str = ""; str += "Server ID: "+this.serverId+"\n"; str += "Username: "+this.username+"\n"; str += "Password: "+this.password+"\n"; str += "Parameter Tree-Path: "+(this.parameterTreePath ? this.parameterTreePath.toString() : this.parameterTreePath)+"\n"; str += "Parameter Tree: "+(this.parameterTree ? this.parameterTree.toString() : this.parameterTree)+"\n"; return str; }; SmlSetProcParameterRequest.parse = function parse(buffer){ if(buffer.readTLField()==0x07,0x05){ var smlSetProcParameterRequest = new SmlSetProcParameterRequest(); smlSetProcParameterRequest.setServerId(buffer.readOctetString()); smlSetProcParameterRequest.setUsername(buffer.readOctetString()); smlSetProcParameterRequest.setPassword(buffer.readOctetString); smlSetProcParameterRequest.setParameterTreePath(SmlTreePath.parse(buffer)); smlSetProcParameterRequest.setParameterTree(SmlTree.parse(buffer)); return smlSetProcParameterRequest; } else { throw new Error("Unknown TL-Field for SmlSetProcParameterRequest!"); } }; module.exports = SmlSetProcParameterRequest;