Porta Serial & Java 12 Jan 2007 07:23

Escrevendo na Porta Serial com Java

Há algumas semanas, no meu emprego, precisei desenvolver um programa que interagisse com um equipamento, tudo pela porta serial. Fui pesquisar na internet, e ouvi falar sobre a Java COMM que permite a escrita. Levei algumas horas para entender o funcionamento dela, o que tive mais problemas realmente, é de como montar a estrutura da aplicação para poder fazer funcionar.

Em primeiro lugar, o pacote para windows acompanha 3 arquivos: javax.comm.properties, win32com.dll e a comm.jar. Aí está a maior dificuldade. Mas como já tive muitos problemas com isso, vou direto ao ponto certo. O supondo que a variável $JDK se ja o diretório onde está instalado sua JDK e $JRE onde está sua JRE, siga os seguintes passos:

Arquivo win32comm.dll => $JDK/bin, $JDK/jre/bin, $JRE/bin

Arquivo javax.comm.properties => $JDK/lib, $JDK/jre/lib, $JRE/lib

Quanto à comm.jar, é só colocá-la no classpath de sua aplicação. no site do GUJ tem uma ótimo artigo sobre como escrever na porta serial usando a Java Comm que serviu como base para meus estudos.

Se alguém precisar de alguma ajuda na parte programacional dessa API, pode me contatar que tranquilamente responderei as questões.

Mas voltando ao assunto do blog, comecei a me interessar sobre como funcionava as portas de comunicação do micro. Pesquisei com amigos da área, e descobri que a porta serial se comunica através de um tipo de Código Morse, ou seja, de x em x tempos, ela dá o pulso com Y volts, ou com 0 volts. Assim, a parte que estará lendo, deverá estar escutando na mesma velocidade da escrita. É mandado um pulos de 0 volts, entao o leitor sabe que este é o START BIT, informando que a escrita irá começar. Depois, sção escritos 8 valores (correspondem aos 8 bits) que a parte que estará lendo monta o byte completo depois do STOP BIT de fim do byte. Claro que isso tudo acontece numa velocidade na casa dos microsegundos.

Mas percebi que seria muito complicado fazer uma placa para entender essas leituras. Foi então que fui pesquisar sobre a porta paralela, que como vi na revista Eletrônica Total A porta paralela tem 8 pinos que formam um byte completo. O byte é decifrado testando se há tensão nos pinos. Se houver, entao seria o BIT 1, caso contrário, seria o BIT 0. Com isso, para escrever o valor 10 na porta paralela, seria necessário escrever: 0 0 0 0 1 0 1 0 = 10.

Compare Preços de: placa, leds, porta serial, java, eletrônica

Adicione ao del.icio.us

69 Respostas para “Escrevendo na Porta Serial com Java”

  1. em 26 Feb 2007 as 10:35 am 1.Thomas disse …

    Olá colega Rafael tudo bom? Ví seu artigo sobre a Java Comm, estou também precisando usar essa API vc tem algum exemplo como realizar “conversas” simples entre 2 pc’s usando ela? Se vc pode me ajudar eu agradeço desde já a atenção. Abraços, parabens pela fonte de informações

  2. em 26 Feb 2007 as 5:56 pm 2.Rafael Quines disse …

    Kra, ali mostrei um exemplo para fazer a escrita na porta serial. Já conseguiu fazer isso? no tutorial do GUJ (AQUI) tem exataente o que vc precisa. Seria só adaptar o código para o seu objetivo..

    Qualquer dúvida, é só postar..

    flw

  3. em 25 Mar 2007 as 11:03 am 3.Rafael Quines » Módulo GPS - O que é? disse …

    […] Um bom experiemento, para quem tiver acesso a um módulo GPS, é ligar na porta serial do micro a abrir o HyperTerminal para ver as informações passadas. Esteja certo que o padrão utilizado no módulo é RS232, caso contrátio, a porta serial do computador não conseguirá decifrar as mensagens. Se desejar trabalhar com a porta serial num programa Java, segue o tutorial para isso. Se quiser ler a documentação do módulo ET102, clique aqui. […]

  4. em 27 Mar 2007 as 8:58 am 4.Eduardo Lazarini disse …

    Olá Rafael, tudo bem? estou talvez com o mesmo problema que você teve, não consigo comunicar meu programa Java com uma porta serial no win98, não consigo faze-lo comunicar-se com outra maquina. Veja se você tem alguma dica para me ajudar. Obrigado mesmo

  5. em 27 Mar 2007 as 9:11 am 5.Rafael Quines disse …

    Certo, mas poderia ser mais específico? Tá dando que erro??? Certifique-se que a dll esteja nas 3 pastas: $JDK/bin, $JDK/jre/bin, $JRE/bin; e a comm.jar e o javax.comm.properties estejasm em $JDK/lib, $JDK/jre/lib, $JRE/lib.

    $JDK -> Direório onde está instalado seu JDK
    $JRE -> Direório onde está instalado seu JRE

    manda o erro ae pra mim analisar.. flw

  6. em 27 Mar 2007 as 9:28 am 6.Eduardo Lazarini disse …

    Rafael, desde já muito obrigado por se prontificar para ajudar. Eu realmente não coloco nas 3 pastas, vou fazer este teste, obrigado. Para ser mais específico, quando eu compilo não da erra, porém ele não identifica a porta serial, diz que não existe. Vamos fazer assim, o meu e-mail é dulazarini@gmail.com, se você puder me mande um e-mail que vou te passando o que acontece e quando você puder, você me responde. Se puder passe também seu msn. Mais uma vez muito obrigado mesmo pela ajuda. Abraço

  7. em 27 Mar 2007 as 10:34 am 7.Rafael Quines disse …

    Te liga, de repente é importante, a primeira coisa a fazer é usar um comando para listar as portas disponíveis no pc. isso é muito fácil fazer.. segue:

    Enumeration listaPortas = CommPortIdentifier.getPortIdentifiers();
    while (listaPortas.hasMoreElements()) {
    CommPortIdentifier ips = (CommPortIdentifier)listaPortas.nextElement();
    System.out.println(”Porta encontrada: ” + ips.getName());
    }

    faça isso pra ver se roda tranquilo…

  8. em 27 Mar 2007 as 10:38 am 8.Eduardo Lazarini disse …

    Como você me perguntou:
    Win98

    C:\j2sdk1.4.2_02\bin
    ” ” ” ” “\lib
    ” ” ” ” “\JRE

    Win XP

    C:\sun\appserver\jdk\bin
    ” ” ” ” \lib
    ” ” ” \jre\bin
    ” ” ” ” \lib

    Quando eu compilo não dá erro, porém não reconhece a porta serial, não comunicam-se, diz que não existe porta.

    Mais uma vez obrigado

    Abraços

  9. em 27 Mar 2007 as 10:39 am 9.Eduardo Lazarini disse …

    agora que vi sua resposta… mais uma vez obrigado, vou dar uma olhada peraí ehehehe…

  10. em 27 Mar 2007 as 11:09 am 10.Eduardo Lazarini disse …

    Respondi no seu e-mail já. Parabéns pelo blog !!

  11. em 27 Mar 2007 as 3:29 pm 11.Rafael Quines disse …

    Kra, poderia me mostrar seu código?? Se tá dando NullPointerException, deve ser erro na configuração. de repente vc pode estar colocando a dll no JDK errado, só tem 1 JDK instalado na máquina???

    Ah, uma coisa importante, nunca fiz funcionar em WIN98. só xp… Só para deixar claro…

    flw

  12. em 28 Mar 2007 as 12:28 pm 12.Eduardo Lazarini disse …

    Parceiro, funcionou perfeito, como vc orientou… Olha, muito obrigado mesmo, suas dicas e conselhos foram essenciais e ter encontrado esse seu blog foi o caminho de tudo ehhehe… Estou rodando o programa em win98… pode ser então que funcione da mesma maneira para as 2 plataformas… mais uma vez muito obrigado, com certeza vamos entregar nossa projeto e será um sucesso.

  13. em 28 Mar 2007 as 12:44 pm 13.Rafael Quines disse …

    Hehe. blz… Q bom que funcionou legal. Em XP é a mesma coisa. Se Win98 funcionou legal, já eraz. 98 pra cima é tranquilo. o importante é a configuração do ambiente… Dlls, jars, etc..
    Flww

  14. em 31 Mar 2007 as 6:01 am 14.Eduardo Lazarini disse …

    Conseguimos compilar (javac) o programa no win XP, porem não conseguimos rodar o programa (java), como devo agir? Deve estar faltando apenas um detalhe…

    Mais uma vez muitissimo obrigadooooooooo

  15. em 31 Mar 2007 as 6:18 am 15.Eduardo Lazarini disse …

    entao mais especificamente é q nao esta lendo nem gravando os arquivos class do java… como faço?

  16. em 31 Mar 2007 as 10:53 am 16.Rafael Quines disse …

    Kra, vc deve configurar a variável PATH do WINDOWS. é só adicionar o diretoriodo jdk instalar + /bin, que é o caminho onde encontra-se o executável javac. Valeu. Flw

  17. em 20 Apr 2007 as 6:51 am 17.Jean disse …

    Olá Rafael tudo tranquilo?
    Procurei no site inteiro da sun mas só consegui achar javacomm para solaris, linux e generic. Baixei a generic e só veio o arquivo comm.jar. O win32comm.dll e o javax.comm.properties não estão lá.
    Onde baixar esses arquivos?
    Valeu, abraço cara

  18. em 20 Apr 2007 as 7:57 am 18.Rafael Quines disse …

    Bom kra, nem me lembro de onde baixei essa versão pra Windows. To disponibilizando no meu site. Baixe e use essa versão com a DLL e o properties. BAIXE AQUI

    Flw

  19. em 27 Apr 2007 as 2:33 pm 19.Jean disse …

    Show de bola…
    Valeu cara muito obrigado mesmo!

  20. em 27 Apr 2007 as 7:16 pm 20.Rafael Quines disse …

    Blz.. Qq coisa q precisar é só falar… Flw

  21. em 04 May 2007 as 10:15 am 21.Fábio Curtis Volpe disse …

    Boa tarde, tudo bem com você?

    Pequei o seu tutorial sobre Comunicação Serial Utilizando a API da SUN, e estou com algumas dúvidas, será que poderia me ajudar?

    A dúvida está na hora de receber os dados pela porta serial, pois enviar está funcionando certinho. O que estou tentando fazer é o seguinte, pegar a data e hora do SO e enviar através da serial para um PIC, para teste estou usando o hyperterminal do windows xp, na hora que mando enviar ele exibe certinho no hyperterminal a data e hora, só que na hora que pelo hyper terminal uma mensagem data e hora ele exibe letra por letra em linhas separadas, só que eu queria que ficasse tudo na mesma linha.

    Uma coisa que percebi é que ele monta mensagem de 8 caracteres por vez, mas a minha mensagem tem 33 caracteres, daí ele divide em 4 linhas de 8 caracteres, queria que ficasse todas na mesma linha.

    O tutorial que me basiei é esse: http://www.guj.com.br/content/articles/javacommapi/JavaCommAPI.pdf

  22. em 04 May 2007 as 10:33 am 22.Rafael Quines disse …

    e ae Fábio. legal este seu problema. Tive o mesmo problema. E resolvi da seguinte forma. Você, qnd vai ler da serial, está dentro de um while(entrada.avaible() > 0) certo???

    O que eu fiz, é dar 3 tentativas e não confiar fielmente no avaible(). Pois se o PIC está escrevendo , por exemplo, RAF, vc leu já o RAF e o avaible vai pro 0 até que o PIC escreve o resto AEL. Vc, na verdade, não está dando tempo para ele escrever. O interessante é fazer assim:
    int tentativas = 3;
    while(tentativas > 0) {
    nodeBytes += entrada.read(bufferLeitura);
    } else {
    tentativas–;
    try {
    Thread.sleep(250);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    Desta maneira, vc estará dando mais tempo pro PIC escrever na SERIAL. E vai concatenando a medida que o avaible estiver > 0 entende. Depois disso, deve trabalhar em cima desse sleep para se adequar ao seu PIC. Ou achar um meio termo..

    T+

  23. em 10 Jun 2007 as 5:22 pm 23.Cesar disse …

    Olá Rafael.

    Parábens pelo blog, está muito legal.

    Não sou programador, mas estou precisando de uma mãozinha sobre java para concluir meu projeto de formatura da faculdade.

    Tenho que comunicar um Palm Tungsten TX com um leitor de código de barras pela porta serial, como o leitor utiliza porta RS232 tive que aplicar um circuito com o IC MAX232 para converter o nível de tensão para TTL, mas agora preciso fazer um pequeno programa para habilitar a porta serial da Palm e receber a String do código de barras.

    Será que você teria alguma dica para eu poder executar essa última parte?

    Fico grato desde já por receber sua atenção.

    Cesar

  24. em 10 Jun 2007 as 5:36 pm 24.Rafael Quines disse …

    Olá. Mto obrigado. Atualmente estou bem sem tempo de escrever novos posts aqui no blog, mas acredito que essa semana estarei mais disponível.

    Sobre a seu problema, acredito que você deveria desenvolver algo em J2ME, que é uma versão do Java aplicável a dispositivos móveis, no caso, deveria rodar no seu Palm.

    Dá uma olhada nesse link do JavaFree:
    http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=24722&highlight=

    valeu. flw

  25. em 19 Jul 2007 as 1:05 pm 25.Daniel Cabral disse …

    Prezado Rafael, parabéns pelo artigo que está muito bem escrito.
    Olha só, eu já estou usando o JavaComm desde Novembro do ano passado e depois de muitas dificuldades para configurar tudo corretamente consegui usá-lo sem problemas, tanto em Linux como em PC, em ambiente de DESENVOLVIMENTO (JDK, NetBeans). Porém, mês passado terminei meu projeto e preciso agora levar a aplicação (web) para o ambiente de produção, ou seja, apenas o JRE (nada de IDEs ou JDK) e o servidor de aplicação Apache Tomcat. Não encontrei em canto algum da internet uma explicação sobre isso. Apenas uns posts em inglês de uns gringos que estão tendo exatamente o mesmo problema que eu mas as sugestões de solução deles não estão funcionando no meu caso. O lance é o seguinte: após fazer o deploy da aplicação apenas o arquivo comm.jar é incluído no arquivo WAR e ele fica dentro da pasta webapps do Tomcat. Como nem o javax.comm.properties nem o driver (no meu caso é Linux, então é o libLinuxSerial.so, que é a mesma coisa do Win32comm.dll) estão na máquina não funciona. O problema é que não sei onde colocar eles. Nas pastas lib, lib/ext e lib/i386 do JRE não funciona (ou então algum detalhe está fugindo).. você me pareceu entender da API JavaComm então por acaso sabe algo sobre como fazer isso??? Podemos trocar umas idéias? Meu email é danielsocabral@gmail.com. Desde já agradeço pela atenção.

    Um abraço!

  26. em 19 Jul 2007 as 5:17 pm 26.Rafael Quines disse …

    Olá amigo..

    Mto obrigado pelos elogios. Admito que atualmente não tenho escrito nada de posts, mas estarei voltando com certeza…
    Sobre seu problema, nunca cheguei a tentar fazer funcionar em um ambiente WEB. o que eu tentaria fazer é, além de colocar os arquivos nos diretórios do JRE que vc já deve estar careca de fazer, colocaria a DLL (ou no seu caso, a SO) no diretório BIN do tomcat, pois será desse diretório que o java será chamado e executado por dentro do container. Sobre o properties e o comm.jar, acho que tb deveria colocar no /common/lib. Ah, o properties, caso não funcione, tente colocá-lo no LIB tb, pois ele procura no diretório de onde foi chamado o Java.. Desculpe não poder ajudar mto, mas teria que ser por tentativas e erros mesmo..

    Abraços..

    Flw

  27. em 15 Aug 2007 as 5:42 am 27.Fabricio disse …

    Rafael, estou tentando fazer um sistema em WEB usando JSP com JavaFaces para escrever algo na porta COM1. Porém não estou conseguindo.

    Como vc comentou acima que se tiver problemas em fazer rodar vc ajudaria sem problema, preciso da ajuda..rs..

    Se estiver ocupado não tem problema.

    Bom, hoj eu tenho um arquivo .TXT e atraves do DOS eu rodo a linha de comando c:\copy etiqueta.txt com1.

    Esse arquivo .TXT tem alguns comandos da impressora ZEBRA e interpreta e sai um modelo de etiqueta.

    Bom, só quero fazer isso através do JSF.

    Na minha página teria um botão como (Imprimir Etiqueta) e ele executa a escrita na porta.

    Porém não estou conseguindo fazer funcionar. Ele da erro logo nas primeiras linhas.
    Mas específico: CommPortIdentifier.getPortIdentifiers().

    Se puder ajudar agradeço.

    E fico no aguardo.

    Abraço

  28. em 15 Aug 2007 as 6:33 pm 28.Rafael Quines disse …

    Amigo, sobre fazer com WEB, teria que dar um jeito de acessar a porta COM do cliente certo? Quando precisei, uma vez fazer isso, fiz um applet. Através do applet, é possível sim, acessar os recursos locais do cliente, como a porta serial, por exemplo. Tem todo um esquema para assinar o applet para este ter acesso à máquina do cliente.

    Mas sobre seu problema, ql é o erro?? Colocou os arquivos nos lugares certos???

    flw

  29. em 23 Oct 2007 as 2:46 am 29.Rafael Quines » Conversor Serial => Infra-Vermelho disse …

    […] Para dificuldades na escrita da porta serial, sugiro meu outro post, que fala justamente da configuração do ambiente para possibilitar a escreta na serial, usando a API Comm da Sun, segue o link. […]

  30. em 12 Nov 2007 as 3:53 pm 30.francisco e silva disse …

    boa noite rafael.

    eu nao sou tão experiente em java, mas no meu trampo estou tendo que desenvolver uma aplicação para comunicar com um microcontrolador, atraves da porta serial, já baixei aquela apostila do GUJ, e estou a lendo, é que pra mim é meio confuso, voce saberia me dizer como é que eu posso ver fisicamente aquela aplicação do GUJ funcionando?
    Desculpe a minha ignorancia, mas tenho que admititr as minha limitações.

    um abraço.

  31. em 18 Dec 2007 as 10:56 am 31.Júnior disse …

    Rafael segui o seu artigo, por sinal muito bom, porém estou com um problema na hora de executar, sou programador PHP e estou iniciando em JAVA, quando tendo rodar a classe que está no artigo do GUJ da o seguinte erro:

    Caught java.lang.NullPointerException: name can’t be null while loading driver com.sun.comm.Win32Driver

    Você sabe o que pode ser? Estou usando o JDK 1.6

    Desde já muito obrigado!

  32. em 18 Dec 2007 as 1:04 pm 32.Rafael Quines disse …

    Amigo, vc precisa colocar a DLL, o properties e o JAR nos diretórios que eu especifiquei no artigo.. Em que linha exatamente dá isso?? Poderia mostras seu código?!?

    Flw

  33. em 17 Jan 2008 as 3:40 am 33.rosse disse …

    Olá Rafael Quines, blog mt bom;)

    Gostava que me podesses ajudar…
    Tenho uma aplicação Java instalada no Win98. Que ao listar as portas não me aparecem todas as portas serie que existem disponiveis no pc. Esta aplicação funciona correctamente em XP.
    alguma ideia?

  34. em 17 Jan 2008 as 5:55 pm 34.Rafael Quines disse …

    Olha, o problema, acho que está na parte de liberação do windows para aplicativos mexerem diretamente na porta. Dá uma pesquisada na UserPort…

    T+

  35. em 15 Feb 2008 as 11:47 am 35.Eduardo Pacheco disse …

    Olá Rafael!
    Dei uma olhada no site e em alguns posts e me interessei bastante por JAVA.Esse ano eu tenho que entregar um projeto de tcc pro técnico em Processamento de Dados, queria aprender mais sobre a linguagem e sua característica multi plataforma.Quero aprender sobre a integração da linguagem com componentes eletrônicos, e pretendo usar isso no projeto.Sabe de algum lugar onde posso fazer um estágio na área?Não precisa ser remunerado.. o objetivo é aprender mesmo.Por hora faço técnico e facul, o tempo que tenho livre eh fds e nas férias.Não sei se ajuda mais gosto bastante de C.. arrisco um poco em C# e Delphi, e esse ano to vendo Oracle,COBOL, VB.NET e tenho noções de eletrônica que aprendi no SENAI.
    Agradeço a atenção!!!
    Eduardo

  36. em 16 Feb 2008 as 12:50 pm 36.Rafael Quines disse …

    Kra, não falou de onde vc é. Mas vale a pena dar uma olhada no CIEE do seu estado. Sempre tem estágios nessa área.. Flwww

  37. em 22 Feb 2008 as 7:27 pm 37.Eduardo Pacheco disse …

    Ops.. eu sou de Osasco -sp (ZO de SP), eu ja tentei pelo CIEE, mas não encontro bons estágios e dificilmente é na area.Até agora nada de java.Acabei de sair de um estágio e eu mexia com comp. gráfica, meio nada a ve com o que eu quero.Mas agradeço a atenção!
    VLww

  38. em 27 Feb 2008 as 6:09 pm 38.Jaisson disse …

    Rafael, seu artigo está muito simples de compreender, muito obrigado.
    Gostaria de saber se poderia auxiliar, pois terei que criar um “sincronizador” de palms com o PC, de preferência a conexão será feita por uma porta USB.
    É possível reconhecer?
    Configurei conforme o artigo indica e utilize o seu código. Com isso as portas lpt1 e lpt2 são reconhecidas.
    Valeu

    Meu e-mail é jaissonrd@gmail.com. Se puderes me enviar algo pelo e-mail, agradeço muito.

  39. em 27 Feb 2008 as 6:24 pm 39.Rafael Quines disse …

    E ae… Kra, nunca tentei acessar a porta USB do micro, mas acredito que a API Java Comm não possibilite isso. Vou dar uma pesquisada assim q tiver um tempo, e te mando uma resposta mais decente blz… Valeu. Flw

  40. em 03 Mar 2008 as 11:36 am 40.Ricardo Martina disse …

    Rafael,

    Estou bastante enpolgado, pois consegui fazer o netbeans mostrar (RING e um monte de 0000000000), Já é um bom sinal!!!

    Você não tem como me ajudar a mostrar mesmo o que interessa, que é o número do telefone.

    Grato pela atenção,

    Ricardo Martins

  41. em 03 Mar 2008 as 12:19 pm 41.Rafael Quines disse …

    Amigo, o que está exatamente fazendo? Está comunicando com o modem? poderia me explicar o que pretende para assim saber se tenho como lhe ajudar? Flw

  42. em 04 Mar 2008 as 10:30 am 42.Ricardo Martina disse …

    Isso, estou tentando receber o número do telefone através do fax/modem, digito o comando ATZ (resetar) e o AT#CID=1 (para receber o Nº), depois só mostra RING e um monte de 0000000000 estes zeros parece quadrados (usando o netbeans). No hiper terminal funciona certinho ele mostra o número e depois os Rings. Estou utilizando o código que você disponibilizou para comunicação serial.

  43. em 04 Mar 2008 as 11:06 am 43.Rafael Quines disse …

    Kra, poderia me mandar o seu código para mim analizar? não esqueça q o modem gospe os dados em ASCII… flw

  44. em 05 Mar 2008 as 5:39 am 44.felipe de assis pereira disse …

    quero fazer minha inscrição para o curso é o 1° emprego

  45. em 05 Mar 2008 as 6:31 am 45.Rafael Quines disse …

    ???

  46. em 05 Mar 2008 as 11:01 am 46.Ricardo Martins disse …

    Rafael não consegui mandar o código, pelo site, você tem e-mail. eu ja fiz de tudo e programa só reconhece

    Ring

    000000000000

    Ring

    00000000000

    Me ajude por favor.

  47. em 09 Mar 2008 as 6:18 am 47.Ricardo Martins disse …

    Olhou o código!!!

    será que tem algum erro!!!

  48. em 09 Mar 2008 as 7:02 pm 48.Rafael Quines disse …

    Kra, erro não tem. Mas como conversamos pelo e-mail, vc deve implementar o SerialPortEventListener ao inves de chamar o método para escutar… Assim, vc sempre fica escutando.

    Flw

  49. em 20 May 2008 as 11:00 am 49.carlos disse …

    init:
    deps-jar:
    compile:
    Exception in thread “main” java.lang.UnsatisfiedLinkError: no parport in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1698)
    at java.lang.Runtime.loadLibrary0(Runtime.java:840)
    at java.lang.System.loadLibrary(System.java:1066)
    at parport.ParallelPort.(ParallelPort.java:71)
    at sensor.Main.main(Main.java:6)
    Java Result: 1
    debug:
    CONSTRUÍDO COM SUCESSO (tempo total: 5 segundos)

  50. em 20 May 2008 as 11:07 am 50.carlos disse …

    Por favor me ajude :
    init:
    deps-jar:
    compile:
    run:
    Exception in thread “main” java.lang.UnsatisfiedLinkError: no parport in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1698)
    at java.lang.Runtime.loadLibrary0(Runtime.java:840)
    at java.lang.System.loadLibrary(System.java:1066)
    at parport.ParallelPort.(ParallelPort.java:71)
    at sensor.Main.main(Main.java:6)
    Java Result: 1
    CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

  51. em 20 May 2008 as 11:15 am 51.carlos disse …

    problema resolvido,, obrigado o software em java, ja ta rodando perfeito, agora vou ver a parte eletronica,, obrigado

  52. em 20 May 2008 as 11:20 am 52.Rafael Quines disse …

    Esses erros de UnsatisfiedLinkError acontece qnd a DLL não está no lugar que deveria…

    flw

  53. em 07 Jun 2008 as 4:32 pm 53.Bruno Nave disse …

    Ola Rafael!

    Podes me mandar po meu email esses 3ficheiros (javax.comm.properties, win32com.dll e a comm.jar)
    é que não os encontro em lado nenhum :(

    Muito Obrigado. Abraço

  54. em 07 Jun 2008 as 4:33 pm 54.Bruno Nave disse …

    Ola Rafael!

    Podes me mandar po meu email esses 3ficheiros (javax.comm.properties, win32com.dll e a comm.jar)
    é que não os encontro em lado nenhum :(

    Muito Obrigado. Abraço

    O meu email é: brunonave@gmail.com

  55. em 07 Jun 2008 as 8:01 pm 55.Rafael Quines disse …

    Amigo, já tinha disponibilizado o link no comentário nro 18. Segue o link: Baixe Aqui

    flw

  56. em 13 Jun 2008 as 9:50 am 56.Bruno Nave disse …

    Ok Valeu! Muito Obrigado!

    Posso usar qualquer versão JDK ou JRE?
    Ou tenho que usar alguma me especifico!!
    Tou a trabalhar em Windows XP, no JBUILDER 2006 Enterprise!!

  57. em 13 Jun 2008 as 10:07 am 57.Bruno Nave disse …

    É que tentei configurar mas ao correr o programa ta me dando o seguinte erro: :(

    Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path
    Caught java.lang.UnsatisfiedLinkError: readRegistrySerial while loading driver com.sun.comm.SolarisDriver

  58. em 19 Jun 2008 as 1:49 pm 58.Francisco disse …

    Rafael, boa noite.

    A um tempo, eu postei aqui uma dúvida, mas confesso que estava sem noção nenhuma do assunto, hoje já um pouco mais sabido e já enviando dados para a porta serial, gostaria de saber como resolver um problema que estou tendo:
    Eu preciso manter a porta em nível 0 por 25ms e em nivel 1 por mais 25ms respectivamente nesta ordem, e depois começar o envio de dados. Tentei fazer isso enviando ‘\u0000′ que mantem a linha em baixa, no entanto em nenhuma config de baudrate eu consigo os 25ms. Eu até conseguiria se eu pudesse setar o baud para o tempo que eu precisasse. Será que existe alguma forma de fazer isso?

    Muito obrigado.

    Francisco

  59. em 19 Jun 2008 as 3:23 pm 59.Rafael Quines disse …

    Kra, consigo entender exatamente sua necessidade. O grande problema aki é q estamos em cima de um sistema operacional. Qnd tu dá um sleep pelo JAVA pra esperar os 25ms, passa por várias camadas até chegar no processador. Tipo, nunca dará exatamente os 25ms q deseja. Mas me diz um negócio, ql dos pinos vc está querendo manter em nivel 0 ou 1???

  60. em 19 Jun 2008 as 4:20 pm 60.Francisco disse …

    Rafael.

    Realmente, com o sleep, eu medi com um osciloscopio a saida, e percebi que sempre varia mesmo. O pino que preciso manter em 0 e 1 é o pino 3(transmitted data).
    Obrigado, e , se tiver novidades me informe.

  61. em 21 Jun 2008 as 7:09 pm 61.Rafael Quines disse …

    Amigo, acho que o Windows não te dá essa possibilidade. Tipo, tu pode escrever um byte, q ele manda pela serial, mas não sei se tem como vc mesmo fazer os níveis 1 e 0.

    Desculpe não poder ajudar..

    T+

  62. em 11 Jul 2008 as 5:02 pm 62.Fonseca disse …

    Amigos, alguém sabe qual o comando que uso para enviar um pulso para a porta Serial (COM1, qualquer pino) em Visual Basic para o acionamento de dispositivos?

    Fonseca

  63. em 20 Jul 2008 as 1:37 pm 63.Rodrigo disse …

    Rafael, estou trabalhando no meu TCC e estou com muita dificuldade em relação a ler da Serial com a JAVACOMM.

    Basicamente meu projeto consiste na comunição SERIAL com uma placa que tem um microcontrolador que conversa com a injeção eletronica de automoveis que usam o padrão OBD-II e traduz isto para ASCII jogando pela serial.

    A placa esta funcionado perfeitamente, qdo uso o Hyperterminal e digito por exemplo o comando de solicitação de RPM recebo os valores em ASCII.

    Olhe o log do HyperTerminal Abaixo

    >ATZ // manda reset para a placa

    ELM323 v2.0 // resposta da placa com sua versão…

    >010C // solicitação de leitura do RPM do motor
    BUS INIT: …OK // na primeira comuniçao a placa inicializa a comunicação com a Injeção do Carro
    41 0C 0D 50 // aqui esta a informação que depois de aplicar uma formula simples ira informar a rotação do motor

    >010C // solicitação de RPM
    41 0C 0D 4E // Resposta…

    >010C
    41 0C 0C E2

    >010C
    41 0C 0C E0

    >010C
    41 0C 0C D4

    Estou usando como base o tutorial da JAVACOMM disponivel aqui no GUJ.

    Meu problema esta no momento de RECEBER OS DADOS .. não consigo receber os dados completos, não tenho nenhuma intimidade com THREADS e estou desconfiado que o problema deve estar por ter multiplos pontos de execução.

    Sera que vc poderia ajudar?
    Muitissimo Obrigado

  64. em 21 Jul 2008 as 10:50 am 64.Marcos disse …

    Estou com um projeto da faculdade emandamente e estou usando um sensor desse de alarme pra fazer um esperimento, sou do curso de informatica e não manjo nada de eletronica, bem mais vamo lá. Encontrei um programa na internet que checa se a serial esta funcionando mesmo, nesse programa ele pede pra colocar em curto o pino 2 e 3 da serial e o sensor faze exatamente isso, quando esta sem ninguem na sua frente ele se encontra fechado e dá comunicação com sucesso, caso abre passe alguem na sua frente ele abre o sinal e então dá falha na cumunicação. Estou querendo usar essa logica pra imprementar em java um programa que faz isso, mas não estou conseguindo. Estou usando pra comunicar com a serial a API RXTX e ela esta funcionando blz ja testei com um leitor. Mas pra minha precisão não esta servindo, vi que vc Rafael entende bem disso, o que me diz consigo checar em JAVA se existe essa comunicação ou não? Estou aguardando.. Obrigado…

  65. em 14 Aug 2008 as 11:47 am 65.Francisco disse …

    >Rodrigo disse …
    >um microcontrolador que conversa com a injeção >eletronica de automoveis que usam o padrão OBD-II e >traduz isto para ASCII jogando pela serial.

    Rodrigo, estou tentando desenvolver um trabalho semelhante ao seu talvez.
    To tendando descobrir, ainda sem sucesso, como configurar o baudrate para 10400, o qual é exigido pela norma ISO14230, parece que o java não permite isso, certo? tem que trabalhar com JNI!, existe uma outra forma de fazer isso? Estou usando a API RXTX, mas ainda usando os exemplos existentes na documentação, sem configurar a velocidade correta eu não posso fazer praticamente nada ainda. Poderia me dar uma dica?

    Muito obrigado

  66. em 16 Aug 2008 as 1:00 am 66.Oxycodone. disse …

    Oxycodone….

    I s percaset oxycodone. Buy oxycodone without prescription. How long does oxycodone stay is system. Oxycodone how long in system. Pictures of oxycodone 80 mg….

  67. em 20 Sep 2008 as 9:01 am 67.Jonathas disse …

    ola Rafael tudo bem estou desenvolvendo um software academico para um manipulador robótico com porta serial mas não consegui baixar api no site da sum parece que eles não fornecem mais .
    tem como vc me envia-la

    obrigado

    jonathas

    jonathasab@yahoo.com.br

  68. em 20 Sep 2008 as 6:57 pm 68.Rafael Quines disse …

    Bom kra, nem me lembro de onde baixei essa versão pra Windows. To disponibilizando no meu site. Baixe e use essa versão com a DLL e o properties.

    BAIXE AQUI

    Esse foi o comentário nro 18. Flw

  69. em 24 Sep 2008 as 5:20 am 69.jonathas disse …

    obrigado

    se precisar de algo

    valeu

Trackback This Post | Inscreva-se no RSS Feed dos comentátios

Responda