You are here:
ActiveXperts.com > Serial Port Component > How to Use Serial Port Component > Visual Basic 6.x
Quicklinks
ActiveXperts Serial Port Component is a software development kit (SDK) that enables the user to communicate to a device over a serial interface.
Such a device can be: a weight indicator, a modem, a scanner, or any other device that is equiped with a serial port. It can even be another PC, connected via a NULL modem cable.
ActiveXperts Serial Port Component features the following:
Download the ActiveXperts Serial Port Component from the ActiveXperts Download Site and start the installation. The installation guides you through the installation process.
Launch 'Microsoft Visual Basic' from the Start menu, and choose 'New' from the 'File Menu'. The 'New Project' dialog appears.
Select 'Standard Exe' and click 'OK':
(Click on the picture to enlarge)
A new Project is created, with a blank form.
First, you must add a reference to Serial Port Component in the project to be able to use the object. To do so, choose 'References...' from the 'Project' menu. In the 'References' dialog that pops up, enable the 'Serial Port Component 2.2 Type Library' reference as shown in the following picture:
(Click on the picture to enlarge)
Click 'OK' to close the 'References...' dialog.
Then, select the Project form and choose 'View Code' from the context menu:
(Click on the picture to enlarge)
On top of your code, declare the following object:
Public objComport As AxSerial.ComPort
From the Code window, select 'Form'. The Private Sub 'Form_Load()' will be displayed now.
In the 'Form Load' function, create the object in the following way:
Set objComport = CreateObject("AxSerial.ComPort")
You can now send and/or receive data to and/or from a serial device.
The following code shows how to query a modem:
' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' DO NOT FORGET: ADD A REFERENCE TO THE SERIAL PORT COMPONENT LIBRARY FROM THE PROJECT->REFERENCE
' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Public lTimerID As Long
Public objComport As AxSerial.ComPort
Private Sub buttonSubmit_Click()
textReceived = ""
objComport.WriteString (textSend)
GetResult
End Sub
Private Sub buttonView_Click()
If FileExists(textLogfile.Text) = True Then
Shell "notepad " + textLogfile.Text, vbNormalFocus
End If
End Sub
Private Sub CheckDTR_Click()
objComport.RaiseDTR (CheckDTR.Value)
GetResult
End Sub
Private Sub CheckRTS_Click()
objComport.RaiseRTS (CheckRTS.Value)
GetResult
End Sub
Public Function FileExists(sFileName As String) As Boolean
FileExists = CBool(Len(Dir$(sFileName))) And CBool(Len(sFileName))
End Function
Private Sub Form_Load()
textSend = "AT"
Set objComport = CreateObject("AxSerial.ComPort")
objComport.ComTimeout = 100
For i = 0 To objComport.GetDeviceCount() - 1
comboDevice.AddItem (objComport.GetDevice(i))
Next
comboDevice.AddItem "COM1"
comboDevice.AddItem "COM2"
comboDevice.AddItem "COM3"
comboDevice.AddItem "COM4"
comboDevice.AddItem "COM5"
comboDevice.AddItem "COM6"
comboDevice.AddItem "COM7"
comboDevice.AddItem "COM8"
comboDevice.ListIndex = 0
comboSpeed.AddItem "Default"
comboSpeed.AddItem "110"
comboSpeed.AddItem "300"
comboSpeed.AddItem "600"
comboSpeed.AddItem "1200"
comboSpeed.AddItem "2400"
comboSpeed.AddItem "4800"
comboSpeed.AddItem "9600"
comboSpeed.AddItem "14400"
comboSpeed.AddItem "19200"
comboSpeed.AddItem "38400"
comboSpeed.AddItem "57600"
comboSpeed.AddItem "64000"
comboSpeed.AddItem "115200"
comboSpeed.AddItem "128000"
comboSpeed.AddItem "256000"
comboSpeed.ListIndex = 0
comboHWFlowControl.AddItem "Default"
comboHWFlowControl.AddItem "Disable"
comboHWFlowControl.AddItem "Enable"
comboHWFlowControl.ListIndex = 0
comboSWFlowControl.AddItem "Default"
comboSWFlowControl.AddItem "Disable"
comboSWFlowControl.AddItem "Enable"
comboSWFlowControl.ListIndex = 0
comboDataFormat.AddItem "Default"
comboDataFormat.AddItem "8,n,1"
comboDataFormat.AddItem "7,e,1"
comboDataFormat.ListIndex = 0
textReceived = ""
EnableControls
End Sub
Private Sub buttonOPEN_Click()
objComport.Device = comboDevice.List(comboDevice.ListIndex)
If (comboSpeed.Text = "Default") Then
objComport.BaudRate = 0
Else
objComport.BaudRate = comboSpeed.Text
End If
objComport.LogFile = textLogfile.Text
objComport.HardwareFlowControl = comboHWFlowControl.ListIndex
objComport.SoftwareFlowControl = comboSWFlowControl.ListIndex
If (comboDataFormat.ListIndex = 0) Then
objComport.DataBits = objComport.asDATABITS_DEFAULT
objComport.StopBits = objComport.asSTOPBITS_DEFAULT
objComport.Parity = objComport.asPARITY_DEFAULT
End If
If (comboDataFormat.ListIndex = 1) Then
objComport.DataBits = objComport.asDATABITS_8
objComport.StopBits = objComport.asSTOPBITS_1
objComport.Parity = objComport.asPARITY_NONE
End If
If (comboDataFormat.ListIndex = 2) Then
objComport.DataBits = objComport.asDATABITS_7
objComport.StopBits = objComport.asSTOPBITS_1
objComport.Parity = objComport.asPARITY_EVEN
End If
objComport.Open
GetResult
EnableControls
End Sub
Private Sub buttonClose_Click()
objComport.Close
GetResult
EnableControls
End Sub
Private Sub Form_Unload(Cancel As Integer)
Timer1.Enabled = False
End Sub
Private Sub EnableControls()
Dim bOpened
bOpened = objComport.IsOpened
CheckDTR.Enabled = bOpened
CheckRTS.Enabled = bOpened
checkCTS.Enabled = bOpened
checkDCD.Enabled = bOpened
checkRI.Enabled = bOpened
checkDSR.Enabled = bOpened
buttonOpen.Enabled = bOpened + 1
buttonClose.Enabled = bOpened
buttonSubmit.Enabled = bOpened
Timer1.Enabled = bOpened
End Sub
Private Sub linkErrorCodes_Click()
Shell "Explorer http://www.activexperts.com/support/errorcodes/Index.asp"
End Sub
Private Sub linkWebsite_Click()
Shell "Explorer http://www.activexperts.com"
End Sub
Private Sub Timer1_Timer()
Dim strString
strString = objComport.ReadString
If (strString <> "") Then
textReceived = textReceived & strString & vbCrLf
End If
checkDCD.Value = Abs(objComport.QueryDCD)
checkCTS.Value = Abs(objComport.QueryCTS)
checkDSR.Value = Abs(objComport.QueryDSR)
checkRI.Value = Abs(objComport.QueryRI)
End Sub
Private Sub GetResult()
If objComport.LastError = 0 Then
textResult.Caption = "SUCCESS"
Else
textResult.Caption = "ERROR " & objComport.LastError & " ( " & _
objComport.GetErrorDescription(objComport.LastError) & " )"
End If
End Sub
There are many working samples included with the product. You can also find them on the ActiveXperts FTP site: ftp.activexperts-labs.com/samples/serial-port-component.