TODOPIC

Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: JorgitoFRyOle en 11 de Enero de 2005, 05:34:00

Título: propiedad input del mscomm
Publicado por: JorgitoFRyOle en 11 de Enero de 2005, 05:34:00
Buenas:

Tengo una duda sobre la propiedad input del control del puerto serie, esta propiedad te permite leer los datos del buffer de recepcion de datos del PC que llegan de la placa,mi pregunta es:
¿cada vez que se ejecuta input se leen todos los datos que haya el buffer de recepcion o solo 1byte por lo que se tendria que hacer el control para leerlos todos?

A ver si alguien me puede resolver esta dudilla que me ha surgido. Gracias

1saludo
Título: RE: propiedad input del mscomm
Publicado por: wqtrp en 11 de Enero de 2005, 16:43:00
hola, mira el input depende de otras propiedades y como esten seteadas...
revisa el .InputLen = x, creo q indica cuantos chars leer con el input
y tambien el .InputMode que indica como son los chars a recibir.

Suerte.
Título: RE: propiedad input del mscomm
Publicado por: IngLAOFX en 11 de Mayo de 2005, 03:36:00
Hola, respecto a lo de la lectura del buffer, lo determina la propiedad inputlen, cuando esta a 0, te lee todo el buffer, si la pones a 1, te lee solo un byte cada vez que utilizes la instruccion mscomm1.input,  y asi sucecivamente..

No soy un as en cuanto a visual basic, no se bien bien como maneja los datos,y todo eso, pero te contare mi experiencia:

Yo recibia a traves del serial una secuencia de datos, provenientes de un PIC que efectuaba conversiones analogico a digital, de 10 bits cada muestra, entonces, por cada muestra enviaba 2 bytes, la parte alta y la baja, por cada canal respectivamente.

Primero pense en leer el buffer cada 2 bytes, con inputlen=2, y despues en una variable, guardaba el primer byte, con la instruccion mid(), algo como sigue:

temp2 = mscomm1.input
temp1 = 256*asc(mid(temp2,1,1))
temp1 = temp1 + asc(mid(temp2,2,1))


y de esa manra, segun yo, obtenia en la variable temp1 el resultado de digamos el primer canal del adc, pero no....:S creo que fallaba debido a la forma en que maneja las cadenas el VB, como el modo de transmision estaba puesto en modotexto, pues habia algo que no entendia acerca de como trata el VB los datos, probe el modo binario y tampoco di con la solucion.

Asi que decidi establecer el inputlen =1, y aunque se extiende un poco el codigo, pero ahora si leia y procesaba lo que debia, y pum, asi arregle el problema de la lectura...Muchas risas espero haberme dado a entender..Muchas risas

Por lo pronto publicare un nuevo post para resolver una duda extra.. pero hasta pronto..Muchas risas