从serialport获取返回变量

时间:2017-11-04 13:01:14

标签: javascript at-command node-serialport angular1.6

有了这个功能,我得到了空的回报

帮我写出正确的功能

it('Should fail if ...', done => {
    let ret = MyModule.myFunction(myArg);
    expect(ret).to.throw();
    done();
});

谢谢

修改

完整代码作为评论中的请求

 $scope.result= sendread("AT+GMR") //get value datas.toString() or Not OK
     console.log($scope.result) // undefined 

    function sendread(input){
    port.write(input+'\r\n')
    port.drain(() => {
     port.once('data',(datas) =>{
         if (datas.toString().match(/"OK"/g)) {
            return 'Not OK'
           }
           return datas.toString() //652a09gg.Q2406B 1489876 060706 17:19  OK
     })
     })
     }

其他详细信息
$ scope.result在html上打印为空,$ scope.result在控制台上打印undefined,console.log(datas.toString())打印正确的结果“652a09gg.Q2406B 1489876 060706 17:19”

1 个答案:

答案 0 :(得分:1)

我无法解释但现在正在工作

感谢

port.on('open', function() {

  sendread("AT+GMR", function(res) {
    $scope.result = res
    $scope.$apply();
  })

})

function sendread(input, cb) {
  port.write(input + '\r\n')
  port.drain(() => {
    port.once('data', (data) => {
      if (data.toString('utf8')!=="OK") {
        cb("not OK");
      }
      cb(data.toString('utf8'));
    })
  })
}