Commit caac94e43576e766a9a97dfb48f5b27f16fe7b29
1 parent
949103a578
Exists in
master
modemInfo integrated
Showing 3 changed files with 22 additions and 4 deletions Side-by-side Diff
lib/modem-commands.js
... | ... | @@ -117,6 +117,7 @@ exports.queryIMEI = function queryIMEI(lockName) { |
117 | 117 | port.unpipe(parser); |
118 | 118 | mutex.unlock(lockName || MUTEX_COMMAND, 'queryIMEI'); |
119 | 119 | modemInfo.imei = data.toString().trim(); |
120 | + logger.info('IMEI extracted', { imei: modemInfo.imei }); | |
120 | 121 | resolve(modemInfo.imei); |
121 | 122 | }); |
122 | 123 | |
... | ... | @@ -135,6 +136,7 @@ exports.queryIMSI = function queryIMSI(lockName) { |
135 | 136 | port.unpipe(parser); |
136 | 137 | mutex.unlock(lockName || MUTEX_COMMAND, 'queryIMSI'); |
137 | 138 | modemInfo.imsi = data.toString().trim(); |
139 | + logger.info('IMSI extracted', { imsi: modemInfo.imsi }); | |
138 | 140 | resolve(modemInfo.imsi); |
139 | 141 | }); |
140 | 142 | |
... | ... | @@ -148,8 +150,9 @@ exports.queryIMSI = function queryIMSI(lockName) { |
148 | 150 | exports.queryIMEIAndIMSI = async function queryIMEIAndIMSI() { |
149 | 151 | await mutex.lock(MUTEX_COMMAND, 'queryIMEIAndIMSI'); |
150 | 152 | |
151 | - await this.queryIMEI(MUTEX_SUBCOMMAND); | |
152 | - await this.queryIMSI(MUTEX_SUBCOMMAND); | |
153 | + const imei = await this.queryIMEI(MUTEX_SUBCOMMAND); | |
154 | + const imsi = await this.queryIMSI(MUTEX_SUBCOMMAND); | |
153 | 155 | |
154 | 156 | await mutex.unlock(MUTEX_COMMAND, 'queryIMEIAndIMSI'); |
157 | + return { imei, imsi }; | |
155 | 158 | }; |
lib/serialport-parsers.js
1 | 1 | const PARSER_READLINE_DELIMITER = '\r\n'; |
2 | 2 | const PARSER_WAIT_FOR_OK_OR_ERROR_REGEX = /\r\n(?:OK|ERROR)\r\n/; |
3 | 3 | |
4 | +const moment = require('moment'); | |
4 | 5 | const pdu = require('node-pdu'); |
5 | 6 | const ParserReadline = require('@serialport/parser-readline'); |
6 | 7 | const ParserRegex = require('@serialport/parser-regex'); |
... | ... | @@ -8,6 +9,7 @@ const ParserRegex = require('@serialport/parser-regex'); |
8 | 9 | const logger = require('komodo-sdk/logger'); |
9 | 10 | |
10 | 11 | const dbCops = require('./db-cops'); |
12 | +const modemInfo = require('./modem-info'); | |
11 | 13 | |
12 | 14 | let port; |
13 | 15 | |
... | ... | @@ -35,8 +37,15 @@ function onCSQ(data) { |
35 | 37 | const val = data.toString().trim().match(/\+CSQ:\s*(.*)/); |
36 | 38 | if (!val || !val[1]) return null; |
37 | 39 | |
40 | + const [, signalStrength] = val; | |
41 | + | |
38 | 42 | logger.info('Signal quality extracted', { signalQuality: val[1] }); |
39 | - return val[1]; | |
43 | + | |
44 | + modemInfo.signalStrength = signalStrength; | |
45 | + modemInfo.signalStrengthTs = new Date(); | |
46 | + modemInfo.signalStrengthTsReadable = moment(modemInfo.signalStrengthTs).format('YYYY-MM-DD HH:mm:ss'); | |
47 | + | |
48 | + return signalStrength; | |
40 | 49 | } |
41 | 50 | |
42 | 51 | function onPduDeliver(data, parsedData) { |
... | ... | @@ -64,6 +73,10 @@ function onCOPS(data) { |
64 | 73 | cops, mode, format, networkId, networkName, |
65 | 74 | }); |
66 | 75 | |
76 | + modemInfo.cops = cops; | |
77 | + modemInfo.networkId = networkId; | |
78 | + modemInfo.networkName = networkName; | |
79 | + | |
67 | 80 | return { |
68 | 81 | cops, mode, format, networkId, networkName, |
69 | 82 | }; |
modem-tester.js
... | ... | @@ -3,11 +3,11 @@ const SerialPort = require('serialport'); |
3 | 3 | const config = require('komodo-sdk/config'); |
4 | 4 | const logger = require('komodo-sdk/logger'); |
5 | 5 | |
6 | - | |
7 | 6 | const ParserInterByteTimeout = require('@serialport/parser-inter-byte-timeout'); |
8 | 7 | |
9 | 8 | const parsers = require('./lib/serialport-parsers'); |
10 | 9 | const modemCommands = require('./lib/modem-commands'); |
10 | +const modemInfo = require('./lib/modem-info'); | |
11 | 11 | |
12 | 12 | const parserInterByteTimeout = new ParserInterByteTimeout({ interval: 1000 }); |
13 | 13 | parserInterByteTimeout.on('data', (data) => { |
... | ... | @@ -27,10 +27,12 @@ const port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (er |
27 | 27 | |
28 | 28 | await modemCommands.queryIMEIAndIMSI(); |
29 | 29 | await modemCommands.queryCOPSAndSignalQuality(); |
30 | + logger.info('Modem state', modemInfo); | |
30 | 31 | |
31 | 32 | setInterval(() => { |
32 | 33 | modemCommands.queryIMEIAndIMSI(); |
33 | 34 | modemCommands.queryCOPSAndSignalQuality(); |
35 | + logger.info('Modem state', modemInfo); | |
34 | 36 | }, (config && config.interval_beetwen_signal_strength_ms) || 30000); |
35 | 37 | }); |
36 | 38 |