Peço desculpas por este post (pois já havia feito outro parecido) como não obtive resposta tentei implementar um tipo de solução e não está funcionando 100%.
Tenho uma balança que passa dados ASCII e estou tentando converter para strings (Unicode) no Java.
Implementei o seguinte código:
A sua balança não passa “dados ASCII”; são dados em binário que provavelmente você não está conseguindo converter.
Você tem um link para o manual da tal balança?
P
petter
Eu falei em ASCII por em contato com o suporte técnico da balança o mesmo me disse que trasmite em ASCII, e como não tenho experiencia em automação ou balanças acabei aceitando a explicação do suporte deles.
Eu falei em ASCII por em contato com o suporte técnico da balança o mesmo me disse que trasmite em ASCII, e como não tenho experiencia em automação ou balanças acabei aceitando a explicação do suporte deles.
Dica: pode ser que você tenha programado a paridade errada para obter os bytes da balança. Se esse for o caso, caracteres perfeitamente normais aparecerão incorretos na hora de serem lidos.
A
andreban
thingol:
Dica: pode ser que você tenha programado a paridade errada para obter os bytes da balança. Se esse for o caso, caracteres perfeitamente normais aparecerão incorretos na hora de serem lidos.
Vc quer dizer, se a balança está usando big endian ou little endian?
T
thingol
Não tem nada a ver com big & little endianness.
É se a paridade é par ou ímpar mesmo. (Na hora de configurar sua balança e seu software: EVEN, ODD, MARK, SPACE, NONE). Outra coisa que pode dar problemas é se a velocidade estiver diferente.
Use o HyperTerminal, se estiver no Windows, para conferir os parâmetros (puxe os dados diretamente da balança, em vez de usar um programa).
P
petter
Como diria Jack vamos por partes. :lol:
No Hyperterminal recebo de forma difente de que pela aplicação Java, sai algo dessa forma: ‚½ð`003¸00000000™‚½ (no Hyperterminal é exibido um monte de íóù. Colei aqui e saiu 1/2, tm. Deve ser codificação.
Tanto na balança como na minha aplicação e nas configurações de COM1 do Windows configurei dessa forma:
paridade: EVEN
baudrate: 4800
stopbits: 7
E o negócio aqui continua retorna uma monte de caracteres estranhos.
T
thingol
Pelo que sei das balanças Toledo, parece que alguém já escreveu um módulo Java para o protocolo P01. É questão de procurar na Internet, porque já vi isso mas não sei mais onde é que vi. O tal protocolo P01 contém esses caracteres esquisitos, que devem ser interpretados em binário.
P
petter
Humm. Vou dar um procurada, o que complica é que já rodei o Google e não retornou nada.
Sobre esse tratamento não tem como ser feita na “mão” em Java?
É que comunico e mando impressões normalmente via porta serial para um impressor de código de barras Toledo no protocolo P03. Esse balança configura um protocolo para a comunicação com micro sem passar pelo P01, mas mesmo assim não resulta nada legivel.