Página 1 de 1
recebendo dados pela porta serial

Enviado:
15 Mar 2007 13:45
por ernande_filho
Pessoal, tô com uma bronquinha, que ainda não consegui resolver.
Mando um comando pro celular (at+cbc ou outro qualquer) e ele me retorna alguns valores, só que em várias linhas.
TX
- Código: Selecionar todos
AT+CBC
RX
- Código: Selecionar todos
AT+CBC
+CBC: 0,13
OK
+CBC: (comando)0 (Bateria em uso)13 (carga restante da bateria em %)Como faço para ler cada linha individualmente?
Estou usando o componente CPort com o Delphi 7
minha rotina de recepção é essa:
- Código: Selecionar todos
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
str: string;
begin
comport1.ReadStr(str,count);
memo1.Text:=memo1.Text+str;
end;
Resolvido!

Enviado:
23 Mar 2007 00:45
por ernande_filho
Resolvi da seguinte forma:
Juntei caracter por caracter...
ou seja:
dado:= str[n]+str[n+1]+...
Se alguem tiver outra ideia, estou ouvindo.
Re: Resolvido!

Enviado:
23 Mar 2007 07:07
por Paulo
ernande_filho escreveu:Resolvi da seguinte forma:
Juntei caracter por caracter...
ou seja:
dado:= str[n]+str[n+1]+...
Se alguem tiver outra ideia, estou ouvindo.
Ernande,
Tenho que desenvolver um software em Delphi, mas Delphi não é mto minha praia, daí o bixo vai pegar, pois tenho que coletar dados da porta serial e não sei como exatamente.
Vc teria algum material ou exemplo sobre isso para me passar?
Ficaria mto grato se vc pudesse me ajudar.
Até +...
Paulo D.

Enviado:
23 Mar 2007 19:34
por ernande_filho
Paulo, o material que eu tenho é minha cabeça e a famosa "bíblia do delphi" de Marco Cantu
Não sei nem pra onde vai direito o delphi, mas o trivial eu to desenrolando graças a necessidade.
Explica melhor o que vc precisa, que eu te ajudo.
como as vezes me perguntam o que eu to usando, falo logo: Delphi 7 com o CPort
Como ja foi dito: para trabalhar com o valor recebido, estou convertendo ele numa string, só que tô pegando caracter por caracter. Como não são muitos caracteres, (no max 5) eu os pego, transformo numa string (tiro os comandos CR, LF, ...) e uso da maneira que eu quero. Converto em inteiro, aplico o valor numa barra, ETC.
Eu posso lhe passar o codigo fonte dos meus testes. Só está um pouco bagunçado, mas dá pra entender numa boa. Dá pra ver a recepção do sinal serial, transmissão, filtragem e conversão dos dados recebidos e aplicação em componentes do Delphi.
Não sei se fui muito claro nas explicações, mas é que eu sou ruim mesmo pra ensinar. Nunca consegui bancar um professor...
Depois manda um email p mim em pvt.
Boa Sorte e Tamos por aqui.

Enviado:
24 Mar 2007 08:54
por Maia
Eu não entendi sua dúvida. Vc está recebendo caracter por caracter e não string por string? É isso? Explica mais um pouquinho.
Abraços,
Maia

Enviado:
24 Mar 2007 09:03
por ernande_filho
Maia, valeu pela ajuda, mas já resolvi.
Eu recebo a string (com CR e LF), mas como queria separar alguns caracteres (valores) de uma vez só, nao conseguia, então crei uma string nova. Nela ponho só os caracteres que me interessam da string que recebi pela serial. Depois, transformo num int e aplico numa barra que mostra a porcentagem (gauge ou ProgressBar)

Enviado:
24 Mar 2007 11:10
por Maia
Neste caso vc pode usar o string2 := copy(string, pos inicial, num caracteres). Dá uma olhada no help do Delphi que ele explica melhor.
Abraços,
Maia

Enviado:
25 Mar 2007 16:13
por ernande_filho
Valeu Maia!
Era justamente isso que tava procurando.
Vou testar e depois coloco o resultado.

Enviado:
26 Mar 2007 11:31
por ernande_filho
Pessoal, o código que criei para aprender a trabalhar com a porta Serial está aí.
Me pediram que enviasse em pvt, mas prefiro enviar só uma vez e compartilhar com quem está interessado.
http://rapidshare.com/files/22875276/Co ... l.rar.html
Boa programação.

Enviado:
26 Mar 2007 11:32
por ernande_filho
Ops!
Esqueci da senha...
Senha: asm51