Commit c5e93b5ea3be4e4be09c1b73b129c39a9a31f4e9
1 parent
beb8f058af
Exists in
master
queryIMEIAndIMSI
Showing 3 changed files with 21 additions and 9 deletions Side-by-side Diff
lib/modem-commands.js
... | ... | @@ -92,9 +92,11 @@ exports.queryCOPS = function queryCOPS(lockName) { |
92 | 92 | }); |
93 | 93 | }; |
94 | 94 | |
95 | -exports.queryCOPSAndSignalQuality = function queryCOPSAndSignalQuality() { | |
95 | +exports.queryCOPSAndSignalQuality = function queryCOPSAndSignalQuality(skipOnLocked) { | |
96 | 96 | return new Promise(async (resolve) => { |
97 | - if (!mutex.tryLock(MUTEX_COMMAND, 'queryCOPSAndSignalQuality')) { | |
97 | + if (!skipOnLocked) { | |
98 | + await mutex.lock(MUTEX_COMMAND); | |
99 | + } else if (!mutex.tryLock(MUTEX_COMMAND, 'queryCOPSAndSignalQuality')) { | |
98 | 100 | resolve(false); |
99 | 101 | return; |
100 | 102 | } |
... | ... | @@ -107,38 +109,47 @@ exports.queryCOPSAndSignalQuality = function queryCOPSAndSignalQuality() { |
107 | 109 | }); |
108 | 110 | }; |
109 | 111 | |
110 | -exports.queryIMEI = function queryIMEI() { | |
112 | +exports.queryIMEI = function queryIMEI(lockName) { | |
111 | 113 | return new Promise(async (resolve) => { |
112 | 114 | const parser = new ParserRegex({ regex: parsers.PARSER_WAIT_FOR_OK_OR_ERROR_REGEX }); |
113 | 115 | parser.on('data', (data) => { |
114 | 116 | logger.verbose('INCOMING', { data: data.toString(), parser: 'parserIMEI' }); |
115 | 117 | port.unpipe(parser); |
116 | - mutex.unlock(MUTEX_COMMAND, 'queryIMEI'); | |
118 | + mutex.unlock(lockName || MUTEX_COMMAND, 'queryIMEI'); | |
117 | 119 | modemInfo.imei = data.toString().trim(); |
118 | 120 | resolve(modemInfo.imei); |
119 | 121 | }); |
120 | 122 | |
121 | - await mutex.lock(MUTEX_COMMAND, 'queryIMEI'); | |
123 | + await mutex.lock(lockName || MUTEX_COMMAND, 'queryIMEI'); | |
122 | 124 | |
123 | 125 | port.pipe(parser); |
124 | 126 | await writeToPort('AT+CGSN\r'); |
125 | 127 | }); |
126 | 128 | }; |
127 | 129 | |
128 | -exports.queryIMSI = function queryIMSI() { | |
130 | +exports.queryIMSI = function queryIMSI(lockName) { | |
129 | 131 | return new Promise(async (resolve) => { |
130 | 132 | const parser = new ParserRegex({ regex: parsers.PARSER_WAIT_FOR_OK_OR_ERROR_REGEX }); |
131 | 133 | parser.on('data', (data) => { |
132 | 134 | logger.verbose('INCOMING', { data: data.toString(), parser: 'parserIMSI' }); |
133 | 135 | port.unpipe(parser); |
134 | - mutex.unlock(MUTEX_COMMAND, 'queryIMSI'); | |
136 | + mutex.unlock(lockName || MUTEX_COMMAND, 'queryIMSI'); | |
135 | 137 | modemInfo.imsi = data.toString().trim(); |
136 | 138 | resolve(modemInfo.imsi); |
137 | 139 | }); |
138 | 140 | |
139 | - await mutex.lock(MUTEX_COMMAND, 'queryIMSI'); | |
141 | + await mutex.lock(lockName || MUTEX_COMMAND, 'queryIMSI'); | |
140 | 142 | |
141 | 143 | port.pipe(parser); |
142 | 144 | await writeToPort('AT+CIMI\r'); |
143 | 145 | }); |
144 | 146 | }; |
147 | + | |
148 | +exports.queryIMEIAndIMSI = async function queryIMEIAndIMSI() { | |
149 | + await mutex.lock(MUTEX_COMMAND, 'queryIMEIAndIMSI'); | |
150 | + | |
151 | + await this.queryIMEI(MUTEX_SUBCOMMAND); | |
152 | + await this.queryIMSI(MUTEX_SUBCOMMAND); | |
153 | + | |
154 | + await mutex.unlock(MUTEX_SUBCOMMAND, 'queryIMEIAndIMSI'); | |
155 | +}; |
lib/serialport-parsers.js
... | ... | @@ -60,7 +60,7 @@ function onCOPS(data) { |
60 | 60 | const [mode, format, networkId] = cops.split(','); |
61 | 61 | const networkName = networkId ? dbCops[networkId] || networkId : null; |
62 | 62 | |
63 | - logger.verbose('COPS extracted', { | |
63 | + logger.info('COPS extracted', { | |
64 | 64 | cops, mode, format, networkId, networkName, |
65 | 65 | }); |
66 | 66 |
modem-tester.js
... | ... | @@ -34,6 +34,7 @@ const port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (er |
34 | 34 | await modemCommands.queryCOPSAndSignalQuality(); |
35 | 35 | |
36 | 36 | setInterval(() => { |
37 | + modemCommands.queryIMEIAndIMSI(); | |
37 | 38 | modemCommands.queryCOPSAndSignalQuality(); |
38 | 39 | }, (config && config.interval_beetwen_signal_strength_ms) || 30000); |
39 | 40 | }); |