Commit afe1003d11755d5bd5e56e70b6875daa77456ef7

Authored by Adhidarma Hadiwinoto
1 parent ad489775d2
Exists in master

Using modemCommands.writeToPortAndWaitForOkOrError

Showing 2 changed files with 19 additions and 4 deletions Side-by-side Diff

lib/modem-commands.js
... ... @@ -26,7 +26,22 @@ exports.writeToPortAndWaitForReadline = function writeToPortAndWaitForReadline(c
26 26 return new Promise(async (resolve) => {
27 27 const parser = new ParserReadline({ delimiter: parsers.PARSER_READLINE_DELIMITER });
28 28 parser.on('data', (data) => {
29   - logger.verbose('INCOMING', { parser: 'customParserReadLine', data: `${data.toString()}${parsers.PARSER_READLINE_DELIMITER}` });
  29 + port.unpipe(parser);
  30 + mutex.unlock(lockName || MUTEX_COMMAND, cmd.trim());
  31 + resolve(data);
  32 + });
  33 +
  34 + await mutex.lock(lockName || MUTEX_COMMAND, cmd.trim());
  35 + port.pipe(parser);
  36 + await writeToPort(cmd);
  37 + });
  38 +};
  39 +
  40 +exports.writeToPortAndWaitForOkOrError = function writeToPortAndWaitForOkOrError(cmd, lockName) {
  41 + return new Promise(async (resolve) => {
  42 + const parser = new ParserRegex({ regex: parsers.PARSER_WAIT_FOR_OK_OR_ERROR_REGEX });
  43 + parser.on('data', (data) => {
  44 + logger.verbose('INCOMING', { parser: 'customParserWaitForOkOrError', data: data.toString() });
30 45 port.unpipe(parser);
31 46 mutex.unlock(lockName || MUTEX_COMMAND, cmd.trim());
32 47 resolve(data);
... ... @@ -49,9 +49,9 @@ port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (err) =>
49 49  
50 50 await writeToPortDelayed('AT\r');
51 51  
52   - await modemCommands.writeToPortAndWaitForReadline('AT&FE0\r');
53   - await modemCommands.writeToPortAndWaitForReadline('AT+CMGF=0\r');
54   - await modemCommands.writeToPortAndWaitForReadline('AT+CNMI=1,2,0,1,0\r');
  52 + await modemCommands.writeToPortAndWaitForOkOrError('AT&FE0\r');
  53 + await modemCommands.writeToPortAndWaitForOkOrError('AT+CMGF=0\r');
  54 + await modemCommands.writeToPortAndWaitForOkOrError('AT+CNMI=1,2,0,1,0\r');
55 55  
56 56 const imei = await modemCommands.queryIMEI();
57 57 logger.info(`**** IMEI: ${imei}`);