TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: eccdreded en 24 de Noviembre de 2006, 09:19:32
-
Hola amigos, que tal les va??
Estoy intentando hacer un programa muy sencillo que consiste en recibir un string de caracteres procedente desde mi pic, pero no hay manera de visualizarlos todos en un text de visual basic. Por ejemplo:
en el pic:
printf("carahuevo");
en el text de visual basic aparece:
aauvo
Les comento que la comunicación esta a 9600,N,18,1 Rthreshold=1 Inputlen=1 InbufferSize=1024
Por cierto que estos ultimos comandos no los entiendo muy bien, asi que si me los podeis explicar brevemente estaría genial.
Bueno un saludo pa todos y a darle duro a vuestros proyectos!!! :D
-
El inputlen determina la cantidad de datos a ser leidos cuando suceda el evento de arribo de datos. Si pones 1 se leera 1 byte por evento.
El Rthteshold es el que produce el evento cuando la cantidad de bytes recibidos es igual al valor asignado al mismo.
si Rthreshold= 1 significa que el evento on_comm se producira cada vez que arribe un byte.
El inbuffersize es el tamaño maximo reservado para almacenar temporalmente los bytes recibidos. si es 1024 entonces puede guardar hasta 1024 bytes temporalmente.
En definitiva:
Si RthresHold=1
inputlen=1
Inbuffersize=1024
significa que cada vez que recibas un byte habra 1 byte en el buffer de entrada. Como 1 coincide con la cantidad del Rthreshold se produce el evento on_comm. Cuando leas, leeras 1 byte por vez, debido a que inputlen=1.
No deberia estar mal lo que haces, pero todo depende de tu programa.
En el evento MSComm1_OnComm debes interceptar el MSComm1.CommEvent = comEvReceive. El resto es para otras cosas.
Si miras en este subforo podras ver ejemplos de todos los tipos de eventos que genera el On_Comm y como seleccionar entre cada uno...
Para visualizar lo que llega no deberia ser necesario mas que:
Dim Tmp as string
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
tmp=MsComm1.Input
Text1.Text= text1.text & Tmp
End Select
end sub
Asegurate que coincida el baudaje, cantidad de bits, paridad,etc en ambas partes.
Saludos.
-
Muchas gracias amigo. Magnifica explicación. Yo debía tener algún error en el codigo que he utilizado tambien. He puesto el que me has dejado y la verdad es que todo bien. Gracias una vez mas.
Salud!