Commit 68d230dda74d17e901a46ae29aa28ce17dc63c87
1 parent
e3ffe9ea69
Exists in
master
modem-tester.js
Showing 1 changed file with 51 additions and 0 deletions Side-by-side Diff
modem-tester.js
... | ... | @@ -0,0 +1,51 @@ |
1 | +const SerialPort = require('serialport'); | |
2 | +const ParserReadline = require('@serialport/parser-readline'); | |
3 | + | |
4 | +const config = require('komodo-sdk/config'); | |
5 | +const logger = require('komodo-sdk/logger'); | |
6 | + | |
7 | +let port; | |
8 | + | |
9 | +const parserCRLF = new ParserReadline({ delimiter: '\r\n' }); | |
10 | +parserCRLF.on('data', (data) => { | |
11 | + logger.verbose('INCOMING', { parser: 'parserReadLine', data: data.toString() }); | |
12 | +}); | |
13 | + | |
14 | +function sleep(ms) { | |
15 | + return new Promise((resolve) => { | |
16 | + setTimeout(() => { | |
17 | + resolve(); | |
18 | + }, ms || 0); | |
19 | + }); | |
20 | +} | |
21 | + | |
22 | +function writeToPort(data) { | |
23 | + return new Promise((resolve) => { | |
24 | + port.write(data, (err, bytesWritten) => { | |
25 | + if (err) logger.warn(`ERROR: ${err.toString()}`); | |
26 | + | |
27 | + logger.verbose('OUTGOING', { bytesWritten, data: data.toString() }); | |
28 | + resolve(bytesWritten); | |
29 | + }); | |
30 | + }); | |
31 | +} | |
32 | + | |
33 | +async function writeToPortDelayed(data) { | |
34 | + await sleep(500); | |
35 | + const result = writeToPort(data); | |
36 | + return result; | |
37 | +} | |
38 | + | |
39 | +port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (err) => { | |
40 | + if (err) { | |
41 | + logger.warn(`Error opening modem. ${err}. Terminating modem ${config.modem.device}.`); | |
42 | + process.exit(1); | |
43 | + } | |
44 | + | |
45 | + await writeToPortDelayed('AT\r'); | |
46 | + await writeToPort('AT+CIMI\r'); | |
47 | + await writeToPort('AT+CSQ\r'); | |
48 | + await writeToPort('AT+COPS?\r'); | |
49 | +}); | |
50 | + | |
51 | +port.pipe(parserCRLF); |