ENVIAR E RECEBER STRING PELA SERIAL.
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
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
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
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
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
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
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+
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+
Valeu pela ajuda, Obrigado.....
Wellington
Wellington
Tópico encerrado , respostas não são mais permitidas