Blame view

lib/modem-info.js 1.42 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
  if (!config.disable_idle_check) {
a00767a73   Adhidarma Hadiwinoto   Another log
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   Adhidarma Hadiwinoto   MODEM-INFO: stuck...
28
      setInterval(() => {
b3b28d49f   Adhidarma Hadiwinoto   MODEM-INFO idle c...
29
30
31
32
          const deltaMs = new Date() - Math.max(
              modemInfo.startTime,
              Math.min(modemInfo.lastWriteTs, modemInfo.lastReadTs),
          );
714f147ac   Adhidarma Hadiwinoto   MODEM-INFO: logs ...
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   Adhidarma Hadiwinoto   MODEM-INFO: stuck...
36
37
              process.exit(1);
          }
a00767a73   Adhidarma Hadiwinoto   Another log
38
      }, intervalBeetwenCheckMs);
1f0a0f8db   Adhidarma Hadiwinoto   MODEM-INFO: more log
39
40
  } else {
      logger.info('Skip idle / stuck modem background check by config.disable_idle_check');
3522ae5bc   Adhidarma Hadiwinoto   MODEM-INFO: stuck...
41
  }
2e577f57b   Adhidarma Hadiwinoto   modem-info.js
42
  module.exports = modemInfo;