Solved

Checking Com Ports

Posted on 2000-04-10
4
499 Views
Last Modified: 2008-03-25
How do you check to see if a comm port is already in use ,and if so what application is using it.
cheers T
0
Comment
Question by:visualbasic
  • 2
4 Comments
 

Accepted Solution

by:
OTveit earned 50 total points
ID: 2700237
I use the ScanCom sub to find available com ports on my machine:

'Table of free COM ports
Public nPortFree(0 To MAXPORTS - 1) As Integer

'Make table over available COM Ports
Public Sub ScanCom(ByRef comObj As MSComm)
    Dim i As Integer
    For i = 0 To MAXPORTS - 1
       If (bolOpenSer(comObj, i + 1, 9600, 0, 8, 1)) Then
            nPortFree(i) = True
            comObj.PortOpen = False
        Else
            nPortFree(i) = False
        End If
    Next i
End Sub

Public Function bolOpenSer(ByRef comObj As MSComm, _
                        ByVal lngPno As Long, _
                        ByVal lngBaud As Long, _
                        ByVal lngParity As Long, _
                        ByVal lngDataBits As Long, _
                        ByVal lngStopBits As Long) As Boolean
    'Set Error Handling
    On Error GoTo ErrorHandler
   
    ' Open the serial port
    comObj.CommPort = lngPno
    comObj.Settings = strNumbersToSettings(lngBaud, lngParity,lngDataBits, lngStopBits)
    comObj.PortOpen = True    
    bolOpenSer = True
   
Exit Function
ErrorHandler:
    bolOpenSer = False
End Function
0
 
LVL 5

Expert Comment

by:Voodooman
ID: 2700953
Hi OTVeit!

Interesting Answer!

I am working on a Comms Routine to Update an Access Database at a Remote Location and this is useful even if I didnt ask the question!!

Thanks!!

Voodooman!

P.S. If anybody is using Serial Comms - try Greenleaf CommX.OCX - excellent tool!

0
 

Author Comment

by:visualbasic
ID: 2703178
Hello OTveit
could you post the function strNumbersToSettings
Also is there a way of checking the number of ports before you check are they in use.
Regards T
0
 

Expert Comment

by:OTveit
ID: 2707500
Here is the code for the funtion strNumbersToSettings (it's really simple).

To find the number of physical serial ports on your machine you could read the registry (use GetSetting, GetAllSettings):
\HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM


'-----------------------------------------------------------------------------
' Function: strNumbersToSettings
' Description: Converts Port Settings to String
' Input:    1. Baud Rate
'               2. Parity
'               3. Data Bits
'               4. Stop Bits
' Returns: Port settings as string
'------------------------------------------------------------------------------
Private Function strNumbersToSettings(ByVal lngBaud As Long, _
                                        ByVal lngParity As Long, _
                                        ByVal lngDataBits As Long, _
                                        ByVal lngStopBits As Long) As String
   
    'Error handling
    On Error GoTo ErrorHandler
   
    'Set default value
    strNumbersToSettings = "Not defined"
   
    'Settings Value
    strNumbersToSettings = lngBaud & ","
    strNumbersToSettings = strNumbersToSettings & Switch(lngParity = 0, "N", lngParity = 1, "E", lngParity = 2, "O") & ","
    strNumbersToSettings = strNumbersToSettings & lngDataBits & ","
    strNumbersToSettings = strNumbersToSettings & lngStopBits
   
Exit Function
ErrorHandler:
    strNumbersToSettings = "Not defined"
End Function

0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question