Problema con el MSCOMM
Publicado por Omar (3 intervenciones) el 28/06/2008 04:32:16
Hola a todos, mi problema es el siguiente:
Estoy haciendo una aplicacion para mi teis, esta utiliza comunicacion USB CDC por lo que estoy creando un puerto comm virtual, de entre las diferentes funciones la aplicacion tiene un boton donde comienza una prueba y se comunica con un hardware que yo fabrique, y tiene otro boton pata detener dicha prueba, si yo comienzo y detengo muchas veces la prueba mi aplicacion se queda congelada hasta que desconecto el hardware del puerto USB y el programa regresa a su funcionamiento normal, el problema es cuando detengo la prueba, ahora lo extraño aqui es que si yo ejecuto el programa linea a linea en la parte de la detencion de la prueba, el programa no se congela, quisiera saber cual podria ser el problema.
Aqui estan las partes de codigo:
CON ESTO SE INICIA LA PRUEBA
Private Sub comienza_Click()
Dim mensaje As String
If consulta = 1 Then 'si se estaba viendo los estimulos de pruebas anteriores, entonces antes de comenzar la prueba se deben borrar primero los estimulos que se estan mostrando
tabla_t.Clear 'ya que se pueden alterar los resultados de las pruebas nuevas
consulta = 0 'ya ahora no hay consultas por que se inicio una prueba
End If
If cargo = 1 Then
If e_disciplina.Caption = "Karate" Then 'si es karateca entonces comienza la prueba normalmente
If puertocomm1.PortOpen = False Then 'checo si no esta abierto el puerto
puertocomm1.PortOpen = True 'si no lo esta entonces que lo abra
puertocomm1.Output = "10"
End If
ASI DETENGO LA PRUEBA
Private Sub Detener_Click()
Dim mensaje As String, j As Integer, renglon() As String, q As Integer
j = 0 'inicializacion de variable
ReDim renglon(0) 'esto es para darle un tamaño incial al array, si no se hace habra probelmas
If puertocomm1.PortOpen = False Then
mensaje = MsgBox("La prueba ya esta detenida", 48, "T. R. V.") 'mensaje de texto
GoTo fin
ElseIf puertocomm1.PortOpen = True Then 'si el puerto esta abierto entonces procede
puertocomm1.Output = "2" 'manda el caracter de detencion de la puerba
tabla_t.AddItem ("------------") 'separador entre pruebas realizadas
NumeroDeEstimulos = 0
puertocomm1.PortOpen = False 'y cierra el puerto
Esta ultima parte si realizo la ejecucion de ese codigo linea a linea el problema no se presenta nunca.
Tengo windows XP y estoy programando en visual basic 6
espero puedan ayudarme gracias.
Estoy haciendo una aplicacion para mi teis, esta utiliza comunicacion USB CDC por lo que estoy creando un puerto comm virtual, de entre las diferentes funciones la aplicacion tiene un boton donde comienza una prueba y se comunica con un hardware que yo fabrique, y tiene otro boton pata detener dicha prueba, si yo comienzo y detengo muchas veces la prueba mi aplicacion se queda congelada hasta que desconecto el hardware del puerto USB y el programa regresa a su funcionamiento normal, el problema es cuando detengo la prueba, ahora lo extraño aqui es que si yo ejecuto el programa linea a linea en la parte de la detencion de la prueba, el programa no se congela, quisiera saber cual podria ser el problema.
Aqui estan las partes de codigo:
CON ESTO SE INICIA LA PRUEBA
Private Sub comienza_Click()
Dim mensaje As String
If consulta = 1 Then 'si se estaba viendo los estimulos de pruebas anteriores, entonces antes de comenzar la prueba se deben borrar primero los estimulos que se estan mostrando
tabla_t.Clear 'ya que se pueden alterar los resultados de las pruebas nuevas
consulta = 0 'ya ahora no hay consultas por que se inicio una prueba
End If
If cargo = 1 Then
If e_disciplina.Caption = "Karate" Then 'si es karateca entonces comienza la prueba normalmente
If puertocomm1.PortOpen = False Then 'checo si no esta abierto el puerto
puertocomm1.PortOpen = True 'si no lo esta entonces que lo abra
puertocomm1.Output = "10"
End If
ASI DETENGO LA PRUEBA
Private Sub Detener_Click()
Dim mensaje As String, j As Integer, renglon() As String, q As Integer
j = 0 'inicializacion de variable
ReDim renglon(0) 'esto es para darle un tamaño incial al array, si no se hace habra probelmas
If puertocomm1.PortOpen = False Then
mensaje = MsgBox("La prueba ya esta detenida", 48, "T. R. V.") 'mensaje de texto
GoTo fin
ElseIf puertocomm1.PortOpen = True Then 'si el puerto esta abierto entonces procede
puertocomm1.Output = "2" 'manda el caracter de detencion de la puerba
tabla_t.AddItem ("------------") 'separador entre pruebas realizadas
NumeroDeEstimulos = 0
puertocomm1.PortOpen = False 'y cierra el puerto
Esta ultima parte si realizo la ejecucion de ese codigo linea a linea el problema no se presenta nunca.
Tengo windows XP y estoy programando en visual basic 6
espero puedan ayudarme gracias.
Valora esta pregunta


0