none
Intentar hacer funcionar este código en VB 6 RRS feed

  • Pregunta


  • Hola a todos y a todas:

    Estoy intentando hacer un buen diseño básico con VB 6 bajo Windows 7 de 64 bits.



    1) Se trata de una interfaz que con un botón llamado CONECTAR conecte a un puerto serie que haya en disposición en el comboBox.

    2) En el comboBox se añade automáticamente los puertos series físicos y virtuales detectados al ejecutar la aplicación o interfaz o tu programa de VB 6.

    3) Eliges en el comboBox el puerto serie detectado y pulsas el botón CONECTAR. Si hay un puerto seleccionado en el botón se cambia la palabra a DESCONECAR para desconectar el puerto serie. Si no detecta el puerto serie en el comobox, en el comobox se queda en blanco y el botón CONECTAR desactivado. Solo se activa si detecta algún puerto serie en el comobox.

    4) Los botones de ON y OFF es para enviar tramas o string por el puerto serie.
    Si pulsas ON exactamente por el puerto envías esto:

    Led_8_ON

    Lo mismo para el botón OFF, que envías estas tramas de bytes o string.

    Led_8_OFF

    5) Desde el otro lado del puerto serie tiene que recibir mensajes y mostrarlo en el cuadro Text con multiline activado tal como muestra en la imagen de arriba. Arduino o un PIC e incluso un PC les llega estos mensajes.

    Los mensajes que llega depende lo que se haya programado en Arduino o un PIC o un PC. Por ejemplo, si pulso el botón ON de VB 6. Envía al puerto serie Led_8_ON, ARduino lo detecta y le devuelve un mensaje o cadena de carácteres que dice:

    Led 8 encendido.

    He intentado que me salga pero no me sale mucho. Necesito ayuda en la programación, ya que no se parece nada al VB .net y para equipos viejos que usa Windows XP de 32 bits me va de maravilla.

    Un cordial saludos.

    http://electronica-pic.blogspot.com

    sábado, 28 de marzo de 2015 9:11

Todas las respuestas

  • Nuevo código completo que aún tiene errores.

    MSComm1.CommPort = ComboBoxCOM.ListIndex = 0

    Private Sub Command_CONECTAR_Click()
        If Not MSComm1.PortOpen Then
           MSComm1.PortOpen = True ' Abrir puerto serie.
           Command_CONECTAR.Caption = "DESCONECTAR"
        Else
           MSComm1.PortOpen = False ' Cerrar puerto serie.
           Command_CONECTAR.Caption = "CONECTAR"
        End If
    End Sub
    
        Private Sub Command_Led_8_OFF_Click()
        MSComm1.Output = "Led_8_OFF"
        End Sub
         
        Private Sub Command_Led_8_ON_Click()
        MSComm1.Output = "Led_8_ON"
        End Sub
         
        Private Sub Form_Load()
           'Form1.ComboBoxCOM.Clear ' Limpiar comboBox.
              MSComm1.CommPort = ComboBoxCOM.ListIndex = 0
        Timer1.Interval = 1       ' Correr el timer a 1 mls.
           Set WMIObjectSet = GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_PnPEntity") 'Win32_SerialPort")
           For Each wmiobject In WMIObjectSet
               If InStr(wmiobject.Name, "COM") Then   '
                 Form1.ComboBoxCOM.AddItem wmiobject.Name
               End If
                Next
           Set WMIObjectSet = Nothing
        End Sub
    
    Saludos.


    http://electronica-pic.blogspot.com

    sábado, 28 de marzo de 2015 13:45
  • Le recomiendo leer la documentación del control que usa, pues allí estará la respuesta que busca.  Yo diría que tiene que controlar el evento CommEvent para saber cuándo llegan datos por el puerto serie y luego entonces leerlos.

    Jose R. MCP
    Code Samples

    lunes, 30 de marzo de 2015 13:53