Estou desenvolvendo um sistema e preciso ler e gravar em uma porta COM, para isso procurei o material disponivel em java, e até encontrei o dito cujo.
Bom, passei a gastar meu precioso e pouquissimo tempo em estudá-lo afim de cumprir meu objetivo que era GRAVAR/LER uma porta COM, mas não consegui.
Sendo assim resolvi comprar a classe.
Se alguem estiver interessado, e o seginte:
1 - Tem de ser PURE JAVA. ( import javax.comm.*
2 - Quero o .java
3 - Expecificação:
a) ao Gravar public setGravaCom(String strGravar)
b) ao Ler public String getLerCom ()
o Interessado deverá me enviar um email com o PREÇO, Conta Bancaria, Banco, Agencia
custa-me crer que um código pra ler uma porta com seja Pure Java, mesmo porque o conceito é Windows.
Provavelmente, um código decente que manipula uma porta COM necessariamente teria que ser feito usando uma biblioteca específica do Windows, provavelmente uma DLL. Isso o impede de ser Pure Java.
Masssssss… nos tempos em que eu tinha modem, eu mais de uma vez executei o seguinte comando: C:>echo “ATZ” >>COM4
Você pode tentar coisas assim:
public static String portName = "COM4"; // troque pra sua COM ou use de argumento
public void write(String str) {
Runtime.getRuntime().exec("echo "" + str + "">>" + portName);
}
public String read() {
Runtime.getRuntime().exec("type " + portName);
}
Se funcionar, vc pode desenvolver um programa mais eficiente em cima disso. “Fake it until you make it… but MAKE IT”…
vixe
no linux é muito facil trabalhar com porta com!!!
vejamos, serial? compila o kernel com suporte a serial tty’s
e vc vai poder usar /dev/ttys0, /dev/ttys1 …
Ou então o dispositivo de serial direto.
ai no java basta abrir como um arquivo comum
RandomAccessFile f = new RandomAccessFile("/dev/ttys0", "rw");
Basta lembrar que qualquer seek vai gerar uma IOException.
Se for porta paralela basta saber qual o dispositivo que funciona ok.
a solucao do louds + duke te gera uma solucao pra windows e linux
mas vale lembrar q nao eh nada portavel
mas poxa… tratar a porta como arquivo eh show, nao?
tem a opção também de utilizar a API javacomm não??
se não me engano ela foi feita exatamente para isto
e as bibliotecas JNI para ela ja existem para windows, linux e solaris (não sei se para mais algum sistema ja esta disponivel )
bom, não cheguei a usar ela ainda, e estou meio ocupado no momento, mas qualquer coisa entra em contato comigo