通过java发送命令时AT错误代码38

时间:2018-02-22 11:00:26

标签: java serial-port gsm at-command modem

编辑:我尝试在桌面而不是笔记本电脑上运行它并且它有效吗?我不知道为什么它不能在笔记本电脑上工作,但任何想法都欢迎......

我一直在尝试使用java程序中的AT命令发送消息。当手动发送命令时,似乎工作正常,但是当通过java发送时,我得到错误代码38(网络无序)。但是,当我手动键入命令然后使用Java发送消息时,它仍然有效,所以我认为问题在于命令字符串。有什么建议吗?

        CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier("COM3");
        SerialPort port = (SerialPort) portId.open("Application", 5000);
        char ctrlz = 26;
        String creturn = "\r";
        port.setSerialPortParams(115200, SerialPort.DATABITS_8, 
        SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
        port.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);

        OutputStream outputStream = port.getOutputStream();
        outputStream.flush();
        String command = "\rAT+CMGS=\"[PhoneNumber]\"" + creturn;
        String message = "This is a java message test" + creturn;
        String end = Character.toString(ctrlz);
        System.out.println(command);
        System.out.println(message);
        Thread.sleep(100);
        outputStream.write(command.getBytes());
        Thread.sleep(1000);
        outputStream.flush();
        outputStream.write(message.getBytes());
        Thread.sleep(1000);
        outputStream.write(end.getBytes());
        Thread.sleep(1000);
        outputStream.flush();
        Thread.sleep(1000);
        port.close();
        outputStream.close();

0 个答案:

没有答案