From e49a560323ca9f0a041c78634e324019cc164f0c Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Wed, 25 Sep 2019 20:35:36 +0700 Subject: [PATCH] Prototype of bootstrap module --- lib/bootstrap.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ lib/modem-commands/index.js | 1 + lib/modem.js | 6 +++++- 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 lib/bootstrap.js diff --git a/lib/bootstrap.js b/lib/bootstrap.js new file mode 100644 index 0000000..045e531 --- /dev/null +++ b/lib/bootstrap.js @@ -0,0 +1,44 @@ +/** + * Modul modem bootstrap + * @module bootstrap + * @since 2019-09-25 + */ + +const SerialPort = require('serialport'); + +const config = require('komodo-sdk/config'); +const logger = require('komodo-sdk/logger'); + +const parsers = require('./serialport-parsers'); +const modemCommands = require('./modem-commands'); +const modemInfo = require('./modem-info'); + +const port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (err) => { + if (err) { + logger.warn(`Error opening modem. ${err}. Terminating modem ${config.modem.device}.`); + process.exit(1); + } + + await modemCommands.writeToPortAndWaitForOkOrError(`${modemCommands.CTRLZ}AT&FE0\r`); + await modemCommands.initATCommands(); + await modemCommands.queryManufacturer(); + await modemCommands.queryModel(); + await modemCommands.queryIMEIAndIMSI(); + await modemCommands.queryCOPSAndSignalQuality(); + + logger.info('Modem state', modemInfo); + + setInterval(async () => { + await modemCommands.initATCommands(); + await modemCommands.queryManufacturer(); + await modemCommands.queryModel(); + await modemCommands.queryIMEIAndIMSI(); + await modemCommands.queryCOPSAndSignalQuality(); + logger.info('Modem state', modemInfo); + }, config.interval_beetwen_signal_strength_ms || 30000); +}); + +global.MODEM_PORT = port; +parsers.setPort(port); +modemCommands.setPort(port); +port.pipe(parsers.parserReadline); diff --git a/lib/modem-commands/index.js b/lib/modem-commands/index.js index d34dc58..6daa717 100644 --- a/lib/modem-commands/index.js +++ b/lib/modem-commands/index.js @@ -5,6 +5,7 @@ const MUTEX_SUBCOMMAND = 'SUBCOMMAND'; exports.MUTEX_SUBCOMMAND = MUTEX_SUBCOMMAND; const CTRLZ = '\u001a'; +exports.CTRLZ = CTRLZ; const pdu = require('node-pdu'); const uuidv1 = require('uuid/v1'); diff --git a/lib/modem.js b/lib/modem.js index 31a66bc..d79ecaf 100644 --- a/lib/modem.js +++ b/lib/modem.js @@ -1,4 +1,8 @@ -'use strict'; +/** + * Modem module. + * @module + * @deprecated going to move to module:bootstrap + */ const DEFAULT_SLEEP_AFTER_SEND_SMS_MS = 2000; const INTERVAL_BEETWEN_SIGNAL_STRENGTH_MS = 30000; -- 1.9.0