C#动态获取本机可用串口的两种方式
1.
private void GetSerialPort() //获取串口列表
{
RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm");
if (keyCom != null)
{
string[] sSubKeys = keyCom.GetValueNames();
foreach (string sName in sSubKeys)
{
string sValue = (string)keyCom.GetValue(sName);
}
}
}
2.还有一种比较简单,直接通过SerialPort对象取得
string[] ports = System.IO.Ports.SerialPort.GetPortNames();
下面的内容都是转过来的.
在.NET Framework 2.0中提供了SerialPort类,该类主要实现串口数据通信等。下面主要介绍该类的主要属性(表13.1)和方法(表13.2)。
表13.1 SerialPort类的常用属性
|
名 称 |
说 明 |
|
BaseStream |
获取 SerialPort 对象的基础 Stream 对象 |
|
BaudRate |
获取或设置串行波特率 |
|
BreakState |
获取或设置中断信号状态 |
|
BytesToRead |
获取接收缓冲区中数据的字节数 |
|
BytesToWrite |
获取发送缓冲区中数据的字节数 |
|
CDHolding |
获取端口的载波检测行的状态 |
|
CtsHolding |
获取“可以发送”行的状态 |
|
DataBits |
获取或设置每个字节的标准数据位长度 |
|
DiscardNull |
获取或设置一个值,该值指示 Null 字节在端口和接收缓冲区之间传输时是否被忽略 |
|
DsrHolding |
获取数据设置就绪 (DSR) 信号的状态 |
|
DtrEnable |
获取或设置一个值,该值在串行通信过程中启用数据终端就绪 (DTR) 信号 |
|
Encoding |
获取或设置传输前后文本转换的字节编码 |
|
Handshake |
获取或设置串行端口数据传输的握手协议 |
|
IsOpen |
获取一个值,该值指示 SerialPort 对象的打开或关闭状态 |
|
NewLine |
获取或设置用于解释 ReadLine( )和WriteLine( )方法调用结束的值 |
|
Parity |
获取或设置奇偶校验检查协议 |
续表
|
名 称 |
说 明 |
|
ParityReplace |
获取或设置一个字节,该字节在发生奇偶校验错误时替换数据流中的无效字节 |
|
PortName |
获取或设置通信端口,包括但不限于所有可用的 COM 端口 |
|
ReadBufferSize |
获取或设置 SerialPort 输入缓冲区的大小 |
|
ReadTimeout |
获取或设置读取操作未完成时发生超时之前的毫秒数 |
|
ReceivedBytesThreshold |
获取或设置 DataReceived 事件发生前内部输入缓冲区中的字节数 |
|
RtsEnable |
获取或设置一个值,该值指示在串行通信中是否启用请求发送 (RTS) 信号 |
|
StopBits |
获取或设置每个字节的标准停止位数 |
|
WriteBufferSize |
获取或设置串行端口输出缓冲区的大小 |
|
WriteTimeout |
获取或设置写入操作未完成时发生超时之前的毫秒数 |
表13.2 SerialPort类的常用方法
|
方 法 名 称 |
说 明 |
|
Close |
关闭端口连接,将 IsOpen 属性设置为False,并释放内部 Stream 对象 |
|
Open |
打开一个新的串行端口连接 |
|
Read |
从 SerialPort 输入缓冲区中读取 |
|
ReadByte |
从 SerialPort 输入缓冲区中同步读取一个字节 |
|
ReadChar |
从 SerialPort 输入缓冲区中同步读取一个字符 |
|
ReadLine |
一直读取到输入缓冲区中的 NewLine 值 |
|
ReadTo |
一直读取到输入缓冲区中指定 value 的字符串 |
|
Write |
已重载。将数据写入串行端口输出缓冲区 |
|
WriteLine |
将指定的字符串和 NewLine 值写入输出缓冲区 |
C#动态获取本机可用串口的两种方式的更多相关文章
- Java通过图片url地址获取图片base64位字符串的两种方式
工作中遇到通过图片的url获取图片base64位的需求.一开始是用网上的方法,通过工具类Toolkit,虽然实现的代码比较简短,不过偶尔会遇到图片转成base64位不正确的情况,至今不知道为啥. 之后 ...
- mui 获取本地APP本版号的两种方式
第一种 mui.plusReady(function () { mui.getJSON("manifest.json", null, function (data) { vum = ...
- [转] python 获取本机ip地址的两种实现方法
#!/usr/bin/python import socket import fcntl import struct def get_ip_address(ifname): s = socket.so ...
- 手机App测试如何获取包名的入口【两种方式】
在进行手机APP测试的时候经常要获取包名.那么何为包名呢?简单来说其实就是手机APP的安装apk文件的名称,每个手机APP(软件)的包名都是唯一的. 那么我们怎样来获取包名以及包名的入口呢? 方法一: ...
- MyBatis_动态sql_foreach_mysql下foreach批量插入的两种方式
方法1: 笔记要点出错分析与总结工程组织数据库组织0.重新修改Bean类 修改1.定义接口 //批量插入 public void addEmps(@Param("emps") ...
- Mybatis获取自增主键的两种方式
<insert id="saveOne" parameterType="com.buwei.entity.User" > INSERT into u ...
- @Autowired获取配置文件中被注入实例的两种方式
一.说明 二.那么在JavaBean中如何通过@Autowired获取该实例呢?有两种方式: 1.直接获取 @RunWith(SpringJUnit4ClassRunner.class) @Conte ...
- java动态获取WebService的两种方式(复杂参数类型)
java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_Fligh ...
- MyBatis开发Dao层的两种方式(Mapper动态代理方式)
MyBatis开发原始Dao层请阅读我的上一篇博客:MyBatis开发Dao层的两种方式(原始Dao层开发) 接上一篇博客继续介绍MyBatis开发Dao层的第二种方式:Mapper动态代理方式 Ma ...
随机推荐
- nginx 的提升多个小文件访问的性能模块
阿里开源的第三方模块下载地址:https://github.com/alibaba/nginx-http-concat 下载模块 git clone https://github.com/alibab ...
- A - Bi-shoe and Phi-shoe 素数打表
A - Bi-shoe and Phi-shoe Bamboo Pole-vault is a massively popular sport in Xzhiland. And Master Phi- ...
- java使用netty模拟实现一个类dubbo的分布式服务调用框架
本文较长,如果想直接看代码可以查看项目源码地址: https://github.com/hetutu5238/rpc-demo.git 要想实现分布式服务调用框架,我们需要了解分布式服务一般需要的功能 ...
- Linux命令:top命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来不断刷新 ...
- ASP.NET Core的身份认证框架IdentityServer4--入门
ASP.NET Core的身份认证框架IdentityServer4--入门 2018年08月11日 10:09:00 qq_42606051 阅读数 4002 https://blog.csdn ...
- 图片切换.----so屌
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Centos7 mariadb (mysql)主从复制实现
一.mysql基本命令 .启动mysql systemctl start mariadb .linux客户端连接自己 mysql -uroot -p -h 127.0.0.1 .远程链接mysql服务 ...
- pycharm安装报错Non-zero exit co?
pycharm安装第三方库时报错Non-zero exit co? 原因:版本找不到 解决思路: 1.用pip install pandas报错,尝试用python -m pip install -- ...
- Python自动化运维的职业发展道路(暂定)
Python职业发展之路 Python自动化运维工程 Python基础 Linux Shell Fabric Ansible Playbook Zabbix Saltstack Puppet Dock ...
- KVM——虚拟化
KVM——虚拟化 虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互相 ...