From 04b85c0934d829e52c499fbc6701138fdf0b0030 Mon Sep 17 00:00:00 2001
From: Adhidarma Hadiwinoto <me@adhisimon.org>
Date: Fri, 2 Aug 2019 11:03:45 +0700
Subject: [PATCH] Register modem before init

---
 lib/modem.js | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/lib/modem.js b/lib/modem.js
index e382872..dec3460 100644
--- a/lib/modem.js
+++ b/lib/modem.js
@@ -39,13 +39,7 @@ const modemInfo = {
 
 let lastTs = new Date();
 
-const port = new SerialPort(config.modem.device, { baudRate: 115200 }, (err) => {
-    if (err) {
-        logger.warn(`Error opening modem. ${err}. Terminating modem ${config.modem.device}.`);
-        process.exit(1);
-    }
-});
-
+let port;
 
 const parserReadLine = new ParserReadline();
 
@@ -54,9 +48,6 @@ parserWaitForOK.on('data', () => {
     mutex.releaseLockWaitForCommand();
 });
 
-
-port.pipe(parserReadLine);
-
 function writeToPort(data) {
     return new Promise((resolve) => {
         port.write(data, (err, bytesWritten) => {
@@ -319,6 +310,16 @@ async function sendSMS(destination, msg) {
 }
 
 function init() {
+    port = new SerialPort(config.modem.device, { baudRate: 115200 }, (err) => {
+        if (err) {
+            logger.warn(`Error opening modem. ${err}. Terminating modem ${config.modem.device}.`);
+            process.exit(1);
+        }
+    });
+    port.pipe(parserReadLine);
+
+    registerModem(modemInfo);
+
     setInterval(() => {
         if ((new Date() - lastTs) > MAX_LAST_DATA_AGE_MS) {
             logger.warn(`No data for more than ${MAX_LAST_DATA_AGE_MS} ms. Modem might be unresponsive. Terminating modem ${config.modem.device}.`);
-- 
1.9.0