Pessoal estou com um exemplo aqui
[code]import gnu.io.;
import java.io.;
public class ListPortClass {
public static void main(String[] s) {
try {
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM1");
if (portIdentifier.isCurrentlyOwned()) {
System.out.println("Port in use!");
} else {
System.out.println(portIdentifier.getName());
SerialPort serialPort = (SerialPort) portIdentifier.open("ListPortClass", 300);
int b = serialPort.getBaudRate();
System.out.println(Integer.toString(b));
serialPort.setSerialPortParams(300, SerialPort.DATABITS_8,SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
OutputStream mOutputToPort = serialPort.getOutputStream();
InputStream mInputFromPort = serialPort.getInputStream();
String mValue = "AT\r";
System.out.println("beginning to Write . \r\n");
mOutputToPort.write(mValue.getBytes());
System.out.println("AT Command Written to Port. \r\n");
mOutputToPort.flush();
System.out.println("Waiting for Reply \r\n");
Thread.sleep(500);
byte mBytesIn[] = new byte[20];
mInputFromPort.read(mBytesIn);
mInputFromPort.read(mBytesIn);
String value = new String(mBytesIn);
System.out.println("Response from Serial Device: " + value);
mOutputToPort.close();
mInputFromPort.close();
}
} catch (Exception ex) {
System.out.println("Exception : " + ex.getMessage());
}
}
}[/code]
ja importei o jar e joguei as dlss no system 32
alguem sabe como me ajudar?
na verdade só preciso ler os dados de umas das portas COM, qualquer classe me ajudaria, eu tentei com a serialcomm, mais parece q ela nao funciona no win7 64bits
olha só o erro da rxtxcomm
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at ListPortClass.main(ListPortClass.java:8)
e esse é o erro da serialcomm
STATUSjavax.comm.NoSuchPortException
alguem sabe como resolver?
só funciona em windows 32 bits?
valew pessoal
como eu respondi no topico anterios que voce abriu, nao funciona em windows 64 bits, se o processador for intel, e foi descontinuado essa biblioteca…
recomendo vc usar o windows 32 bits ou arrumar um pc com amd para funcionar o 64 bits
[code]import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class TwoWaySerialComm
{
public TwoWaySerialComm()
{
super();
}
void connect ( String portName ) throws Exception
{
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if ( portIdentifier.isCurrentlyOwned() )
{
System.out.println("Error: Port is currently in use");
}
else
{
CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);
if ( commPort instanceof SerialPort )
{
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
(new Thread(new SerialReader(in))).start();
(new Thread(new SerialWriter(out))).start();
}
else
{
System.out.println("Error: Only serial ports are handled by this example.");
}
}
}
/** */
public static class SerialReader implements Runnable
{
InputStream in;
public SerialReader ( InputStream in )
{
this.in = in;
}
public void run ()
{
byte[] buffer = new byte[1024];
int len = -1;
try
{
while ( ( len = this.in.read(buffer)) > -1 )
{
System.out.print(new String(buffer,0,len));
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}
/** */
public static class SerialWriter implements Runnable
{
OutputStream out;
public SerialWriter ( OutputStream out )
{
this.out = out;
}
public void run ()
{
try
{
int c = 0;
while ( ( c = System.in.read()) > -1 )
{
this.out.write(c);
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}
public static void main ( String[] args )
{
try
{
(new TwoWaySerialComm()).connect("COM3");
}
catch ( Exception e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}[/code]
o erro que deu referente a porta foi que nao foi encontrado… verifica quais portas estao disponivel na maquina e seta no codigo…
entao cara, valew de novo, é quem eu te falei eu tenho um desktop com amd phenom x4, e o intel com i5 em nenhum dos 2 funciona da o mesmo erro, eu vou pegar uma máquina e colocar 32 bits pra testar, valew mesmo.
Só mais uma pergunda interfere ser Windows 7 32 ou o XP? qualquer um daria?
na época que eu usava, eu tive muito problema por ser processador intel, e no amd funcionava perfeitamente… vou ver se acho a classe que eu fiz e posto aqui para vc ter como exemplo, em ambiente 32bits funciona perfeitamente, mais é aquele problema a biblioteca foi descontinuada, e em java ta dificil achar algo bom para subistituir… eu tinha chegado a pesquisar ate outras linguagens para fazer isso e o C++ é o que se enquadra melhor para fazer essa tarefa…
daki apouco eu posto um codigo para vc ver e testar
cara valew
estou estando o xp em um note aqui e vou criar uma vm no meu desktop pra ver, valew mesmo em
cara no xp funcionou, vou converter oque ele esta trazendo só pra calibrar o aparelho valew mesmo em
resolvido mesmo valew pela ajuda