Commit 68d230dda74d17e901a46ae29aa28ce17dc63c87

Authored by Adhidarma Hadiwinoto
1 parent e3ffe9ea69
Exists in master

modem-tester.js

Showing 1 changed file with 51 additions and 0 deletions Side-by-side Diff

... ... @@ -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);