ENVIAR E RECEBER STRING PELA SERIAL.

JORGENETTO 31/07/2009 08:43:49
#318420
Oi colegas, preciso de ajuda, atraves do VB tenho enviado alguns caracteres pela
porta serial (COM1) pelo componente (MsCOMM), EX: envio apenas um caractere
de cada vez, gostaria de aprender a enviar uma string do tamanho 15, e tambem
monitorar atraves do form do meu aplicativo a chegada de outra string do mesmo
tamanho, pergunto é possivel fazer, no recebimento gostaria que ficasse assim:
que ao chegar a string ela fosse apresentada ou mostrada no form, sem que eu
tenha que pressionar alguma tecla ou botão, para receber ou verificar?
Wellington


SILVIO.GARCIA 31/07/2009 11:37:19
#318445
Opa blz, que tipo de equipamento vc tem conectado na porta? pode explicar melhor pra eu te ajudar?

para vc ler oq vem da porta

recebestring = MSComm.InBufferCount

if len(recebestring) = 15 then [ô]String completa, aí vc trata os parametros da string
text1.text = MSComm.Input
list1.add text1.text
endif
JORGENETTO 31/07/2009 20:06:41
#318506
Silvio, vou tentar explicar melhor....
Do outro lado tenho um (16F877A), programado em linguagem C, estou usando as 8 saidas da porta b,
para acionar algumas chaves atraves de pequenos transistores, ou seja envio comando para ativar e
desativar estes transistores idividualmentes, ao mesmo tempo preciso monitorar tambem 8 chaves
de sensores ligados a porta d deste microcontrolador, só que quando vou enviar algun comando para
a serial, pressiono um dos 8 botões disponivel no meu form, mas quando o micro me inviar atraves da
serial alguma informação destes sensores, gostaria que os mesmo fosse visualizados diretamentes no
form, sem que eu tenha de pressionar alguma tecla ou comando!
Wwllington
SILVIO.GARCIA 05/08/2009 09:50:30
#318963
bom... vamos pro partes... esse microcontrolador envia o que pela porta, uma string de tmg 15, correto?

dentro de um timer deixa como 1000, assim vc clica e vai ficar sempre verificando se tem dados na porta.

recebestring = MSComm.InBufferCount

if len(recebeString) = 15 then [ô]Aqui testo somente o tmg, não se os dados estão correto, muito provavelmente o microprocessador deve enviar um código de cheksum
list1.add mscomm.imput [ô] Grava a string numa list, mas antes vc pode tratar a string com o MID antes de formatar, verificar no manul do seu controlador se for o caso ou o fabricante,
endif
[ô]


Para enviar dados pelo porta, um exemplo de um equipamento que utilizo... isso tudo vai depender do seu equipamento...

Dim Dia, Hora, Min, Seg, Env_Hora, Env_Hora, Ret_Hora As String

Env_Hora = [Ô](&H[Ô]
Dia = Format(MinhaData, [Ô]DD[Ô])
Hora = Format(MeuTempo, [Ô]HH[Ô])
Min = Format(MeuTempo, [Ô]nn[Ô])
Min = Min & [Ô])[Ô]

MSComm.Output = Env_Hora & Dia & Hora & Min
Ret_Hora = MSComm.Input



t+
JORGENETTO 09/08/2009 08:13:34
#319335
Valeu pela ajuda, Obrigado.....
Wellington
Tópico encerrado , respostas não são mais permitidas