@widesky/node-bacstack
Version:
The BACnet protocol library written in pure JavaScript.
34 lines (29 loc) • 1.07 kB
JavaScript
const baAsn1 = require('../asn1');
const baEnum = require('../enum');
module.exports.encode = (buffer, errorClass, errorCode) => {
baAsn1.encodeApplicationEnumerated(buffer, errorClass);
baAsn1.encodeApplicationEnumerated(buffer, errorCode);
};
module.exports.decode = (buffer, offset) => {
const orgOffset = offset;
let result;
result = baAsn1.decodeTagNumberAndValue(buffer, offset);
offset += result.len;
const errorClass = baAsn1.decodeEnumerated(buffer, offset, result.value);
offset += errorClass.len;
result = baAsn1.decodeTagNumberAndValue(buffer, offset);
offset += result.len;
const errorCode = baAsn1.decodeEnumerated(buffer, offset, result.value);
offset += errorClass.len;
return {
len: offset - orgOffset,
class: errorClass.value,
code: errorCode.value
};
};
module.exports.buildMessage = function (result) {
return 'BacnetError Class: ' + baEnum.ErrorClassName[result.class] + ' ' +
'(' + result.class + ') ' +
'Code: ' + baEnum.ErrorCodeName[result.code] + ' (' + result.code + ')';
};
;