首页
学习
活动
专区
工具
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.3K110

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,

17410

IoT设备查找端口对应进程四种方法

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

1.3K21

嵌入式入门级学习——基于国产平台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.2K31

【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.4K31

MCGSTPC透明传输说用说明

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,就需要更改虚拟串口号。

2K30

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.7K32

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

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

7910

百问网全志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

10110

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

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

3.4K40

“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.7K20

2_准备开发环境

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

53520

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.3K20

嵌入式测试手册——基于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.5K30

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

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

2.7K30

全志V851se开发板TinyVision镜像制作快速启动教程

使用串口登录系统​ 1. 连接串口线​ 将配套TypeC线一段连接至开发板串口/供电接口,另一端连接至电脑USB接口,连接成功后板载红色电源灯会亮起。...对于Windows系统 此时Windows设备管理器 端口(COM和LPT) 处会多出一个串口设备,一般是以 USB-Enhanced-SERIAL CH9102开头,您需要留意一下后面的具体COM...如上图,COM号是96,我们接下来连接所使用串口号就是96。 对于Linux系统 可以查看是否多出一个/dev/tty 设备,一般情况设备节点为 /dev/ttyACM0 。 2....打开串口控制台​ 2.1 获取串口工具​ 使用Putty或者MobaXterm等串口工具来开发板设备。...2.2 使用putty登录串口​ 2.3 使用Mobaxterm登录串口​ 打开MobaXterm,点击左上角“Session”,弹出界面选中“Serial”,如下图所示选择端口号(前面设备管理器显示端口

18410

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目录下。您可以列出这个目录下文件,看看是否有新出现串口设备

17710
领券