1

編集:

SMSを読み取るためにJavaでSMSアプリケーションを開発しています。SMSを送信するためにATコマンドをGSMモードに送信していますが、メッセージは正常に送信されていますが、モデムから応答がありません。ハイパーターミナルからATコマンドを送信すると、応答が返されます。正確な問題は何ですか?

            InputStream inputStream;
            OutputStream out;


            this.inputStream = serialPort.getInputStream();
            this.out = serialPort.getOutputStream();
            out.write(("AT"+"\r").getBytes());
            try {
                Thread.sleep(1500);
            } catch (InterruptedException ex) {
                Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
            }
            out.write(("AT+CMGF=1"+"\r").getBytes());
            try {
                Thread.sleep(1500);
            } catch (InterruptedException ex) {
                Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
            }
            out.write(("AT+CMGS=\""+"+91xxxxxxxxxx"+"\""+"\r").getBytes());
            try {
                Thread.sleep(1500);
            } catch (InterruptedException ex) {
                Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
            }
            out.write(("TEST "+cntrlZ).getBytes());
            try {
                Thread.sleep(1500);
            } catch (InterruptedException ex) {
                Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
            }


 //Im using SerialPortEventListener to  read the input from modem
int a = inputStream.available();
System.out.println(inputStream.available() + "  BYTES AVAILABLE ");
inputStream.read(readBuffer, 0, a);

また、各ATコマンドを送信した後に読み取ろうとしましたが、モデムからの応答として何も取得されませんでした。

4

2 に答える 2

2

RXTXで受信する問題

シリアルポートのフロー制御を設定した後、正常に動作します。

serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN |    SerialPort.FLOWCONTROL_RTSCTS_OUT);
于 2012-01-02T05:03:09.830 に答える
0

SMSlibに必要なすべてのライブラリがインストールされており、モデムがサポートされているモデムのリストに含まれていることを確認してください。モデムをサポートしている必要はありませんが、互換性の問題をすぐに解消できます。

また、モデムが正しく接続されているかどうかを確認する必要があります。ATコマンドを使用して、いくつかの操作を直接実行できます。

于 2011-12-20T10:12:27.190 に答える