Почему GSM модем не отвечает на программы, но отвечает на гипертерминал или док-свет?

Редакция:

Я разрабатываю SMS-приложение на Java для чтения SMS. Я отправляю AT-команды в режим GSM для отправки SMS,сообщения отправляются успешно, но я не получаю никакого ответа от модема. Если я отправляю AT-команды через Hyperterminal, я получаю ответ. Какая именно проблема?

            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, но я не получаю ничего в ответ от модема.

2 ответа

Решение

Проблемы с получением в RXTX

После настройки контроля потока для последовательного порта он работает нормально.

serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN |    SerialPort.FLOWCONTROL_RTSCTS_OUT);

Убедитесь, что вы установили все библиотеки, необходимые для SMSlib, и ваш модем находится в списке поддерживаемых модемов. Поддержка модема не требуется, но может устранить проблему совместимости сразу.

Также вы должны проверить, правильно ли подключен модем. Вы можете выполнить некоторые операции непосредственно с помощью AT-команд.

Другие вопросы по тегам