zabsalahid / serialport-gsm

SerialPort-GSM is a simplified plugin for communicating with gsm modems. (Primarily for sms) (Focused in PDU mode)
MIT License
88 stars 46 forks source link

Error callback(undefined, new Error(`timeout: \n${JSON.stringify(item)}`)) #137

Open nedsion opened 1 month ago

nedsion commented 1 month ago
Server is running on port 3000
Modem Write: AT+CMGF=0
Modem Received: AT+CMGF=0
Activate Message Processing for: AT+CMGF=0
Modem Received:
Modem Received: +CME ERROR: 3517
Modem Write: ATZ
C:\Users\pc\Desktop\test\node_modules\serialport-gsm\lib\functions\modem.js:1004
      callback(undefined, new Error(`timeout: \n${JSON.stringify(item)}`))
                          ^

Error: timeout:
{"_events":{},"_eventsCount":1,"command":"AT+CMGF=0","add_time":"2024-05-21T19:12:30.824Z","id":2,"timeout":30000,"inProgress":true,"execute_time":"2024-05-21T19:12:30.825Z"}
    at EventEmitter.<anonymous> (C:\Users\pc\Desktop\test\node_modules\serialport-gsm\lib\functions\modem.js:1004:27)
    at EventEmitter.emit (node:events:519:28)
    at Timeout._onTimeout (C:\Users\pc\Desktop\test\node_modules\serialport-gsm\lib\functions\modem.js:1088:14)
    at listOnTimeout (node:internal/timers:573:17)
    at process.processTimers (node:internal/timers:514:7)

Node.js v20.13.1

my code:

const modem = serialportgsm.Modem();
  let options = {
    baudRate: 9600,
    dataBits: 8,
    stopBits: 1,
    parity: "none",
    rtscts: false,
    xon: false,
    xoff: false,
    xany: false,
    autoDeleteOnReceive: true,
    enableConcatenation: true,
    incomingCallIndication: true,
    incomingSMSIndication: true,
    pin: "",
    customInitCommand: "",
    cnmiCommand: "AT+CNMI=2,1,0,2,1",
    logger: console,
  };

  modem.open(req.body.portPath, options, {});

  modem.on("open", (data, err) => {
    if (err) {
      res.status(500).send(err);
    }
    // setModemMode
    modem.setModemMode("PDU");
    console.log("Modem is open", data);

    // item.on('timeout', () => {
    //   callback(undefined, new Error(`timeout: \n${JSON.stringify(item)}`))
    // })

    // initialize modem and catch errors
    modem.initializeModem((data, err) => {
      if (err) {
        res.status(500).send(err);
        }
        console.log("Modem is initialized", data);

    });

  });