Blame view

lib/modem-info.js 1.26 KB
0ea228ab6   Adhidarma Hadiwinoto   sms and ussd
1
2
  const DEFAULT_MAX_LAST_DATA_AGE_MS = 2 * 60 * 1000;
  const DEFAULT_INTERVAL_BETWEEN_IDLE_CHECK_MS = 30 * 1000;
3522ae5bc   Adhidarma Hadiwinoto   MODEM-INFO: stuck...
3

2e577f57b   Adhidarma Hadiwinoto   modem-info.js
4
  const config = require('komodo-sdk/config');
3522ae5bc   Adhidarma Hadiwinoto   MODEM-INFO: stuck...
5
  const logger = require('komodo-sdk/logger');
2e577f57b   Adhidarma Hadiwinoto   modem-info.js
6
7
8
9
10
11
12
  
  const modemInfo = {
      device: config.modem.device,
      manufacturer: null,
      model: null,
      imei: null,
      imsi: null,
2e577f57b   Adhidarma Hadiwinoto   modem-info.js
13
14
15
16
17
18
      cops: null,
      networkId: null,
      networkName: null,
      signalStrength: null,
      signalStrengthTs: null,
      signalStrengthTsReadable: null,
3522ae5bc   Adhidarma Hadiwinoto   MODEM-INFO: stuck...
19
20
21
      startTime: new Date(),
      lastWriteTs: null,
      lastReadTs: null,
2e577f57b   Adhidarma Hadiwinoto   modem-info.js
22
  };
3522ae5bc   Adhidarma Hadiwinoto   MODEM-INFO: stuck...
23
24
  if (!config.disable_idle_check) {
      setInterval(() => {
b3b28d49f   Adhidarma Hadiwinoto   MODEM-INFO idle c...
25
26
27
28
          const deltaMs = new Date() - Math.max(
              modemInfo.startTime,
              Math.min(modemInfo.lastWriteTs, modemInfo.lastReadTs),
          );
714f147ac   Adhidarma Hadiwinoto   MODEM-INFO: logs ...
29
30
31
          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   Adhidarma Hadiwinoto   MODEM-INFO: stuck...
32
33
              process.exit(1);
          }
0ea228ab6   Adhidarma Hadiwinoto   sms and ussd
34
      }, config.interval_beetwen_signal_strength_ms || DEFAULT_INTERVAL_BETWEEN_IDLE_CHECK_MS);
1f0a0f8db   Adhidarma Hadiwinoto   MODEM-INFO: more log
35
36
  } else {
      logger.info('Skip idle / stuck modem background check by config.disable_idle_check');
3522ae5bc   Adhidarma Hadiwinoto   MODEM-INFO: stuck...
37
  }
2e577f57b   Adhidarma Hadiwinoto   modem-info.js
38
  module.exports = modemInfo;