c#获取当前串口号

问题描述

电脑有几个串口,现在想直接与设备通信而不用选择串口,有什么办法吗?用C#语言实现

解决方案

解决方案二:
遍历所有的串口号,然后逐个Open过去。没异常的说明就是那个在用的端口了。
解决方案三:
枚举出所有串口,自己便利一下,你和硬件方做好通讯协议,每遍历一个串口,发一个数据过去,如果能收到应答,就自动选择这个串口
解决方案四:
SerialPort.GetPortNames()
解决方案五:
引用2楼bdmh的回复:

枚举出所有串口,自己便利一下,你和硬件方做好通讯协议,每遍历一个串口,发一个数据过去,如果能收到应答,就自动选择这个串口

+1另外可以在open的时候做判断,如果打不开,就不要发请求了可以减少检测时间另外,更进一步的优化方案,如果某一次检测到了可用串口,就先把它存文件,下次启动读出来直接通信,而不要每次都检测如果启动了,文件里有串口名,但是通信不成功,再重新检测.
解决方案六:
同意3楼SerialPort.GetPortNames()
解决方案七:
除非设备有专用的检测命令来判断设备是否存在,否则就没有意义.电脑上的串口不一定只包含物理存在的串口,而且还可能有虚拟串口.
解决方案八:
#4+1
解决方案九:
能告诉我如何获得串口服务器上的com口吗谢谢
解决方案十:
引用2楼bdmh的回复:

枚举出所有串口,自己便利一下,你和硬件方做好通讯协议,每遍历一个串口,发一个数据过去,如果能收到应答,就自动选择这个串口

正解
解决方案十一:
string[]ports=SerialPort.GetPortNames();Array.Sort(ports);comboPortName.Items.AddRange(ports);
解决方案十二:
枚举出所有串口,自己便利一下,你和硬件方做好通讯协议,每遍历一个串口,发一个数据过去,如果能收到应答,就自动选择这个串口
解决方案十三:
string[]PortName=System.IO.Ports.SerialPort.getPortNames();System.IO.Ports.SerialPortcurr_Port;foreach(stringtempinPortName){curr_Port=newSystem.IO.Ports.SerialPort(temp);curr_Port.Open();if(curr_Port.IsOpen){//Coding。。。。}curr_Port.Close();

手工敲得,不保障拼写
解决方案十四:
补充:foreach少了}
解决方案十五:
string[]serialports=SerialPort.GetPortNames();seriports_avaliabe=newArrayList();//-------------------添加可用串口---------------for(inti=0;i<serialports.Length;i++){try{sp.PortName=serialports[i];sp.Open();//如果端口已经被占用,就不添加sp.Close();seriports_avaliabe.Add(serialports[i]);}catch(System.UnauthorizedAccessExceptionex){}}

时间: 2024-11-03 05:24:17

c#获取当前串口号的相关文章

获取串口 asp net-USB评价器设备插入后,如何获取该设备的串口号?

问题描述 USB评价器设备插入后,如何获取该设备的串口号? USB评价器设备接入客户端后,需获取设备的串口号.在ASP.NET 程序中如何获取该设备的串口号?

windows-.NET 串口号(COM口)操作系统自动分配

问题描述 .NET 串口号(COM口)操作系统自动分配 每次开机的时候操作系统都会自动分配一个COM号.如何解决操作系统自动分配的问题,让操作系统不自动分配改为固定的.或者通过.NET程序获取API名称判断COM口分配的是哪一个 解决方案 串口号相对于设置来说本来就是固定的,如地磅的串口连接到计算机后,重启后不会重新再分配的,怀疑你是虚拟的串口,如果动态变化,建议你在程序中设置,让用户选择串口

c++ 怎样获取一串字符串的字符数,不是字节数

问题描述 c++ 怎样获取一串字符串的字符数,不是字节数 想获取一串包括中文的字符串的字符数,请问有哪个函数可以调用................ 解决方案 看看http://blog.csdn.net/infoworld/article/details/38119229 解决方案二: #include<iostream> using namespace std; int main() { int count = 0; char* buffer = "爱神as箭34按.实"

vc下如何获得蓝牙设备对应的虚拟串口号?

问题描述 vc下如何获得蓝牙设备对应的虚拟串口号? 如题,我在vc2008中,利用蓝牙虚拟串口方式通信. 目前只能枚举系统串口号,然后让用户自己选择蓝牙设备对应的串口号. 想自动找到串口号,然后连接,这样用户就不用选择了. 找了半天微软蓝牙API,没有这个函数. 只有一个获得设备信息的函数:BluetoothDisplayDeviceProperties, 这个函数是弹出对话框. 高手请帮帮忙,这个虚拟串口通信方式是不是只能这样? 如果想自动连接设备通信,是不是只能用winsock通信? (因为

I.MX6 修改调试串口号(ttymx0 -&gt; ttymxc2)

I.MX6 修改调试串口号(ttymx0 -> ttymxc2) 一.参考文章: uboot修改默认调试串口ttymxc0 ->ttymxc4(imx53) http://www.xuebuyuan.com/1494436.html 二.修改调试串口 和MCU通讯的串口是ttymxc0,目录调试使用的也是此串口,所在需改成别的串口ttymxc4 1)在uboot-imx/include/configs/目录下找到你项目中所用到的配置文件:mx53_skyz7_android.h(根据自己的项目

要做一个客户管理系统,客户刷卡时,sscom可以收到信息,问题是我怎么用程序获取这串数字?

问题描述 请求大神帮助刷卡的设备是SiliconLabsCP210xUSBtoUARTBridge 解决方案 解决方案二:截图的这个程序你有源代码吗?如果有,取文本框里的值就可以了.或者根据sscom接口协议来获取.如果这些都没有,你只是想获取这个程序窗口里面的数据,可以使用user32.dll下面的WINAPI,比如GetWindow,SendMessage等,或者使用UIAutomation.解决方案三:SiliconLabs下载开发工具,里面ExamplesDirectory文件夹有示例代

Spring Boot 在程序中获取启动端口号

import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent; import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Configuration; import org.springframework.util.Assert; /*

javascript获取参数:javascript获取当前页面url值及url中的参数值

一个简单使用的例子:<SCRIPT LANGUAGE="JavaScript"><!--var q = location.search.substr(1);var qs = q.split("&");if (qs) {for (var i=0;i<qs.length;i++) {alert("QueryName:"+qs[i].substring(0,qs[i].indexOf("="))+&q

js获取url参数值:JS获取URL参数

<script language="javascript">function getrequest() {var url = location.search; //获取url中"?"符后的字串var therequest = new object();if (url.indexof("?") != -1) {var str = url.substr(1);strs = str.split("&");for(