JavaRush /Java Blog /Random-KO /3g 모뎀의 SMS
Izhak
레벨 22
Москва

3g 모뎀의 SMS

Random-KO 그룹에 게시되었습니다
어제 이야기 에 이어 3g 모뎀에서 메시지를 보내는 주제에 대해 약간의 조사를 했습니다. MTS 모뎀으로 시도해 보았는데, 3g 모뎀의 SMS - 1 프로그램을 연결하고 설치한 후 com 포트 2개가 감지되었습니다. MobileConnect - 애플리케이션 인터페이스(COM34) MobileConnect - PC UI 인터페이스(COM33) 메시지를 보내려면 COM33 포트에 연결해야 했습니다. 코드 qwweqwe 라는 텍스트가 포함된 SMS를 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); } } } } } 받았습니다 . 사실, 나는 아직 아무것도 읽을 수 없었습니다. 하지만 지금까지는 아주 좋습니다 :) http://stackoverflow.com/questions/9393097/receive-and-sending-sms-through-gsm-modem http://stackoverflow.com/questions/9257302/sending-sms-at- 명령-3g-모뎀-사용-php http://habrahabr.ru/post/133085/ http://serj.kz/content/3 COM33 Open For close type: close OK > +CMGS: 6 OK ^RSSI: 17 close COM33 close successfull;
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION