PDA

View Full Version : اتصال به پورت Com4 توسط جاوا.



mahmoudjoon
پنج شنبه 08 فروردین 1387, 13:35 عصر
من می خوام با جاوا به پورت com4 وصل بشم و دستورات AT رو اجرا کنم . کسی می تونه کمکم کنه؟البته خودم جستجو کردم و نسخه ویندوز package commapi رو از اینترنت گرفتم اما نتونستم باهاش کار کنم :عصبانی++:.فکر کنم علتش این باشه که اصل این package برای unix و linux هست.
اگه کسی package بهتری می شناسه یا بلده چه جوری میشه وصل شد ممنون می شم کمکم کنه.

handinux
پنج شنبه 08 فروردین 1387, 16:12 عصر
دقیقا همان چیزی را که لازم است دانلود کردید! پکیج های لینوکس اسم دیگری دارند که یادم رفته.میتوانید فایل Jar را که دانلود کردید به عنوان Library در Netbeans وارد کرده و استفاده کنید

mahmoudjoon
پنج شنبه 08 فروردین 1387, 16:41 عصر
من از این package استفاده کردم و حتی کدی رو که برای تست کردنش استفاده می کنم از اینترنت گرفتم.اما موقع اجرا برنامه هیچ اتفاق خاصی نمی افته.
این کد من هست و gsm modem هم روی port com4 نصب هست.
import javax.comm.*;
import java.io.*;
import java.util.*;

class test
implements Runnable, SerialPortEventListener
{
public void run()
{}

static Enumeration portList;
static CommPortIdentifier portId;
static String dest = "09173052904";
static String messageString = "Hello";
InputStream inputStream;

static SerialPort serialPort;
static OutputStream outputStream;

public void serialEvent(SerialPortEvent event)
{
switch (event.getEventType())
{
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
{

BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
try
{

while ( (line = reader.readLine()) != null)
{
System.out.println(line);
}
}
catch (IOException e)
{
System.err.println("Error while reading Port " + e);
}
break;

}
} //switch
}

public test(SerialPort serial)
{
try
{
inputStream = serial.getInputStream();
try
{
serial.addEventListener(this);
}
catch (TooManyListenersException e)
{
System.out.println("Exception in Adding Listener" + e);
}
serial.notifyOnDataAvailable(true);

}
catch (Exception ex)
{
System.out.println("Exception in getting InputStream" + ex);
}

}

public static void main(String[] args)
{
// String line1="AT+CMGF=1\r\n";
// String line2="AT+CMGS=\""+ dest+"\"\r\n";
// String line3=messageString+"\r\n";
// String line4="\u001A";

String line1 = "AT+CMGF=1\r\n";
String line2 = "AT+CMGS=" + dest + "\r\n";
String line3 = messageString + "^Z\r\n";
// String line4 = "\u001A";
portList = CommPortIdentifier.getPortIdentifiers();
System.out.println(portList);
/*try{
portId = CommPortIdentifier.getPortIdentifier("COM5");
}catch(Exception e){
e.printStackTrace();
}*/
while (portList.hasMoreElements())
{
System.out.println("Port");
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
System.out.println("SMS Sending........"+portId.getName());
if ( portId.getName().equals("COM4"))
{
System.out.println("SMS Sending....Port Found");
try
{
serialPort = (SerialPort) portId.open("SimpleWriteApp", 2000);
SimpleWrite wr = new SimpleWrite(serialPort);

}
catch (PortInUseException e)
{
System.out.println("Port In Use " + e);
}
try
{
outputStream = serialPort.getOutputStream();
}
catch (IOException e)
{
System.out.println("Error writing to output stream " + e);
}
try
{
serialPort.setSerialPortParams(
2400,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
}
catch (UnsupportedCommOperationException e)
{
}
try
{
outputStream.write(line1.getBytes());
outputStream.write(line2.getBytes());
outputStream.write(line3.getBytes());
outputStream.flush();


}
catch (IOException e)
{
System.out.println("Error writing message " + e);
}


}
}
}
}

public static void showText(String Text)
{
System.out.println(Text);
}
}


ببینید متوجه مشکل می شید؟؟؟