Commit e77dfd454654c8ae786e7ba0e7981601a7ee35b1

Authored by Adhidarma Hadiwinoto
1 parent d54ac95033
Exists in master

queryIMEI

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

lib/modem-commands.js
1 1 const MUTEX_COMMAND = 'COMMAND';
2 2 // const MUTEX_SUBCOMMAND = 'SUBCOMMAND';
3 3  
  4 +const ParserRegex = require('@serialport/parser-regex');
  5 +
4 6 const logger = require('komodo-sdk/logger');
5 7 const mutex = require('./mutex-common');
6   -// const parsers = require('./serialport-parsers');
  8 +const parsers = require('./serialport-parsers');
7 9  
8 10 let port;
9 11  
... ... @@ -52,3 +54,20 @@ exports.queryCOPS = function querySignalQuality() {
52 54 resolve(true);
53 55 });
54 56 };
  57 +
  58 +exports.queryIMEI = function queryIMEI() {
  59 + return new Promise(async (resolve) => {
  60 + const parser = new ParserRegex({ regex: parsers.PARSER_WAIT_FOR_OK_OR_ERROR_REGEX });
  61 + parser.on('data', (data) => {
  62 + logger.verbose('INCOMING', { parser: 'parserIMEI', data: data.toString() });
  63 + mutex.unlock(MUTEX_COMMAND, 'queryIMEI');
  64 + resolve();
  65 + });
  66 +
  67 + await mutex.lock(MUTEX_COMMAND, 'queryIMEI');
  68 +
  69 + port.pipe(parser);
  70 + await writeToPort('AT+CGSN\r');
  71 + port.unpipe(parser);
  72 + });
  73 +};
lib/serialport-parsers.js
... ... @@ -125,5 +125,8 @@ parserWaitForOkOrError.on('data', (data) => {
125 125 });
126 126  
127 127  
  128 +exports.PARSER_READLINE_DELIMITER = PARSER_READLINE_DELIMITER;
  129 +exports.PARSER_WAIT_FOR_OK_OR_ERROR_REGEX = PARSER_WAIT_FOR_OK_OR_ERROR_REGEX;
  130 +
128 131 exports.parserReadline = parserReadline;
129 132 exports.parserWaitForOkOrError = parserWaitForOkOrError;
... ... @@ -51,7 +51,6 @@ port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (err) =>
51 51  
52 52 const commands = [
53 53 'AT&FE0\r',
54   - 'AT+CGSN\r',
55 54 'AT+CIMI\r',
56 55 'AT+CMGF=0\r',
57 56 'AT+CNMI=1,2,0,1,0\r',
... ... @@ -74,6 +73,7 @@ port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (err) =>
74 73 }
75 74 }
76 75  
  76 + await modemCommands.queryIMEI();
77 77 await modemCommands.queryCOPS();
78 78 await modemCommands.querySignalQuality();
79 79