Commit e509607c54ae1d6684ef4cca01ed398af9f97609

Authored by Adhidarma Hadiwinoto
1 parent d87943efc5
Exists in master

MODEM-COMMANDS: CSQ

Showing 2 changed files with 39 additions and 3 deletions Side-by-side Diff

lib/modem-commands.js
... ... @@ -0,0 +1,36 @@
  1 +const MUTEX_COMMAND = 'COMMAND';
  2 +// const MUTEX_SUBCOMMAND = 'SUBCOMMAND';
  3 +
  4 +const logger = require('komodo-sdk/logger');
  5 +const mutex = require('./mutex-common');
  6 +// const parsers = require('./serialport-parsers');
  7 +
  8 +let port;
  9 +
  10 +function writeToPort(data) {
  11 + return new Promise((resolve) => {
  12 + port.write(data, (err, bytesWritten) => {
  13 + if (err) logger.warn(`ERROR: ${err.toString()}`);
  14 +
  15 + logger.verbose('OUTGOING', { bytesWritten, data: data.toString() });
  16 + resolve(bytesWritten);
  17 + });
  18 + });
  19 +}
  20 +
  21 +exports.setPort = function setPort(val) {
  22 + port = val;
  23 +};
  24 +
  25 +exports.querySignalQuality = function querySignalQuality() {
  26 + return new Promise(async (resolve) => {
  27 + if (!mutex.tryLock(MUTEX_COMMAND, 'querySignalQuality')) {
  28 + resolve(false);
  29 + return;
  30 + }
  31 +
  32 + await writeToPort('AT+CSQ\r');
  33 + mutex.unlock(MUTEX_COMMAND, 'querySignalQuality');
  34 + resolve(true);
  35 + });
  36 +};
... ... @@ -7,6 +7,7 @@ const logger = require('komodo-sdk/logger');
7 7 const ParserInterByteTimeout = require('@serialport/parser-inter-byte-timeout');
8 8  
9 9 const parsers = require('./lib/serialport-parsers');
  10 +const modemCommands = require('./lib/modem-commands');
10 11  
11 12 const parserInterByteTimeout = new ParserInterByteTimeout({ interval: 1000 });
12 13 parserInterByteTimeout.on('data', (data) => {
... ... @@ -53,7 +54,6 @@ port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (err) =>
53 54 'AT+CGSN\r',
54 55 'AT+CIMI\r',
55 56 'AT+COPS?\r',
56   - 'AT+CSQ\r',
57 57 ];
58 58  
59 59  
... ... @@ -75,8 +75,8 @@ port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (err) =>
75 75 }
76 76  
77 77 setInterval(() => {
78   - writeToPort('AT+CSQ\r');
79   - }, 60000);
  78 + modemCommands.querySignalQuality();
  79 + }, 30000);
80 80 });
81 81  
82 82 parsers.setPort(port);