PROBLEMAS CON PUERTO SERIE

iruel
21 de Diciembre del 2005
Hola gente, como va? Mi problema en esta ocacion es el siguiente: tengo un código que me permite enviar y recibir datos con el puerto serie (comm). El programa sirve para leer códigos de barra, y para enviar mensajes escritos hacia la placa controladora del la pistola. El tema es que necesito hacer una función para no escribir un sinfin de rutinas para cada cosa que tengo que mostrar. Les muestro lo que hice:
--------------------------------------------------------------------------
var3 = ""
var3 = cabecera & var2 & final

'ACA ES DONDE DECIDO: SI LA FUNCION O LOS 3 'FOR'. LA 'FUNCION AUN NO SIRVE.
'LOS 'FOR' SÍ.

'envio (var3)

For i = 1 To Len(cabecera) Step 2
comm.Output = Chr$(Val("&h" & Mid(cabecera, i, 2)))
demora 10
Next i

For i = 1 To Len(mensaje) * 2 Step 2
comm.Output = Chr$(Val("&h" & Mid(var2, i, 2)))
demora 10
Next i

For i = 1 To Len(final) Step 2
comm.Output = Chr$(Val("&h" & Mid(final, i, 2)))
demora 10
Next i
--------------------------------------------------------------------------
Private Sub envio(mensaje As String)
Dim a As String

a = mensaje
For i = 1 To Len(a) Step 2
comm.Output = Chr$(Val("&h" & Mid(mensaje, i, 2)))
demora 10
Next i

End Sub
--------------------------------------------------------------------------
Explico un poco el código:
1)1º Parte: parte del código de un cmd que envía los datos al puerto. 'cabecera' y 'final' son dos cadenas que armo yo pasándoles caracteres específicos para que la placa controladora de la pistola "se de cuenta" de que es el principio y fin de un mensaje en el protocolo del código de barras. 'var2' es la variable que contiene el mensaje que se pasó desde el formulario (en un textbox), sumado a otros caracteres específicos que sirven para algunas cosas sin importancia .
La función 'demora' sirve para hacer un delay entre cada envío (al puerto hay que pasarle de a 1 caracter).

2)2º Parte: la función que reemplazaría los 'for' del código del cmd. Lo que hice fue concatenar las 3 cadenas del protocolo y hacer un solo 'for'. no se porqué, pero no anda. En teoría es lo mismo, pero...

Bueh, si alguno se da cuenta (porque ya estoy bastante quemado con esto y quizas sea uan huevada que no veo) de mi error, o sabe algo acerca de este tema, lo invito a
dejar su respuesta. gracias!

PD: si alguno quiere el código completo del programa,
posteé aca el mismo y lo envío .