Почему 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 ответа
После настройки контроля потока для последовательного порта он работает нормально.
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | SerialPort.FLOWCONTROL_RTSCTS_OUT);
Убедитесь, что вы установили все библиотеки, необходимые для SMSlib, и ваш модем находится в списке поддерживаемых модемов. Поддержка модема не требуется, но может устранить проблему совместимости сразу.
Также вы должны проверить, правильно ли подключен модем. Вы можете выполнить некоторые операции непосредственно с помощью AT-команд.