Boa noite colegas.
Conforme comentado acima estou postando o meu atual problema com a comunicação serial.
A linha de dados que está na área de download, e recebida via serial do aparelho, que está entre as setas "Linha-> <-", é composta por 175 caracteres.
Muito estranho os 175 caracteres... se fosse hexadecimal não deveria ser número par ? Mas também não parece ser código hexadecimal, já que o hexadecimal deveria conter somente caracteres de 0(zero) até F.
Vejam abaixo, os acaracteres recebidos, sem qualquer tratamento, somente separados por "," (vírgula)
Código: Selecionar todos
, , ÿ , Ç , , , , , , ÿ , x , ¦ , ¾ , , Ç , , , , ¤ ,
ÿ , x , ¦ , ¾ , , Ç , , , , , , , , , , , , , ,
, , , , , , + , ÿ , x , , , , , ÿ , Ç , , , , ,
, , + , 3 , , ÿ , , 3 , + , , , , + , 3 , Ç , å , ÿ , , + ,
, Ç , , + , ÿ , Ó , , , , + , , + , ÿ , Ó , ÿ , , , 0 , ,
x , , , , , , 0 , , ` , , + , , Ç , , , , , , ,
, , ÿ , f , , x , , å , , , f , , ` , , å , ÿ , , 3 , ` ,
¾ , 3 , , x , , , , Ç , , + , ÿ , Ó , , , , + , , , ,
, ÿ , ÿ , , , ? , 3 , , , + , , + , , 3 , , , , ÿ , Ç ,
` , , ÿ , Ç ,
========== seguem os mesmos valores ASC, separdos por '|'
Código: Selecionar todos
006|000|152|128|000|024|240|024|000|152|120|204|243|024|128|024|240|024|207|
152|120|204|243|024|128|024|000|024|000|024|000|024|000|024|000|024|000|024|
000|024|000|024|000|024|192|152|120|012|006|012|000|152|128|024|015|000|024|
000|024|195|051|000|152|006|051|195|024|000|024|192|051|128|134|152|006|192|
012|128|024|192|152|224|024|000|024|192|024|192|152|224|152|030|003|048|006|
120|012|030|003|030|003|048|006|096|012|192|024|128|024|000|024|000|024|000|
024|000|152|102|012|120|012|134|030|015|102|015|096|015|134|152|030|051|096|
243|051|006|120|012|240|024|128|024|192|152|224|024|000|024|192|024|240|024|
000|152|152|000|024|063|051|000|024|192|024|192|024|051|240|030|000|152|128|
096|000|152|128|
========== pelos resultados fornecidos pelo aperelho, deveríamos encontrar, mais ou menos, os dados abaixo:
Código: Selecionar todos
SOHLF (02)
08 COBAS MIRA 03LF (18)
STXLF (02)
20RA1PCR 010001nome pacie+2.40000E+0001??ON00 (46)
LF (01)
ETXLF (02)
ETOLF (02) = 73 x 2 = 146
=================================================
Conforme o manual, esta comunicação deve ter a seguinte estrutura:
onde:
1- a seqüência "SOH+LF+08 COBAS MIRA" ou "SOH+LF+07 COBAS MIRA" identifica o modelo do aparelho que está enviando os dados;
2- a seqüência "03+LF" identifica o tipo de bloco de dados que serão transmitidos pelo aparelho, seguido do LF.
-opções para o tipo de bloco de dados: "00, 01, 03, 05, 10, 11, 15, 16, 70, 71, 94 e 95" (um tipo de bloco de cada vez).
3- a seqüência "STX+LF+dados+ETX+LF+EOT+LF" pode repetir-se até a término de envio dos dados do tipo de bloco selecionado.
4- 'dados' deve ter os seguintes valores:
20RA1PCR 010001??????????+2.40000E+0001??ON00LF
Na linha de "dados" lidos, em alguma posição deveria conter os valores:
064 (identificação da amostra)
PCR (tipo de exame realizado na amostra)
2.4 (valor do resultado)
08 (tipo de unidade, neste caso mg/l)
Os únicos valores, pelas suas posições e repetição, que aparentemente fazem sentido são:
152 e 128 = LF ?? = (0AH = 10 decimal)
96 e 0 = EOT ?? = (04H = 4 decimal)
30 e 0 = ETX ?? = (03H = 3 decimal)
6 e 0 = SOH ?? = (01H = 1 decimal)
mas que código matemático transforma estes valores em LF, EOT, ETX e SOH ?
=========================
A coisa ficou "preta", e preciso de ajuda, de sugestões, de orientações.