From 62c6c2398a44b891af0863cbb5dafb23a07e7791 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Tue, 3 Sep 2019 21:44:41 +0700 Subject: [PATCH] Alternative pdu parser --- lib/serialport-parsers.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/serialport-parsers.js b/lib/serialport-parsers.js index afe23f5..e9e13b0 100644 --- a/lib/serialport-parsers.js +++ b/lib/serialport-parsers.js @@ -2,7 +2,8 @@ const PARSER_READLINE_DELIMITER = '\r\n'; const PARSER_WAIT_FOR_OK_OR_ERROR_REGEX = /\r\n(?:OK|ERROR)\r\n/; const moment = require('moment'); -const pdu = require('node-pdu'); +const nodePdu = require('node-pdu'); +const pdu = require('pdu'); const ParserReadline = require('@serialport/parser-readline'); const ParserRegex = require('@serialport/parser-regex'); @@ -26,7 +27,7 @@ function parsePdu(data) { if (!data) return null; try { - const result = pdu.parse(data.toString().trim() || ''); + const result = nodePdu.parse(data.toString().trim() || ''); return result; } catch (e) { return null; @@ -109,6 +110,17 @@ parserReadline.on('data', (data) => { if (!data) return; + let pduParsed2; + try { + pduParsed2 = pdu.parse(data); + } catch (e) { + // + } + + if (pduParsed2) { + logger.verbose('Alternative PDU Parser', pduParsed2); + } + const pduParsed = parsePdu(data); if (pduParsed) { logger.verbose('PDU parsed', { type: (typeof pduParsed.getType === 'function') && pduParsed.getType() }); -- 1.9.0