# System.IO.Ports 库模块帮助文档

## System.IO.Ports 成员列表 <a id="System.IO.Ports" href="#System.IO.Ports">&#x23;</a>

.NET System.IO.Ports 命名空间  
Win7 或 .NET 2.0 开始自带此组件

### System.IO.Ports.* <a id="System.IO.Ports.any" href="#System.IO.Ports.any">&#x23;</a>
.NET 命名空间、类、结构体的成员，  
可访问成员命名空间、类、枚举、静态属性或字段，  
导入的类可用于构造 .NET 对象，传回 .NET 则自动转为该类的 Type 对象  

[返回对象:dotNetNameSpaceObject](https://www.aardio.com/zh-cn/docs/library-reference/dotNet/appDomain.html#dotNetNameSpaceObject)

### System.IO.Ports.SerialPort() <a id="System.IO.Ports.SerialPort" href="#System.IO.Ports.SerialPort">&#x23;</a>
[返回对象:systemIoSerialPortObject](#systemIoSerialPortObject)

### System.IO.Ports.SerialPort(portName,baudRate) <a id="System.IO.Ports.SerialPort" href="#System.IO.Ports.SerialPort">&#x23;</a>
打开串口。  
可选用 @portName 指定端口名，例如 "COM1"。  
可选用 @baudRate 参数指定波特率

### System.IO.Ports.assembly <a id="System.IO.Ports.assembly" href="#System.IO.Ports.assembly">&#x23;</a>
导入此 .NET 命名空间的程序集对象。  

[返回对象:dotNetCrlAssemblyObject](https://www.aardio.com/zh-cn/docs/library-reference/dotNet/appDomain.html#dotNetCrlAssemblyObject)

## System.IO.Ports.SerialPort 成员列表 <a id="System.IO.Ports.SerialPort" href="#System.IO.Ports.SerialPort">&#x23;</a>

串口设备

打开串口

### System.IO.Ports.SerialPort.GetPortNames () <a id="System.IO.Ports.SerialPort.GetPortNames " href="#System.IO.Ports.SerialPort.GetPortNames ">&#x23;</a>
返回包含所有串口名的字符串数组

## systemIoSerialPortObject 成员列表 <a id="systemIoSerialPortObject" href="#systemIoSerialPortObject">&#x23;</a>

### systemIoSerialPortObject.BaseStream <a id="systemIoSerialPortObject.BaseStream" href="#systemIoSerialPortObject.BaseStream">&#x23;</a>
获取底层 System.IO.Stream 对象。

### systemIoSerialPortObject.BaudRate <a id="systemIoSerialPortObject.BaudRate" href="#systemIoSerialPortObject.BaudRate">&#x23;</a>
获取或设置串行波特率。

### systemIoSerialPortObject.BreakState <a id="systemIoSerialPortObject.BreakState" href="#systemIoSerialPortObject.BreakState">&#x23;</a>
获取或设置中断信号状态。

### systemIoSerialPortObject.BytesToRead <a id="systemIoSerialPortObject.BytesToRead" href="#systemIoSerialPortObject.BytesToRead">&#x23;</a>
获取接收缓冲区中的数据字节数。

### systemIoSerialPortObject.BytesToWrite <a id="systemIoSerialPortObject.BytesToWrite" href="#systemIoSerialPortObject.BytesToWrite">&#x23;</a>
获取发送缓冲区中的数据字节数。

### systemIoSerialPortObject.CDHolding <a id="systemIoSerialPortObject.CDHolding" href="#systemIoSerialPortObject.CDHolding">&#x23;</a>
获取端口的 Carrier Detect 线路状态。

### systemIoSerialPortObject.CanRaiseEvents <a id="systemIoSerialPortObject.CanRaiseEvents" href="#systemIoSerialPortObject.CanRaiseEvents">&#x23;</a>
获取一个值，指示组件是否能够触发事件。

### systemIoSerialPortObject.Container <a id="systemIoSerialPortObject.Container" href="#systemIoSerialPortObject.Container">&#x23;</a>
获取包含该组件的 IContainer。

### systemIoSerialPortObject.CtsHolding <a id="systemIoSerialPortObject.CtsHolding" href="#systemIoSerialPortObject.CtsHolding">&#x23;</a>
获取 Clear-to-Send 线路的状态。

### systemIoSerialPortObject.DataBits <a id="systemIoSerialPortObject.DataBits" href="#systemIoSerialPortObject.DataBits">&#x23;</a>
获取或设置每字节的标准数据位长度。

### systemIoSerialPortObject.DataReceived <a id="systemIoSerialPortObject.DataReceived" href="#systemIoSerialPortObject.DataReceived">&#x23;</a>

```aardio
systemIoSerialPortObject.DataReceived = function(sender,e){
	try{
		var str = sender.ReadExisting();
		/*str 为串口接收的文本数据，字符串值  
为避免收到乱码，Encoding 属性要正确设置文本编码。  
或者改用 read 函数读取二进制的字节数组。  

这个回调函数如果抛出异常，程序会退出。  
建议代码写在 try 语句中，在 catch 语句中获取错误信息。  

注意无论 .NET 是否多线程回调，	  
被 .NET 回调的 aardio 函数总会在原调用线程执行，  
不需要考虑多线程规则与同步问题*/

	}
	catch(e){

	}
}
```

### systemIoSerialPortObject.DiscardNull <a id="systemIoSerialPortObject.DiscardNull" href="#systemIoSerialPortObject.DiscardNull">&#x23;</a>
获取或设置一个值，指示在端口和接收缓冲区之间传输时是否忽略空字节。

### systemIoSerialPortObject.DsrHolding <a id="systemIoSerialPortObject.DsrHolding" href="#systemIoSerialPortObject.DsrHolding">&#x23;</a>
获取数据集准备 (DSR) 信号的状态。

### systemIoSerialPortObject.DtrEnable <a id="systemIoSerialPortObject.DtrEnable" href="#systemIoSerialPortObject.DtrEnable">&#x23;</a>
获取或设置一个值，在串行通信期间启用数据终端就绪 (DTR) 信号。

### systemIoSerialPortObject.Encoding <a id="systemIoSerialPortObject.Encoding" href="#systemIoSerialPortObject.Encoding">&#x23;</a>
获取或设置读写字符串值时使用的默认文本编码。  
可设为 System.Text.UTF8Encoding 等编码类的实例对象。  
默认值为  System.Text.ASCIIEncoding 对象。  

读写二进制字节数组与 Encoding 无关

### systemIoSerialPortObject.ErrorReceived <a id="systemIoSerialPortObject.ErrorReceived" href="#systemIoSerialPortObject.ErrorReceived">&#x23;</a>

```aardio
systemIoSerialPortObject.ErrorReceived = function(sender,e){
	var eventType = e.EventType;
	/*发生错误，eventType 为 System.IO.Ports.SerialError 枚举 */
}
```

### systemIoSerialPortObject.Events <a id="systemIoSerialPortObject.Events" href="#systemIoSerialPortObject.Events">&#x23;</a>
获取附加到此组件的事件处理程序列表。

### systemIoSerialPortObject.Handshake <a id="systemIoSerialPortObject.Handshake" href="#systemIoSerialPortObject.Handshake">&#x23;</a>
获取或设置使用 Handshake 值的串行端口数据传输的握手协议。

### systemIoSerialPortObject.IsOpen <a id="systemIoSerialPortObject.IsOpen" href="#systemIoSerialPortObject.IsOpen">&#x23;</a>
获取一个值，指示 SerialPort 对象的打开或关闭状态。

### systemIoSerialPortObject.NewLine <a id="systemIoSerialPortObject.NewLine" href="#systemIoSerialPortObject.NewLine">&#x23;</a>
获取或设置用于解释 ReadLine() 和 WriteLine(String) 方法结束的值。

### systemIoSerialPortObject.Open() <a id="systemIoSerialPortObject.Open" href="#systemIoSerialPortObject.Open">&#x23;</a>
创建连接

### systemIoSerialPortObject.Parity <a id="systemIoSerialPortObject.Parity" href="#systemIoSerialPortObject.Parity">&#x23;</a>
获取或设置奇偶校验协议。

### systemIoSerialPortObject.ParityReplace <a id="systemIoSerialPortObject.ParityReplace" href="#systemIoSerialPortObject.ParityReplace">&#x23;</a>
获取或设置在奇偶校验错误发生时替换数据流中的无效字节的字节。

### systemIoSerialPortObject.PortName <a id="systemIoSerialPortObject.PortName" href="#systemIoSerialPortObject.PortName">&#x23;</a>
获取或设置用于通信的端口，包括但不限于所有可用的 COM 端口。

### systemIoSerialPortObject.Read(bytes,offset,count) <a id="systemIoSerialPortObject.Read" href="#systemIoSerialPortObject.Read">&#x23;</a>
读取数据。  
@bytes 为 buffer 对象或者字节码数组。  
@offset 指定为数据写入参数@1的索引偏移量，0 为自第一个字节开始写入。  
@count 指定自指定索引开始写入的字节数

### systemIoSerialPortObject.ReadBufferSize <a id="systemIoSerialPortObject.ReadBufferSize" href="#systemIoSerialPortObject.ReadBufferSize">&#x23;</a>
获取或设置 SerialPort 输入缓冲区的大小。

### systemIoSerialPortObject.ReadByte() <a id="systemIoSerialPortObject.ReadByte" href="#systemIoSerialPortObject.ReadByte">&#x23;</a>
同步读取一个字节，返回数值

### systemIoSerialPortObject.ReadChar() <a id="systemIoSerialPortObject.ReadChar" href="#systemIoSerialPortObject.ReadChar">&#x23;</a>
同步读取一个字符，返回数值

### systemIoSerialPortObject.ReadExisting() <a id="systemIoSerialPortObject.ReadExisting" href="#systemIoSerialPortObject.ReadExisting">&#x23;</a>
根据编码读取所有可用字节，返回字符串

### systemIoSerialPortObject.ReadLine() <a id="systemIoSerialPortObject.ReadLine" href="#systemIoSerialPortObject.ReadLine">&#x23;</a>
读取一行字符串

### systemIoSerialPortObject.ReadTimeout <a id="systemIoSerialPortObject.ReadTimeout" href="#systemIoSerialPortObject.ReadTimeout">&#x23;</a>
获取或设置读取操作未完成时发生超时之前的毫秒数。

### systemIoSerialPortObject.ReceivedBytesThreshold <a id="systemIoSerialPortObject.ReceivedBytesThreshold" href="#systemIoSerialPortObject.ReceivedBytesThreshold">&#x23;</a>
获取或设置在数据接收到内部输入缓冲区之前，DataReceived 事件发生时的字节数。

### systemIoSerialPortObject.RtsEnable <a id="systemIoSerialPortObject.RtsEnable" href="#systemIoSerialPortObject.RtsEnable">&#x23;</a>
获取或设置一个值，指示在串行通信期间是否启用请求发送 (RTS) 信号。

### systemIoSerialPortObject.Site <a id="systemIoSerialPortObject.Site" href="#systemIoSerialPortObject.Site">&#x23;</a>
获取或设置组件的 ISite。

### systemIoSerialPortObject.StopBits <a id="systemIoSerialPortObject.StopBits" href="#systemIoSerialPortObject.StopBits">&#x23;</a>
获取或设置每字节的标准停止位数。

### systemIoSerialPortObject.Write <a id="systemIoSerialPortObject.Write" href="#systemIoSerialPortObject.Write">&#x23;</a>
发送数据

### systemIoSerialPortObject.Write(bytes,offset,count) <a id="systemIoSerialPortObject.Write" href="#systemIoSerialPortObject.Write">&#x23;</a>
发送数据。  
@bytes 为 buffer 对象或者字节码数组。  
@offset 指定索引偏移量，0 为自第一个字节开始发送。  
@count 指定自指定索引开始发送的字节数

### systemIoSerialPortObject.Write(str) <a id="systemIoSerialPortObject.Write" href="#systemIoSerialPortObject.Write">&#x23;</a>
发送数据。  
@str 指定要发送的字符串。

### systemIoSerialPortObject.WriteBufferSize <a id="systemIoSerialPortObject.WriteBufferSize" href="#systemIoSerialPortObject.WriteBufferSize">&#x23;</a>
获取或设置串行端口输出缓冲区的大小。

### systemIoSerialPortObject.WriteLine(str) <a id="systemIoSerialPortObject.WriteLine" href="#systemIoSerialPortObject.WriteLine">&#x23;</a>
发送数据并添加换行。  
@str 指定要发送的字符串。

### systemIoSerialPortObject.WriteTimeout <a id="systemIoSerialPortObject.WriteTimeout" href="#systemIoSerialPortObject.WriteTimeout">&#x23;</a>
获取或设置写操作未完成时发生超时之前的毫秒数。
