首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C#中获取新连接的USB设备的COM端口(串口)

在C#中获取新连接的USB设备的COM端口(串口),可以通过使用System.Management命名空间下的ManagementEventWatcher类和WqlEventQuery类来实现。

首先,需要引用System.Management命名空间,并创建一个ManagementEventWatcher对象和一个WqlEventQuery对象。然后,使用WqlEventQuery对象设置查询条件,以便监听USB设备的连接和断开事件。

下面是一个示例代码:

代码语言:txt
复制
using System;
using System.Management;

public class USBWatcher
{
    private ManagementEventWatcher watcher;

    public void StartWatching()
    {
        WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2 or EventType = 3");
        watcher = new ManagementEventWatcher(query);
        watcher.EventArrived += new EventArrivedEventHandler(USBEventArrived);
        watcher.Start();
    }

    public void StopWatching()
    {
        if (watcher != null)
        {
            watcher.Stop();
            watcher.Dispose();
        }
    }

    private void USBEventArrived(object sender, EventArrivedEventArgs e)
    {
        ManagementBaseObject instance = (ManagementBaseObject)e.NewEvent["TargetInstance"];
        string eventType = (string)e.NewEvent["EventType"];

        if (eventType == "2") // USB设备连接事件
        {
            string deviceName = (string)instance["Name"];
            string comPort = GetCOMPort(deviceName);

            Console.WriteLine("USB设备已连接:{0},COM端口:{1}", deviceName, comPort);
        }
        else if (eventType == "3") // USB设备断开事件
        {
            string deviceName = (string)instance["PreviousInstanceName"];
            string comPort = GetCOMPort(deviceName);

            Console.WriteLine("USB设备已断开:{0},COM端口:{1}", deviceName, comPort);
        }
    }

    private string GetCOMPort(string deviceName)
    {
        // 在这里编写获取COM端口的逻辑
        // 可以使用System.IO.Ports.SerialPort类来获取已连接的串口设备信息

        return "COM1"; // 假设返回COM1端口
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        USBWatcher usbWatcher = new USBWatcher();
        usbWatcher.StartWatching();

        Console.WriteLine("正在监听USB设备连接和断开事件,请按任意键退出...");
        Console.ReadKey();

        usbWatcher.StopWatching();
    }
}

上述代码中,USBWatcher类封装了USB设备的连接和断开事件的监听逻辑。在StartWatching方法中,创建了一个WqlEventQuery对象,并设置查询条件为Win32_DeviceChangeEvent的EventType为2(USB设备连接事件)或3(USB设备断开事件)。然后,通过ManagementEventWatcher对象的EventArrived事件处理程序USBEventArrived来处理事件。在USBEventArrived方法中,可以通过ManagementBaseObject对象获取USB设备的相关信息,如设备名称。然后,可以调用GetCOMPort方法来获取USB设备的COM端口。

需要注意的是,GetCOMPort方法中需要编写获取COM端口的逻辑。可以使用System.IO.Ports.SerialPort类来获取已连接的串口设备信息。具体的实现方式根据实际需求和环境而定。

这是一个基本的实现示例,具体的应用场景和推荐的腾讯云相关产品和产品介绍链接地址需要根据实际情况进行选择和提供。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

c# 获取串口设备的输入(unsigned char *和 char*)

其实就是简单的获取用户输入密码的操作,没碰到什么大的问题,但是查资料的过程中还是感觉查到的东西挺多的,是那种越查越多,但是又不是很关键的东西。...在调用DLL中的方法的时候,我们一般要对照函数说明来把C/C++中的类型转换为.NET中相对应的类型,而且方法必须声明为静态外部函数,即加上public  extern static声明头.如果不加public...= "cc";C/C++在表示字符串的时候是以字符数组来表示的,char[] c; 在调用包括指针操作的函数的时候,除了对照类型,我们还得考虑采用的处理方式。 ...使用:已密码键盘获取密码输入为例 函数说明:int __stdcall inputpassword(unsigned char *param) .NET中使用: 声明: [DllImport("COM...://msdn.microsoft.com/zh-cn/library/f58wzh21(VS.80).aspx     fixed(byte* array=password ) //这里获取的是password

2.4K110
  • 在IoT设备中查找端口对应进程的四种方法

    这里我们列出了四种方法来查找某个端口当前正在运行的服务,如果师傅们还有什么其他好的想法欢迎交流 我们平时在测试物联网设备的时候,可能通过特殊方法获取了当前的设备的shell【如串口等等】。...这时,我们往往需要查找该设备开启端口对应的服务,再对该服务进行测试。...但是在通过端口查找进程的过程中可能会遇到一些问题,因为物联网中的Linux系统往往经过精简,很多命令的参数无法使用 1 使用netstat 这是最常用的方法之一,Netstat可以用来显示显示网络连接,...路由表,网络接口状态等等 Netstat在桌面版或者是服务器版的Linux上使用一般没有问题,但是该命令在嵌入式系统中往往被精简 sudo netstat -tulpn 从图中我们可以看到8000端口上运行的服务是...ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。

    1.3K21

    在AvaotaA1全志T527开发板上使用 UART 连接开发板

    确认串口设备 将配套的TypeC线一段正接至开发板的串口/供电接口,另一端连接至电脑USB接口,连接成功后板载的电源灯会闪烁。...对于Windows系统 此时Windows设备管理器 在 端口(COM和LPT) 处会多出一个串口设备,一般是以 USB-Enhanced-SERIAL CH340开头,您需要留意一下后面的具体COM编号...如上图,COM号是35,我们接下来连接所使用的串口号就是35。 对于Linux系统 可以查看是否多出一个/dev/tty设备,一般情况设备节点为 /dev/ttyACM0 。...使用Mobaxterm登录串口 ​ 打开MobaXterm,点击左上角的 Session ,在弹出的界面选中 Serial ,如下图所示选择端口号(前面设备管理器显示的端口号COM35)、波特率(Speed...注意:流控(Flow Control)一定要选择none,否则你将无法在MobaXterm中向串口输入数据 进入系统shell 使用串口工具成功打开串口后,可以直接按下 Enter 键 进入shell,

    22710

    Android USB口通信开发基本流程,USB传输的4种模式

    采用块传送方式的信道所占用的 USB 带宽,在实时带宽分配中具有最高的优先级 (3) 同步传输模式,同步传输适用于那些要求资料连续地、实时地、以固定的数据传输率产生、传送并消耗的场合,如数字录像机等。...刷卡器 Android开发中USB串口通信开发主要涉及到以下几个类及相应的方法:  1 ,UsbManager:负责管理USB设备的类,你可以在相应代码中通过以下方法获得 //获取UsbManager...是的,这个类就代表了android所连接的usb设备。...); 在第二步中,我们已经获取了数据的输出端口usbEndpointIn,我们向外设发送数据就是通过这个端口来实现的。...15 15 }; 16 16 17 17 mSerialIoManager = new SerialInputOutputManager(sPort, mListener);//添加监听 18 //在新的线程中监听串口的数据变化

    32610

    【Unity3D】Unity3d 与串口的通信程序的开发,软件硬件结合

    一、c#实现串口通信程序的开发 C#串口介绍以及简单串口通信程序设计实现 简单的串口通信工具,基于C#应用程序WinFrom实现 串口介绍 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM...[在这里插入图片描述] 先做一个简单的UI,用来控制串口设备的开关 代码就比较简单了 自定义端口API类 using System; //先要引入这个命名空间 using System.IO.Ports...; //这个是连接上的串口设备的定义好的参数,发送这个参数就能控制串口设备 public enum PortsType { //01、全开:PC发送'I'; //02、全关:PC发送'i...,一会说怎么看端口,第二个参数是波特率,这个是设备自身的参数 SerialPort sp = new SerialPort("COM3", 9600);//声明一个串口类 //...这个是完整的参数,名别是 端口名、波特率、奇偶效验、数据位、流控制参数 //SerialPort sp1 = new SerialPort("COM3", 9600, Parity.None,

    2.6K31

    嵌入式入门级学习——基于国产平台T3开发板的测试教程(3)

    /devices/usbc0.2/otg_role //查看当前USB模式 ​ 图 52 ​ 图 53 将U盘中的图片bootlogo.bmp拷贝至PC机中,在PC机查看图片是否正常显示,接着再把图片从电脑拷贝至...图 55 打开设备管理器,本次测试中调试串口USB TO UART0端口号为COM9,UART6串口的端口号为COM4,如下图所示。 ​...将评估板的RS232串口连接至PC机的USB接口,如下图所示。 ​...图 62 打开设备管理器,本次测试中调试串口USB TO UART0端口号为COM9,RS232 UART3串口的端口号为COM12,如下图所示。 ​...图 69 打开设备管理器,本次测试中调试串口USB TO UART0端口号为COM9,RS485 UART4串口的端口号为COM12,如下图所示。 ​

    5.3K31

    C#中的串口通信

    自IBM PC/AT开始使用简化了的9芯D型插座。至今25芯插头座现代应用中已经很少采用。电脑一般有两个串行口:COM1和COM2,9针D形接口通常在计算机后面能看到。...USB接口速度快、连接简单、不需要外接电源,传输速度12Mbps,新的USB 2.0可达480Mbps;电缆最大长度5米,USB电缆有4条线:2条信号线,2条电源线,可提供5伏特电源,USB电缆还分屏蔽和非屏蔽两种...端口COM7不存在”。...适用于停止位的位数 越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 5. Parity 获取或设置奇偶校验检查协议    默认值None 在串口通信中一种简单的检错方式。...这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收 串口(COM)读写操作的三种方式: 第1种方式是采用微软在.NET2.0推出了一个串口控件,SerialPort类

    2.8K32

    MCGS的TPC透明传输说用说明

    2) 以太网的端口号编辑框中输入要监听的端口号,一般情况,默认即可。 3) 串口的端口选择TPC与PLC连接的端口,其他参数与PLC端参数一致。 4) 点击“启动穿透”按钮,TPC进入穿透模式。...2) 如果还未安装虚拟驱动则点击“安装”按钮开始安装虚拟驱动,安装完成后,自动在界面上显示安装的串口号,安装的串口可在设备管理器中查看,如图 3。...穿透通讯 在计算机上,PLC软件可通过透明传输软件上显示的串口与PLC进行通信。以三菱PLC编程软件为例,如图 4,在PLC变成软件设置中通信的串口输入虚拟串口。...图 5 2) 串口的端口选择TPC与PLC连接的端口,其他参数与PLC端参数一致; 3) 点击“启动穿透”按钮,TPC进入穿透模式。 2....备注: 1)在测试LS K120S时出现,编号最大的COM口为COM 8。安装虚拟串口编号大于COM 8,就需要更改虚拟串口号。

    2.1K30

    百问网全志V853开发板启动方式及基础功能测试详解

    打开电脑的“设 备管理器”,在“端口(COM和LPT)”项下,可以看到如3.3中的“(COM13)”。开发板上的USB串口芯片可能是CP210x或CH9102,它们的性能是一样的。...图 四.3 串口在设备管理器中的表示 ​ 如果电脑没有显示出端口号,就需要手动安装驱动,从驱动精灵官网(www.drivergenius.com)下载一个驱动精灵,安装、运行、检测,会自动安装上串口驱动...打开MobaXterm,点击左上角的“Session”,在弹出的界面选中“Serial”,如下图所示选择端口号(前面设备管理器显示的端口号COM13)、波特率(Speed 115200)、流控(Flow...注意:流控(Flow Control)一定要选择none,否则你将无法在MobaXterm中向串口输入数据。...打开Ubuntu虚拟机,接入OTG线,如图3.所示,虚拟机会弹出检测到新的USB设备Google Tina ADB,点击“连接到虚拟机”,选择虚拟机的名称“100ASK_V853_ubuntu_18.04

    14410

    超越连接:ZL-450边缘网关全面评测与应用案例

    本文将对ZL450进行深入的设备测评,探索其在实际应用中的表现及其对现代化工业生态的贡献。...支持TDD-LTE、FDD-LTE网络数据连接、静态 IP 地址和 DHCP 自动获取 IP 地址,同时可为用户提供数据传输、协议解析等功能。...其中会涉及到上位机的使用,设备的配置,与OneNET的对接。 下面让我们开始吧。 驱动安装,串口配置 首先将设备通过USB连接到电脑,并在电脑打开上位机软件 DevelopLink SDRTU。...与之前串口服务器ZL500不同的是,ZL450需要使用一个新的USB驱动。...按照驱动后,进入到设置页面,会弹出,设备的端口,一个是用于调试的日志端口,一个是用于传输数据的端口。配置配置相应的串口,并打开串口。 配置如下: 打开串口后就看到设备的一些数据和日志啦。

    20710

    Android USB转串口通信开发基本流程

    是的,这个类就代表了android所连接的usb设备。...2.打开设备 接下来,我们需要打开刚刚搜索到的usb设备,我们可以将平板与usb外设之间的连接想象成一个通道,只有把通道的门打开后,两边才能进行通信。...一般来说,在没有定制的android设备上首次访问usb设备的时候,默认我们是没有访问权限的,因此我们首先要判断对当前要打开的usbDevice是否有访问权限: if (!...它的获取也很简单,就一句代码: usbDeviceConnection = usbManager.openDevice(usbDevice); 到这里,理论上平板和usb外设之间的连接已经建立了,也可以首发数据了...1.向usb外设发送数据 在第二步中,我们已经获取了数据的输出端口usbEndpointIn,我们向外设发送数据就是通过这个端口来实现的。

    3.7K40

    “Unity开发也能跟硬件联动”--快来看看吧(串口通信)

    一、C#串口介绍以及简单串口通信程序设计实现 简单的串口通信工具,基于C#应用程序WinFrom实现 串口介绍 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口...转串口线:这个头就是一个公头,另一端是一个usb口 笨小孩串口工具运行图 1.开启程序 2.发送一行字符串HelloBenXH 直接将针脚的发送和接收链接起来就可以测试了(针脚2 接受数据...先做一个简单的UI,用来控制串口设备的开关 代码就比较简单了 自定义端口API类 using System; //先要引入这个命名空间 using System.IO.Ports; //这个是连接上的串口设备的定义好的参数...,一会说怎么看端口,第二个参数是波特率,这个是设备自身的参数 SerialPort sp = new SerialPort("COM3", 9600);//声明一个串口类 //...才能找到 *PS:感谢单曲循环小盆友的提醒 OK了。。。小伙们可以试试了 对啦,那个数据只是接收,然后显示了,具体要怎么解析,获取端口号啥的就让小伙伴们自己来吧。。

    1.9K20

    0-2-视频传输,监控,直播方案-ESP32把采集的摄像头照片通过串口输出到C#串口上位机显示

    测试 1,自行搭建ESP32开发环境 https://www.cnblogs.com/yangfengwu/p/14667359.html 2,把这节ESP32代码放到非中文目录,然后使用VS Code...打开 3.编译下载到开发板(第一次编译时间有点长) 4.串口模块插到电脑的USB口, 串口模块RX引脚连接开发板的TX1引脚, 程序是使用串口1(GPIO17)发送数据 绿线: 开发板的串口1...发送引脚连接串口模块的RX引脚 黑线: GND 5.双击运行C#源码中的执行文件 6.选择上面的串口模块的端口号,然后打开串口,就可以看到图像了 源码说明(ESP32源码) 底层采集啥的都是封装好的...,设置的摄像头输出的是JPEG格式的图片数据....源码说明(C#源码) 1.打开工程 2.判断收到图片数据头,就把数据一直往缓存里面存 3.串口接收数据出现空闲, 就把缓存里面的数据读取以后尝试以图片方式显示(pictureBox)

    1.4K20

    2_准备开发环境

    串口是串行接口的简称,是指数据一位一位地顺序传送,其特点是通信线路简单。 ​ 在电脑上安装好MobaXterm后,使micro USB数据线,连接电脑和开发板上的6号接口(USB转串口)。...连接串口线和电源线 ​ 首先如下图所示将串口线与电脑、板子连接,开发板插上电源。 ​...打开电脑的“设备管理器”,在“端口 (COM和LPT)”项下,可以看到如下图中的“(COM21)”。这里的“COM21”可能与你电脑上的不一样,记住你电脑显示的数字。 ​...设置串口工具,启动开发板 ​ 打开MobaXterm,点击左上角的“Session”,在弹出的界面选中“Serial”,如下图所示选择端口号(前面设备管理器显示的端口号COM21)、波特率(Speed...注意:流控(Flow Control)一定要选择none,否则你将无法在MobaXterm中向串口输入数据。 ​

    57020

    嵌入式测试手册——基于NXP iMX6ULL开发板(2)

    串口测试RS232 UART2串口使用RS232交叉串口母母线、USB转RS232公头串口线,将评估板的RS232 UART2串口连接至PC机的USB接口,如下图所示。...图 40打开设备管理器,本次测试中调试串口USB TO UART1端口号为COM19,RS232 UART2串口的端口号为COM4,如下图所示。...公头串口线,将评估板RS485 UART3或RS485 UART4串口连接至PC机的USB接口,如下图所示。...打开设备管理器,本次测试中调试串口USB TO UART1端口号为COM19,RS485 UART3串口的端口号为COM4,如下图所示。...图 57等待软件检测到设备后,波特率选择1000K,点击“确定”进入软件操作界面,如下图所示。图 58在如下数据发送界面中,点击“发送”开始发送数据。

    1.6K30

    树莓派基础实验37:pyserial模块通信实验

    串口是计算机上一种非常通用的设备通信协议,pyserial模块封装了python对串口的访问,为多平台的使用提供了统一的接口。   ...在树莓派基础实验35:USB TO TTL模块实验中学习了通过串口对树莓派进行控制台控制,让串口作为控制终端调试口即 serial console。   ...在树莓派基础实验36:通用串口通信实验中学习了设置树莓派的串口为通用串口与PC电脑的串口调试工具进行通信。   ...带有“读”和“写”的API之类的文件(也支持“ readline”等)。 该软件包中的文件是100%纯Python。 该端口已设置为二进制传输。...2.打开串口 在给出端口时,在创建对象时立即打开端口。当端口是None并且需要连续调用时它不会打开open()。 port是设备名称:取决于操作系统。

    2.9K30

    python 解析 GPS 模块数据

    需求 GPS 北天 PL2303G Chip 驱动安装完成,后需要用 Python 连接获取串口 GPS 信号数据 设备准备 接入设备 将 GPS 模块插入 USB 等接口中,并正确配置驱动程序 获取设备信息...在 Ubuntu 中,插入 USB 的设备会出现在 /dev/tty* 中,首先需要确认该 GPS 设备的设备名称 可以使用几种不同的方法来确定接入的GPS模块是哪个设备: 列出所有串口: 使用lsusb...命令可以列出所有连接到电脑的USB设备,但可能不会直接显示GPS模块的详细信息。...如果您知道GPS模块是通过USB连接的,这个命令可以作为一个起点。 bash 复制 1 lsusb 使用dmesg: dmesg命令可以显示内核相关的日志信息,包括新插入的USB设备。...bash 复制 1 usb-devices 查看/dev目录: 在Linux系统中,串口设备通常位于/dev目录下。您可以列出这个目录下的文件,看看是否有新出现的串口设备。

    31310
    领券