PROBLEMAS CON PUERTO SERIE
    
		    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 .
    --------------------------------------------------------------------------
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 .
