【问题标题】:Node js Serial Port Get Response `ERROR` or `OK` sms Modem节点js串口获取响应`ERROR`或`OK`短信调制解调器
【发布时间】:2018-09-07 09:39:05
【问题描述】:

我正在使用 Wavecom 8 端口 SMS 调制解调器 我的问题是我想检查在编写 AT 命令时是否有错误(例如没有负载平衡或没有插入 SIM 卡)然后它会检查另一个可用端口以重新发送 SMS。

我只想捕获 ERROR 或 OK 输出

我用过这个功能

function sendSync(port, src) {
  return new Promise((resolve, reject) => {
      port.write(src,(err)=>{
        if(err){
          reject(err)
        }
        port.drain()
      });
      port.once('data', (data) => {
        console.log('###############################',data.toString())
          resolve(data.toString());
      });

      port.once('error', (err) => {
        console.log('************************')
          reject(err);
      });
  });
}

Data Recieved from Port

【问题讨论】:

  • 你的函数看起来很正确。也许问题在于sendSync() 的调用方式?
  • 那个函数也输出AT命令也确认OK或ERROR我只想要OK或ERROR
  • 在调用者中不是解释的问题吗?如果返回的 Promise 确定了它的成功路径,那么这就是“OK”。如果它解决了它的错误路径,那就是“错误”。

标签: node.js promise sms modem node-serialport


【解决方案1】:

我现在使用的是串口 5.0

我通过创建这个函数来解决我的问题

function writeSync(serial,cmd){
  return new Promise(function(resolve,reject){
    serial.write(cmd)
    serial.drain()
    serial.once('data',(data)=>{
      var arr = data.toString()
      var str = arr.split(/\r?\n/);
      //console.log(str[1])
      resolve(str[1])
    })
  })
}

【讨论】:

    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    相关资源
    最近更新 更多