|
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.IO.Ports;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace ModbusDemo.Device
- {
- public class SerialPortAdapter:IStreamResource
- {
- private string NewLine = Environment.NewLine;
- private SerialPort _serialPort;
-
- public SerialPortAdapter(SerialPort serialPort)
- {
- Debug.Assert(serialPort != null, "Argument serialPort cannot be null.");
-
- _serialPort = serialPort;
- _serialPort.NewLine = NewLine;
- }
-
- public int InfiniteTimeout
- {
- get { return SerialPort.InfiniteTimeout; }
- }
-
- public int ReadTimeout
- {
- get { return _serialPort.ReadTimeout; }
- set { _serialPort.ReadTimeout = value; }
- }
-
- public int WriteTimeout
- {
- get { return _serialPort.WriteTimeout; }
- set { _serialPort.WriteTimeout = value; }
- }
-
- public void DiscardInBuffer()
- {
- _serialPort.DiscardInBuffer();
- }
-
- public int Read(byte[] buffer, int offset, int count)
- {
- return _serialPort.Read(buffer, offset, count);
- }
-
- public void Write(byte[] buffer, int offset, int count)
- {
- _serialPort.Write(buffer, offset, count);
- }
-
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- protected virtual void Dispose(bool disposing)
- {
- if (disposing)
- {
- _serialPort?.Dispose();
- _serialPort = null;
- }
- }
- }
- }
|