Commit e77dfd454654c8ae786e7ba0e7981601a7ee35b1
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; |
modem-tester.js
... | ... | @@ -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 |