Dans la continuité de l'histoire d'hier
, j'ai fait une petite recherche sur le thème de l'envoi de messages depuis un modem 3g. Je l'ai essayé avec un modem MTS.
Après avoir connecté et installé le programme, deux ports COM ont été détectés. MobileConnect - Application Interface (COM34) MobileConnect - PC UI Interface (COM33) Pour envoyer des messages, vous deviez vous connecter au port COM33.
Code J'ai reçu
package ComKEB; import jssc.*; import java.util.Scanner; /** * Created by ipolma on 8/15/2014. */ public class ComKEB { public static void main(String[] args) { String[] retPorts = SerialPortList.getPortNames(); //for (String port: retPorts){System.out.println(port);} SerialPort serialPort = new SerialPort(retPorts[3]);//"COM4"); указываем второй порт System.out.println(serialPort.getPortName()); if (openSerialPort(serialPort)) { System.out.println("Open"); System.out.println("For close type: \nclose"); } else System.out.println("Not open"); try { Scanner scanner = new Scanner(System.in); String in; serialPort.writeBytes("AT+cmgf=1\r".getBytes()); serialPort.writeBytes("at+cmgs=\"+7926*******\"\r".getBytes()); serialPort.writeBytes("qwweqwe\032".getBytes());//calling ctrl+z while (true) { Thread.sleep(1000); if (scanner.hasNext()) { if ("close".equals((in=scanner.nextLine()))) { if (serialPort.closePort()) System.out.println(serialPort.getPortName() +" close successfull;"); System.exit(0); }else{ } } } }catch(Exception e){e.printStackTrace();} } private static boolean openSerialPort(SerialPort serialPort) { try { //Открываем порт if (serialPort.isOpened()) serialPort.closePort(); //Здесь бывает ситуация Busy, которую не обработаешь - только если ожидать serialPort.openPort(); //Выставляем параметры serialPort.setParams(SerialPort.BAUDRATE_9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); //Включаем аппаратное управление потоком serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE); PortReader portReader = new PortReader(serialPort); serialPort.addEventListener(portReader, SerialPort.MASK_RXCHAR); return true; }catch(Exception e){ e.printStackTrace(); return false; } } private static class PortReader implements SerialPortEventListener { SerialPort serialPort; public PortReader(SerialPort serialPort) { this.serialPort = serialPort; } public void serialEvent(SerialPortEvent event) { if (event.isRXCHAR() && event.getEventValue() > 0) { try { //Получаем ответ от устройства, обрабатываем данные и т.д. byte[] data = serialPort.readBytes(event.getEventValue()); for (byte b:data) { System.out.println(b); } } catch (SerialPortException ex) { System.out.println(ex); } } } } }
un
COM33 Open For close type: close OK > +CMGS: 6 OK ^RSSI: 17 close COM33 close successfull;
SMS avec le texte
qwweqwe . C’est vrai, je n’ai encore rien pu lire. Mais jusqu'ici tout va bien :) http://stackoverflow.com/questions/9393097/receive-and-sending-sms-through-gsm-modem http://stackoverflow.com/questions/9257302/sending-sms-at- commandes-vers-3g-modem-using-php http://habrahabr.ru/post/133085/ http://serj.kz/content/3
GO TO FULL VERSION