--- source_files: - Common/DTS.Common.IConnection/SerialConnection/SerialConnection.cs generated_at: "2026-04-17T15:43:20.559385+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "b99650f076547574" --- # Documentation: SerialConnection ## 1. Purpose `SerialConnection` is an implementation of the `IConnection` interface that wraps `System.IO.Ports.SerialPort` to provide serial port communication capabilities. It exists to allow serial-based devices to be used within a connection abstraction layer that appears designed primarily around socket-based communication patterns (evidenced by the APM-style `Begin*`/`End*` methods and `SocketFlags` property). This class enables the system to treat serial connections uniformly alongside other connection types. ## 2. Public Interface ### Properties | Signature | Description | |-----------|-------------| | `bool IsSoftDisconnected { get; }` | Returns `true` if the unit is soft disconnected. Initialized to `false`. | | `bool Connected { get; }` | Always returns `false`. Read-only property. | | `string ConnectString => _PortName` | Returns the port name. | | `System.Net.Sockets.SocketFlags Flags { get; set; }` | Socket flags property (inherited from interface, not used for serial). | | `event EventHandler OnDisconnected` | Event for disconnection notification. | ### Methods | Signature | Description | |-----------|-------------| | `void SoftConnect()` | Empty implementation. Comment indicates soft disconnect is not implemented for serial. | | `void SoftDisconnect()` | Empty implementation. Comment indicates soft disconnect is not implemented for serial. | | `void Create(string connectString, string hostIPAddress)` | Does nothing. Parameters are ignored. | | `void Create(string PortName)` | Creates a new `SerialPort` instance with the provided port name and stores the name in `_PortName`. | | `string GetConnectionData()` | Returns empty string. | | `double GetCurrentDownloadRate()` | Returns `0D`. | | `double GetCurrentUploadRate()` | Returns `0D`. | | `void Dispose()` | Implements `IDisposable`. Calls `Dispose(true)` and suppresses finalization. | | `IAsyncResult BeginConnect(AsyncCallback cb, object state)` | Opens the serial port. Returns `null`. Throws if `Port` is null or `_PortName` is empty. | | `void EndConnect(IAsyncResult ar)` | Throws if `Port` is null. No other action. | | `IAsyncResult BeginDisconnect(bool reuseSocket, AsyncCallback cb, Object state)` | Returns `null`. Throws if `Port` is null. | | `void EndDisconnect