To działający kod może się komuś przyda. Powodem nie działanie było błędne wprowadzenie bądź brak enter i CTRL+z
import java.io.*;
import java.util.*;
import gnu.io.*;
public class SMSsender {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString1 = "AT"; // komenda do sprawdzenia poprawnosci modulu gsm
static String messageString2 = "AT+CPIN=\"7078\""; // podanie kodu pin jesli jest
static String messageString3 = "AT+CMGF=1"; // ustawienia trybu tekstowego wiadomosci
static String messageString4 = "AT+CMGS=\"+4866467xxxx\""; // podanie numeru adresata wiadomosci
static String messageString5 = "TESTY2"; // tresc wysylanej wiadomosci
static SerialPort serialPort;
static OutputStream outputStream;
static InputStream inputStream;
static char enter = 13;
static char CTRLZ = 26;
public static void main(String[] args) throws InterruptedException {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM3")) {// poszukiwanie portu COM
try {
serialPort = (SerialPort)// otwarcie portu COM do ktorego przylaczony jest modul gsm
portId.open("COM3", 2000);
} catch (PortInUseException e) {System.out.println("err");}
try {
outputStream = serialPort.getOutputStream();//tworzenie wyjsciowego kanalu przesylowego
inputStream = serialPort.getInputStream();
} catch (IOException e) {e.printStackTrace();}
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE); // ustawienia parametrów portu COM (musza one się zgadzac z tymi w Windows
} catch (UnsupportedCommOperationException e) {e.printStackTrace();}
try {
outputStream.write((messageString1 + enter).getBytes());//Podanie komendy at do sprawdzenie czy modul dziala
Thread.sleep(100);
outputStream.flush();
outputStream.write((messageString2 + enter).getBytes()); // podanie kodu pin do modulu
Thread.sleep(100);
outputStream.flush();
outputStream.write((messageString3 + enter).getBytes()); // ustwienie trybu tekstowego wiedomosci
Thread.sleep(100);
outputStream.flush();
outputStream.write((messageString4 + enter).getBytes()); // podanie numeru telefony adresata wiadomosci
Thread.sleep(100);
outputStream.flush();
outputStream.write((messageString5 + CTRLZ).getBytes()); // podanie tresci wiadomosci i jej wyslanie
outputStream.flush();
Thread.sleep(300);
System.out.println("Wyslano wiadomosc");
Thread.sleep(3000);
outputStream.close();
serialPort.close();
System.out.println("Port COM zamkniety");
} catch (IOException e) {e.printStackTrace();}
}
}
}
}
}