estou tentando ler uma porta serial de uma balanca rodoviaria, utilizando java,
mas nao consigo, utilizei o virtualSerialPort para ver o que trafegava na rede,
entrei em contato com a fabrica, mas eles so tem exemplos em dephi e VB,
e fica meio dificil de traduzir, jah que o java utiliza maquina virtual, e os exemplos
chamam funcoes direto do sistema operacional.
alguem podeira me passar os passos resumidos de como capturar as informacoes ?
isso vai ser interessante… vou acompanhar e depois tentar fazer algo. eu ja trabalhei com serial mais foi em delphi.
N
natanSPR
descobri umas coisas a mais,
consegui fazer a comunicacao com a balanca atravez de uma dll, fornecida pela fabricante da mesma, utilizando a biblioteca JNA, onde eh simples fazer, mas nao eh o interessante, pois provavelmente nao seja multiplataforma,
agora estou lendo este post http://www.viamais.net/blog/index.php?s=rxtx , se conseguir posto mais coisas.
I
ivo_costa
A
anderson.brasil
importcom.sun.jna.Native;importcom.sun.jna.win32.StdCallLibrary;publicclassJNATeste{publicstaticvoidmain(String[]args){JNATesteh=newJNATeste();// carregando a .dllUser32us=(User32)Native.loadLibrary(User32.class);us.MessageBoxA(0,"MSG","Titulo",0);}// parte principal. Voce deve conhecer a biblioteca, seus métodos, o conjunto tipo/parametro e retornointerfaceUser32extendsStdCallLibrary{publicintMessageBoxA(inthwnd,Stringtext,Stringcaption,inttype);}}
É só tomar cuidado com a localização da biblioteca (sua .dll), a conversão de tipos.
Ou então tentar usar JNI, esta fico te devendo.
importcom.sun.jna.Native;importjavax.swing.JOptionPane;publicclassMain{publicstaticvoidmain(String[]args){//constanteLB_FALHA,queequivalea2elevadoa32(0xFFFFFFFF)(4.294967295E9).//aquicarregaabibliotacaparaaclasseMylibComp,dadllcolocadanodiscoCMyLibCompm=(MyLibComp)Native.loadLibrary("c:\\Balanca.dll",MyLibComp.class);//usandoosmetodos,JOptionPane.showMessageDialog(null,m.lbCapturarPeso(1),"ler peso com 1",JOptionPane.INFORMATION_MESSAGE);JOptionPane.showMessageDialog(null,m.lbReiniciarBalanca(1),"reiniciar bal",JOptionPane.INFORMATION_MESSAGE);JOptionPane.showMessageDialog(null,m.lbZerarPeso(1),"zerar peso com 1",JOptionPane.INFORMATION_MESSAGE);}}
funcionou, so tenho q tirar um tempo pra testar se funciona em outros SO, o que provavelmente nao,
e a fabrica nao relata nada sobre outras plataformas,
A
anderson.brasil
Tenta usar algo do tipo:
// identifica o sistema operacionalStringsistemaOperacional=System.getProperty("os.name");if(sistemaOperacional.contains("Windows")){System.out.println(sistemaOperacional);System.out.println("Carregando biblioteca para Windows (.dll): "+sistemaOperacional);//... sua logica aqui//... sua logica aqui}elseif(sistemaOperacional.contains("Linux")){System.out.println(sistemaOperacional);System.out.println("Carregando biblioteca para Linux (.so): "+sistemaOperacional);//... sua logica aqui//... sua logica aqui}// fim de else}// fim de main
Windows, Linux, Mac.
Somente testei com Windows, nunca com outros SO.
Vale a tentativa.
N
natanSPR
voce tah certo Anderson, vai funcionar,
vale, com ceteza vale a pena, e se possivel vou utilizar como recomendação linux, mas antes vou ter que ver com a fabrica =(, se pelo menos passar o codigo, ai talvez recompilasse para linux, mas vamos aguardar…
S
SALVADORAUGUSTO
Estou tentando fazer a comunicação com as balanças rodoviárias da Toledo, e estou com o mesmo problema.
Alguém poderia me informar ou me passar um link com as dll’s da balança pra poder fazer minhas classes??