Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find serial port where my device is connected

I'm starting to work with a pinpad. I need that my program find the port where the pinpad is connected without user interaction.

I tried with:

Dim searcher As New ManagementObjectSearcher("root\cimv2","SELECT * FROM Win32_SerialPort")

        For Each queryObj As ManagementObject In searcher.Get()
          MsgBox(queryObj("Name"))
        Next

but this only give me "COM1" and "COM2" as an answer (My device is connected to COM4)

and with

Dim searcher As New ManagementObjectSearcher("root\cimv2", "SELECT * FROM Win32_PnPEntity WHERE ConfigManagerErrorCode = 0")

        For Each queryObj As ManagementObject In searcher.Get()
            MsgBox(queryObj("Name"))
        Next

With this one I can see my device friendly name but I don´t know how to get the port (I receive the names like 'HP printer')

Any idea of how can I get the port that I need?

Thanks in advance

like image 811
DenLun Avatar asked Oct 21 '22 18:10

DenLun


1 Answers

Based on the comments it sounds like your device is a USB device that has a driver that causes it to appear to be (emulates) a serial port attached device. In that case I would use:

My.Computer.Ports.SerialPortNames

to enumerate and loop over all serial ports. Then, one at a time try to open each one and send a command to the device that you know it responds to. Most devices have some kind of heartbeat or keep alive message that they will respond to. Whichever port you get a response on is the port you need to use.

like image 135
Shane Wealti Avatar answered Oct 23 '22 22:10

Shane Wealti