Blame view
lib/modem-info.js
1.42 KB
0ea228ab6
|
1 2 |
const DEFAULT_MAX_LAST_DATA_AGE_MS = 2 * 60 * 1000; const DEFAULT_INTERVAL_BETWEEN_IDLE_CHECK_MS = 30 * 1000; |
3522ae5bc
|
3 |
|
2e577f57b
|
4 |
const config = require('komodo-sdk/config'); |
3522ae5bc
|
5 |
const logger = require('komodo-sdk/logger'); |
2e577f57b
|
6 7 8 9 10 11 12 |
const modemInfo = { device: config.modem.device, manufacturer: null, model: null, imei: null, imsi: null, |
2e577f57b
|
13 14 15 16 17 18 |
cops: null, networkId: null, networkName: null, signalStrength: null, signalStrengthTs: null, signalStrengthTsReadable: null, |
3522ae5bc
|
19 20 21 |
startTime: new Date(), lastWriteTs: null, lastReadTs: null, |
2e577f57b
|
22 |
}; |
3522ae5bc
|
23 |
if (!config.disable_idle_check) { |
a00767a73
|
24 25 26 27 |
const intervalBeetwenCheckMs = config.interval_beetwen_signal_strength_ms || DEFAULT_INTERVAL_BETWEEN_IDLE_CHECK_MS; logger.info('Registering idle / stuck modem background check', { intervalBeetwenCheckMs }); |
3522ae5bc
|
28 |
setInterval(() => { |
b3b28d49f
|
29 30 31 32 |
const deltaMs = new Date() - Math.max( modemInfo.startTime, Math.min(modemInfo.lastWriteTs, modemInfo.lastReadTs), ); |
714f147ac
|
33 34 35 |
const maxLastDataAgeMs = config.max_last_data_age_ms || DEFAULT_MAX_LAST_DATA_AGE_MS; if (deltaMs >= maxLastDataAgeMs) { logger.warn(`Modem idle for more than ${maxLastDataAgeMs} ms. Stucked modem? Terminating!`, { deltaMs }); |
3522ae5bc
|
36 37 |
process.exit(1); } |
a00767a73
|
38 |
}, intervalBeetwenCheckMs); |
1f0a0f8db
|
39 40 |
} else { logger.info('Skip idle / stuck modem background check by config.disable_idle_check'); |
3522ae5bc
|
41 |
} |
2e577f57b
|
42 |
module.exports = modemInfo; |