Si has intentado hacer funcionar el convertidor de RS232 a RF te habrás dado cuenta que ya no basta solo con enchufarlo, sino que hay que configurarlas en el mismo programa que estés utilizando.
Creo que se pueden activar mediante algún software para control del puerto, pero aquí voy a poner un ejemplo de como activarlo en Visual Basic 6.
En concreto los apartados DTREnable y RTSEnable del control MScomm1.
Además de como utilizar el CTSHolding y DSRHolding para que nos indique si esta activado o no.
Aquí os dejo un ejemplo en Visual Basic 6 para activar DTR y RST:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1
Caption = "Activa DTR y RTS"
ClientHeight = 3165
ClientLeft = 60
ClientTop = 405
ClientWidth = 7065
LinkTopic = "Form1"
ScaleHeight = 3165
ScaleWidth = 7065
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton Command8
Caption = "Cerrar Puerto COM"
Height = 375
Left = 480
TabIndex = 8
Top = 840
Width = 1575
End
Begin VB.CommandButton Command7
Caption = "Apagar RTS"
Height = 375
Left = 5160
TabIndex = 7
Top = 840
Width = 1335
End
Begin VB.CommandButton Command6
Caption = "Apagar DTR"
Height = 375
Left = 5160
TabIndex = 6
Top = 240
Width = 1335
End
Begin MSCommLib.MSComm MSComm1
Left = 2160
Top = 480
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
End
Begin VB.CommandButton Command5
Caption = "Limpiar"
Height = 375
Left = 1800
TabIndex = 5
Top = 2640
Width = 1095
End
Begin VB.CommandButton Command4
Caption = "Abrir Puerto COM"
Height = 375
Left = 480
TabIndex = 4
Top = 240
Width = 1575
End
Begin VB.CommandButton Command3
Caption = "Enviar"
Height = 375
Left = 480
TabIndex = 3
Top = 2640
Width = 1095
End
Begin VB.CommandButton Command2
Caption = "Activar RTS"
Height = 375
Left = 3120
TabIndex = 2
Top = 840
Width = 1335
End
Begin VB.CommandButton Command1
Caption = "Activar DTR"
Height = 375
Left = 3120
TabIndex = 1
Top = 240
Width = 1335
End
Begin VB.TextBox Text1
Height = 975
Left = 480
TabIndex = 0
Top = 1560
Width = 6015
End
Begin VB.Shape Shape2
BackStyle = 1 'Opaque
Height = 375
Left = 4560
Shape = 3 'Circle
Top = 840
Width = 495
End
Begin VB.Shape Shape1
BackStyle = 1 'Opaque
Height = 375
Left = 4560
Shape = 3 'Circle
Top = 240
Width = 495
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
If MSComm1.PortOpen = True Then
MSComm1.DTREnable = True 'Activa la linea DTR
Command6.Enabled = True
Command1.Enabled = False
End If
End Sub
Private Sub Command2_Click()
If MSComm1.PortOpen = True Then
MSComm1.RTSEnable = True 'Aactiva la linea RTS
Command7.Enabled = True
Command2.Enabled = False
End If
End Sub
Private Sub Command3_Click()
If MSComm1.PortOpen Then
MSComm1.Output = Text1.Text + Chr$(13) + Chr$(10)
Else
MsgBox ("Se debe abrir el puerto")
End If
Text1.SetFocus
End Sub
Private Sub Command4_Click()
On Error Resume Next
MSComm1.PortOpen = True
If MSComm1.PortOpen Then
Command1.Enabled = True
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = False
Command5.Enabled = True
Command8.Enabled = True
End If
End Sub
Private Sub Command5_Click()
Text1.Text = ""
Text1.SetFocus
End Sub
Private Sub Command6_Click()
If MSComm1.PortOpen = True Then
MSComm1.DTREnable = False 'Desactiva la linea DTR
Command1.Enabled = True
Command6.Enabled = False
End If
End Sub
Private Sub Command7_Click()
If MSComm1.PortOpen = True Then
MSComm1.RTSEnable = False 'Desactiva la linea RTS
Command2.Enabled = True
Command7.Enabled = False
End If
End Sub
Private Sub Command8_Click()
MSComm1.PortOpen = False
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = True
Command5.Enabled = False
Command6.Enabled = False
Command7.Enabled = False
Command8.Enabled = False
End Sub
Private Sub Form_Load()
Command1.Enabled = False 'Defino los botones, esto se puede hacer directamente
Command2.Enabled = False 'Esto se puede hacer mucho más limpio, pero es que hice en
Command3.Enabled = False 'En plan rápido
Command5.Enabled = False
Command6.Enabled = False
Command7.Enabled = False
Command8.Enabled = False
Shape1.BackColor = &H8000000F
Shape2.BackColor = &H8000000F
'Definimos los parámetros del puerto COM
MSComm1.CommPort = 1
MSComm1.Settings = "2400,N,8,1"
MSComm1.DTREnable = False 'Desactivamos el DTREnable
MSComm1.RTSEnable = False 'Desactivamos el RTSEnable
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvCTS
If MSComm1.CTSHolding Then 'Esto muestra que la linea esta activa y corresponde
Shape2.BackColor = vbRed ' al pin 8 del db9 (CLEAR TO SEND)
Else
Shape2.BackColor = &H8000000F
End If
Case comEvDSR
If MSComm1.DSRHolding Then 'Esto muestra que la linea esta activa y corresponde
Shape1.BackColor = vbRed 'al pin 6 del db9 (DATA SET READY)
Else
Shape1.BackColor = &H8000000F
End If
End Select
End Sub
Fuente:
https://toyscaos.tripod.com/serial2.html Donde podéis encontrar otro ejemplo en Visual Basic 6 relacionado con DTR y RTS.
Otros artículos sobre Visual Basic 6.0 que te pueden interesar:
- La Rueda del ratón en el IDE de VB6 en W7 y XP
- Visual Basic 6.0 y base de datos Access
- Coche RC Visual Basic 6
Saludos a todos y todas, nos vemos en la próxima entrada!!!
No hay comentarios :
Publicar un comentario