|
Dreamine.Communication.Serial 1.0.2
Dreamine.Communication.Serial 통신 기능과 관련 API를 제공합니다.
|


Public 멤버 함수 | |
| SerialPortTransport (SerialPortTransportOptions options) | |
| SerialPortTransport (SerialPortTransportOptions options, IMessageProtocolAdapter protocolAdapter, IMessageFrameCodec frameCodec) | |
| Task | ConnectAsync (CancellationToken cancellationToken=default) |
| async Task | DisconnectAsync (CancellationToken cancellationToken=default) |
| async Task | SendAsync (MessageEnvelope message, CancellationToken cancellationToken=default) |
| async ValueTask | DisposeAsync () |
속성 | |
| ConnectionState | State [get] |
| TransportKind | Kind [get] |
이벤트 | |
| EventHandler< MessageEnvelope >? | MessageReceived |
Private 멤버 함수 | |
| async Task | ReceiveLoopAsync (CancellationToken cancellationToken) |
| void | CleanupSerialPort () |
| void | SetState (ConnectionState state) |
정적 Private 멤버 함수 | |
| static void | ValidateOptions (SerialPortTransportOptions options) |
Private 속성 | |
| readonly SerialPortTransportOptions | _options |
| readonly IMessageProtocolAdapter | _protocolAdapter |
| readonly IMessageFrameCodec | _frameCodec |
| SerialPort? | _serialPort |
| CancellationTokenSource? | _receiveLoopCts |
| Task? | _receiveLoopTask |
| int | _state = (int)ConnectionState.Disconnected |
.NET T:System.IO.Ports.SerialPort와 구성 가능한 프레임·프로토콜 어댑터를 사용하는 RS-232 메시지 전송 계층입니다.
SerialPortTransport.cs 파일의 20 번째 라인에서 정의되었습니다.
|
inline |
기본 Dreamine JSON 프로토콜과 길이 접두사 프레임으로 전송 계층을 초기화합니다.
| options | 시리얼 회선 및 버퍼 설정입니다. |
SerialPortTransport.cs 파일의 103 번째 라인에서 정의되었습니다.
|
inline |
시리얼 설정과 사용자 지정 프로토콜 및 프레임 코덱으로 전송 계층을 초기화합니다.
| options | 시리얼 회선 및 버퍼 설정입니다. |
| protocolAdapter | 메시지와 외부 페이로드를 변환할 어댑터입니다. |
| frameCodec | 스트림의 메시지 경계를 처리할 코덱입니다. |
| ArgumentNullException | options , protocolAdapter 또는 frameCodec 이 null인 경우 발생합니다. |
SerialPortTransport.cs 파일의 151 번째 라인에서 정의되었습니다.
다음을 참조함 : _frameCodec, _options, _protocolAdapter, ValidateOptions().

|
inlineprivate |
예외를 외부로 전파하지 않고 시리얼 포트를 닫고 해제합니다.
SerialPortTransport.cs 파일의 533 번째 라인에서 정의되었습니다.
다음을 참조함 : _serialPort.
다음에 의해서 참조됨 : ReceiveLoopAsync(), SendAsync().

|
inline |
시리얼 포트를 열고 백그라운드 수신 루프를 시작합니다. 포트 열기 자체는 동기 API입니다.
| cancellationToken | 포트를 열기 전 취소 요청을 확인하는 토큰입니다. |
SerialPortTransport.cs 파일의 217 번째 라인에서 정의되었습니다.
다음을 참조함 : _options, _receiveLoopCts, _receiveLoopTask, _serialPort, ReceiveLoopAsync(), SetState(), State.

|
inline |
수신 루프를 중지하고 시리얼 포트와 관련 리소스를 닫습니다.
| cancellationToken | 정리 후 연결 해제 취소 여부를 확인하는 토큰입니다. |
SerialPortTransport.cs 파일의 290 번째 라인에서 정의되었습니다.
다음을 참조함 : _receiveLoopCts, _receiveLoopTask, _serialPort, SetState(), State.
다음에 의해서 참조됨 : DisposeAsync().


|
inline |
시리얼 포트 연결과 수신 루프 리소스를 비동기적으로 해제합니다.
SerialPortTransport.cs 파일의 434 번째 라인에서 정의되었습니다.
다음을 참조함 : DisconnectAsync().

|
inlineprivate |
시리얼 스트림에서 프레임을 계속 읽어 메시지로 디코딩하고 수신 이벤트를 발생시킵니다.
| cancellationToken | 수신 루프 종료를 요청하는 토큰입니다. |
SerialPortTransport.cs 파일의 463 번째 라인에서 정의되었습니다.
다음을 참조함 : _frameCodec, _protocolAdapter, _serialPort, CleanupSerialPort(), MessageReceived, SetState(), State.
다음에 의해서 참조됨 : ConnectAsync().


|
inline |
메시지를 외부 프로토콜과 프레임 형식으로 인코딩해 시리얼 포트로 전송합니다.
| message | 전송할 메시지입니다. |
| cancellationToken | 프레임 쓰기 취소 요청을 감시하는 토큰입니다. |
| InvalidOperationException | 시리얼 포트가 열려 있지 않거나 전송 계층이 연결 상태가 아닌 경우 발생합니다. |
SerialPortTransport.cs 파일의 386 번째 라인에서 정의되었습니다.
다음을 참조함 : _frameCodec, _protocolAdapter, _serialPort, CleanupSerialPort(), SetState(), State.

|
inlineprivate |
원자적 연산으로 현재 연결 상태를 설정합니다.
| state | 저장할 새 연결 상태입니다. |
SerialPortTransport.cs 파일의 573 번째 라인에서 정의되었습니다.
다음을 참조함 : _state.
다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync(), ReceiveLoopAsync(), SendAsync().

|
inlinestaticprivate |
포트 이름, 회선 속성, 제한 시간 및 버퍼 크기의 유효성을 검사합니다.
| options | 검증할 시리얼 포트 설정입니다. |
| ArgumentException | 포트 이름이 비어 있는 경우 발생합니다. |
| ArgumentOutOfRangeException | 수치 설정이 허용 범위를 벗어난 경우 발생합니다. |
SerialPortTransport.cs 파일의 610 번째 라인에서 정의되었습니다.
다음을 참조함 : Dreamine.Communication.Serial.Options.SerialPortTransportOptions.BaudRate, Dreamine.Communication.Serial.Options.SerialPortTransportOptions.DataBits, Dreamine.Communication.Serial.Options.SerialPortTransportOptions.PortName, Dreamine.Communication.Serial.Options.SerialPortTransportOptions.ReadBufferSize, Dreamine.Communication.Serial.Options.SerialPortTransportOptions.ReadTimeoutMs, Dreamine.Communication.Serial.Options.SerialPortTransportOptions.WriteBufferSize, Dreamine.Communication.Serial.Options.SerialPortTransportOptions.WriteTimeoutMs.
다음에 의해서 참조됨 : SerialPortTransport().

|
private |
frame Codec 값을 보관합니다.
SerialPortTransport.cs 파일의 48 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ReceiveLoopAsync(), SendAsync(), SerialPortTransport().
|
private |
options 값을 보관합니다.
SerialPortTransport.cs 파일의 30 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectAsync(), SerialPortTransport().
|
private |
protocol Adapter 값을 보관합니다.
SerialPortTransport.cs 파일의 39 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ReceiveLoopAsync(), SendAsync(), SerialPortTransport().
|
private |
receive Loop Cts 값을 보관합니다.
SerialPortTransport.cs 파일의 67 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync().
|
private |
receive Loop Task 값을 보관합니다.
SerialPortTransport.cs 파일의 76 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync().
|
private |
serial Port 값을 보관합니다.
SerialPortTransport.cs 파일의 58 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CleanupSerialPort(), ConnectAsync(), DisconnectAsync(), ReceiveLoopAsync(), SendAsync().
|
private |
|
get |
시리얼 전송 방식을 가져옵니다.
SerialPortTransport.cs 파일의 181 번째 라인에서 정의되었습니다.
|
get |
스레드 안전하게 현재 시리얼 연결 상태를 가져옵니다.
SerialPortTransport.cs 파일의 171 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync(), ReceiveLoopAsync(), SendAsync().
| EventHandler<MessageEnvelope>? Dreamine.Communication.Serial.Ports.SerialPortTransport.MessageReceived |
완전한 프레임을 메시지로 디코딩했을 때 발생합니다.
SerialPortTransport.cs 파일의 191 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ReceiveLoopAsync().