none
puerto serie RRS feed

  • Pregunta

  • Repito esta consulta aqui por indicacion de Metaconta (Gracias)

    Mi problema es el siguiente: Quiero pasar una aplicacion que tengo en VB6 a VB10. Me encuentro con que el lenguaje es algo diferente y se escapa a mis conocimientos actuales.

    Lo que hace la aplicacion, exclusivamente a la parte en relacion al puerto serie, es enviar una señal que sale por RTS y verificar la entrada, (haciendola entrar nuevamente por CTS). En el medio hay un interreputor que permite cortar o no la continuidad de la señal.

    Lo he podido hacer en VB10 poniendo CTSholding dentro de un timer. De esta manera funciona bien.

    El tema es que en VB6 no lo tenia dentro de un timer si no dentro de Private Sub MSComm1_OnComm(), y los cambios de estado true/false de la señal se verificaban sin necesidad de estar dentro de un timer.

    La pregunta en concreto es de que manera debo trasladar esta parte de codigo para que sea reconocido por VB10.

    Me ha dicho LUIS XCII que:

    Debes establecer un delegado de tipo SerialPinChangedEventHandler para el evento PinChanged.

    Tal vez debas establecer otro delegado en tu formulario para poder invocar algún cambio en la gui desde el handler del evento.

    Supongo que tendra razon pero no alcanzo a entenderlo.

    Os dejo el codigo en VB6 y en negrita la parte para la cual necesito encontrar equivalente en VB10.

    Son pocos lineas, me seria de utilidad si me podeis dar un ejemplo aplicado o enlaces a codigos similares.

    Muchas gracias a todos.

    Dim paso As Single
    Dim a As Boolean
    
    Private Sub Form_Load()
    MSComm1.CommPort = 11 ' señala el COM11
    MSComm1.PortOpen = True ' abre el puerto
    End Sub
    
    Private Sub MSComm1_OnComm()
    If a = True Then
        If MSComm1.CTSHolding = False Then
        paso = paso + 1 ' agrega 1 al contador
        Beep ' suena
        Label1.Caption = paso ' muestra contador
        a = False
        End If
    Else
        If MSComm1.CTSHolding = True Then
        a = True
        End If
    End If
    End Sub


    viernes, 4 de mayo de 2012 12:30

Respuestas

Todas las respuestas