Byte retornado de porta serial estranho

mais uma tentativa agora com JavaComm obtive o seguinte resultado apos pegar os bytes recebidos na porta serial por um leitor de impressao digital

n.o de bytes lidos : 1
?
n.o de bytes lidos : 1
þ
n.o de bytes lidos : 1
ÿ
n.o de bytes lidos : 1
?
..

onde no caso em um exemplo em delphi e em VB ultilizando MSCOMM obtem uma String com a data, hora…etc.

ja tentei com JNA e me retornou os mesmos valores…ja tentei NLink mesma coisa…e agora até com JavaComm

alguem pode me explicar oq é esse erro pq me aparece esses caracteres estranhos.

Obrigado.

dei uma olhada melhor na documentação aqui do aparelho e vi o seguinte

Estas funções permitem que arquivos sejam convertidos entre o formato XPBASIC e arquivos no formato TEXTO, ASC, DBF ou
LOTUS (somente em DOS).

Os arquivos na memória dos coletores TRIX têm o formato XPBASIC e devem ser convertidos após serem recolhidos para o
concentrador.

essa conversão só seria possivel com metodods da DLL??

alguem poderia me explicar melhor q formato eh esse XPBAsic

Dá a impressão que você configurou incorretamente algum dado de paridade, stop bits, data bits etc. O que ocorre se você limpar o oitavo bit desses bytes?

entao se eu limpo da a mesma coisa…mas agora olhando a documentaçao eu tenho q converter os bytes vindos do hardware…mas estou com outro problema…

ConvXP2TXT(cFileOrig, cFileDest, cbShowMsg)

A função ‘ConvXP2TXT’ converte o arquivo fornecido no formato XPbasic para formato TEXTO. A conversão é feita
convertendo-se todos os campos tipo inteiro e ponto flutuante para caracteres.
O argumento ‘cFileOrig’ é uma cadeia de caracteres com o nome do arquivo origem.
O argumento ‘cFileDest’ é uma cadeia de caracteres com o nome do arquivo destino.
O argumento ?cbShowMsg? é o nome da função local que recebe o número de registros já convertidos e pode ser usada
escrever este número na tela. Esta função pode também abortar a recepção se testar o teclado e retornar .F. quando determinada tecla
for pressionada, retornando .T. a recepção continua. O código de erro retornado é CF_USERABRT. Caso não se deseje usar esta
função fazer cbShowMsg = NIL.

o problema é o seguinte não sei como passar esse parametro cbShowMsg…usando o JNA…vou ter q passar uma função como parametro de outra função??

É isso mesmo.

https://jna.dev.java.net/#callbacks

// Equivalent JNA mappings

    interface FUNCTION extends [b]Callback[/b] {
        void callback();        
    }
    int atexit(FUNCTION fn);
}

Nossa me da uma luz q me compliquei td aqui :oops:

não consegui intender…como aplicar isso no meu problema…sou leigo no assunto

Obrigado

Acho que é mais fácil você não usar o tal callback, já que ele serve só para mostrar o número de registros convertidos, o que na maior parte dos casos é perfumaria.
Nesse caso, você declara esse parâmetro cbShowMsg como “int” no JNA, e passa o valor 0.

ok a respeito desses outros 2 parametros arquivo de origem e arquivo de destino…eu posso passar como parametro a variavel de tipo byte[] q eu declaro na funçao onde eu pego os valores do buffer de retorno??

dll.ConvXP2TXT(sBuffer, sBuffer, 0);

segue o seguinte erro

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Error looking up function 'ConvXP2TXT': Não foi possível encontrar o procedimento especificado.