const MAX_LAST_DATA_AGE_MS = 2 * 60 * 1000; const INTERVAL_BETWEEN_IDLE_CHECK_MS = 30 * 1000; const config = require('komodo-sdk/config'); const logger = require('komodo-sdk/logger'); const modemInfo = { device: config.modem.device, manufacturer: null, model: null, imei: null, imsi: null, cops: null, networkId: null, networkName: null, signalStrength: null, signalStrengthTs: null, signalStrengthTsReadable: null, startTime: new Date(), lastWriteTs: null, lastReadTs: null, }; if (!config.disable_idle_check) { setInterval(() => { const deltaMs = new Date() - Math.max(modemInfo.lastWriteTs, modemInfo.startTime); if (deltaMs >= (config.max_last_data_age_ms || MAX_LAST_DATA_AGE_MS)) { logger.warn(`Modem idle for ${deltaMs} ms. Modem stucked? Terminating!`); process.exit(1); } }, INTERVAL_BETWEEN_IDLE_CHECK_MS); } module.exports = modemInfo;