diff --git a/lib/modem.js b/lib/modem.js index 3e7f364..61b81b7 100644 --- a/lib/modem.js +++ b/lib/modem.js @@ -2,7 +2,8 @@ const INTERVAL_BEETWEN_SIGNAL_STRENGTH_MS = 60000; const MAX_LAST_DATA_AGE_MS = 3 * 60 * 1000; -const REGEX_WAIT_FOR_OK_OR_ERROR = /\n(?:OK|ERROR)\r\n/; +// const REGEX_WAIT_FOR_OK_OR_ERROR = /\n(?:OK|ERROR)\r\n/; +const REGEX_WAIT_FOR_OK_OR_ERROR = /(?:OK|ERROR)\r/; const moment = require('moment'); const SerialPort = require('serialport'); diff --git a/package-lock.json b/package-lock.json index 7a3a5e0..270f0b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -80,6 +80,11 @@ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-2.0.2.tgz", "integrity": "sha512-zB02LahFfyZmJqak9l37vP/F1K+KCUxd1KQj35OhD1+0q/unMjVTZmsfkxFSM4gkaxP9j7+8USk+LQJ3V8U26Q==" }, + "@serialport/parser-inter-byte-timeout": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-1.1.0.tgz", + "integrity": "sha512-FHJGjRzgnNsMP2mzyfnbFBd0Kh6abyXX4e0zwVfN1zmeIPc05CjXSomuy9c8qH4EzaASHosNGjDpisw/aL+53g==" + }, "@serialport/parser-readline": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-2.0.2.tgz", diff --git a/package.json b/package.json index 3aa9dcc..f3d3704 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ }, "dependencies": { "@serialport/parser-delimiter": "^2.0.2", + "@serialport/parser-inter-byte-timeout": "^1.1.0", "@serialport/parser-readline": "^2.0.2", "@serialport/parser-regex": "^2.0.2", "express": "^4.17.1", diff --git a/tools/parser-test.js b/tools/parser-test.js new file mode 100644 index 0000000..f2e40f2 --- /dev/null +++ b/tools/parser-test.js @@ -0,0 +1,49 @@ +'use strict'; + +/* eslint-disable no-console */ + +const devicePath = '/dev/ttyUSB0'; + +const moment = require('moment'); +const SerialPort = require('serialport'); + +console.log(Buffer.from('OK')); +console.log(Buffer.from('\r')); +console.log(Buffer.from('\n')); +console.log(Buffer.from('\x1a')); +console.log(Buffer.from([0x1A])); + +const InterByteTimeout = require('@serialport/parser-inter-byte-timeout') +// const Delimiter = require('@serialport/parser-delimiter'); +const ParserReadline = require('@serialport/parser-readline'); + + +const port = new SerialPort(devicePath, { baudRate: 115200 }); + +const parserReadline = new ParserReadline(); +parserReadline.on('data', (data) => { + console.log(`READLINE: ${data}`); +}); + +port.pipe(parserReadline); + +const parserInterByteTimeout = new InterByteTimeout({ interval: 1000 }); +parserInterByteTimeout.on('data', (data) => { + console.log('INTERBYTETIMEOUT:'); + console.log(data); +}); +// port.pipe(parserInterByteTimeout); + + +port.on('open', () => { + console.log('====='); + port.write('ATE0\r') + // port.write('AT+CIMI\r'); + // port.write('OK'); + port.write('AT\r'); + port.write('AT+CMGF=1\r'); + port.write('AT+CMGS="+6282210008543"\r'); + port.write(`Coba dari parser-test ${moment().format('HHmmss')}`); + port.write(Buffer.from('\x1a')); + +});