diff --git a/lib/serialport-parsers.js b/lib/serialport-parsers.js index d8505c2..a9c7ed2 100644 --- a/lib/serialport-parsers.js +++ b/lib/serialport-parsers.js @@ -39,6 +39,17 @@ function onCSQ(data) { return val[1]; } +function onPdu(data, parsedData) { + const from = parsedData.getAddress && parsedData.getAddress().getPhone + ? parsedData.getAddress().getPhone() : null; + + const msg = parsedData.getData && parsedData.getData().getData + ? parsedData.getData().getData() : null; + + logger.verbose('PDU processed', { from, msg }); + return { from, msg }; +} + function onCOPS(data) { const val = data.toString().trim().match(/\+COPS:\s*(.*)/); if (!val || !val[1]) return null; @@ -85,7 +96,8 @@ parserReadline.on('data', (data) => { const pduParsed = parsePdu(data); if (pduParsed) { - logger.verbose('Got a PDU data', { pduParsed }); + logger.verbose('Got a PDU data', { type: typeof pduParsed }); + onPdu(data, pduParsed); } else if (isResultCodeIs(data, 'CSQ')) { logger.verbose('Got a signal quality report', { data: data.toString() }); onCSQ(data); diff --git a/package-lock.json b/package-lock.json index 9054dbc..ddef173 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3524,6 +3524,11 @@ "pify": "^2.0.0" } }, + "pdu": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pdu/-/pdu-1.1.0.tgz", + "integrity": "sha1-vugaShe1ndzys5wMFuIJF6aTmjQ=" + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", diff --git a/package.json b/package.json index 6c1d1eb..89a7093 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "locks": "^0.2.2", "moment": "^2.24.0", "node-pdu": "^1.0.15", + "pdu": "^1.1.0", "request": "^2.88.0", "serialport": "^7.1.5", "serialport-gsm": "^3.2.0"