使用Node.JS SerialPort发送SMS

时间:2014-06-26 16:35:09

标签: javascript node.js serial-port sms

我试图使用enfora调制解调器为此目的做标题所说的内容。但是,即使它在minicom中正常工作,它也无法在我的node.js应用程序中工作。 这是我使用的代码:

serialPort.write('AT+CMGF=1\r');
serialPort.write('AT+CMGS="02122323232"\r');
serialPort.write('mensaje'+String.fromCharCode(26)+'\r');

我还尝试使用以下选项替换 String.fromCharCode(26)。没有一个有效。

'\^z'
'^z'
'^(z)'
'\^(z)'
'<ctrl+Z>'
'<ctrl-Z>'
'\#'
'#'
'\u001A'
Buffer([0x1A])

我真诚地相信这是代码中有问题的部分,因为我从前两行得到了一条OK消息,但第三行没有返回任何内容,因为它没有得到处理。

对此有任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

    setTimeout(function(){
        serialPort.write('AT+CMGF=1\r')
        setTimeout(function(){
            serialPort.write('AT+CMGS=\"02142323232\"\r')
            setTimeout(function(){
                serialPort.write('test sms\r')
                setTimeout(function(){
                    serialPort.write('\x1A')
                }, 100);
            }, 100);
         }, 100);
     }, 100);

答案 1 :(得分:1)

假设0x1a是您需要发送的字节,您只需要正确地将其发送到缓冲区。你不能简单地连接。如果你这样做,你最终会得到字符串mensaje\u001a,而不是0x1a的字符。

试试这个:

serialPort.write('mensaje');
serialPort.write(new Buffer[0x1a]);
serialPort.write('\r');