Commit afe1003d11755d5bd5e56e70b6875daa77456ef7
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); |
modem-tester.js
... | ... | @@ -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}`); |