Dreamine.PLC.Core 1.0.1
Dreamine.PLC.Core 산업 자동화 및 I/O 기능을 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient 클래스 참조sealed

더 자세히 ...

Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient에 대한 상속 다이어그램 :
Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient에 대한 협력 다이어그램:

Public 멤버 함수

 PlcSimulatorTcpClient (PlcSimulatorClientOptions options)
Dreamine.PLC.Core.Clients.PlcClientBase(으)로부터 상속된 Public 멤버 함수
async Task< PlcResult > ConnectAsync (CancellationToken cancellationToken=default)
async Task< PlcResult > DisconnectAsync (CancellationToken cancellationToken=default)
async Task< PlcResult< bool[]> > ReadBitsAsync (PlcAddress address, int count, CancellationToken cancellationToken=default)
async Task< PlcResult< short[]> > ReadWordsAsync (PlcAddress address, int count, CancellationToken cancellationToken=default)
async Task< PlcResult > WriteBitsAsync (PlcAddress address, IReadOnlyList< bool > values, CancellationToken cancellationToken=default)
async Task< PlcResult > WriteWordsAsync (PlcAddress address, IReadOnlyList< short > values, CancellationToken cancellationToken=default)
virtual async ValueTask DisposeAsync ()

Protected 멤버 함수

override async Task< PlcResult > ConnectCoreAsync (CancellationToken cancellationToken)
override Task< PlcResult > DisconnectCoreAsync (CancellationToken cancellationToken)
override async Task< PlcResult< bool[]> > ReadBitsCoreAsync (PlcAddress address, int count, CancellationToken cancellationToken)
override async Task< PlcResult< short[]> > ReadWordsCoreAsync (PlcAddress address, int count, CancellationToken cancellationToken)
override async Task< PlcResult > WriteBitsCoreAsync (PlcAddress address, IReadOnlyList< bool > values, CancellationToken cancellationToken)
override async Task< PlcResult > WriteWordsCoreAsync (PlcAddress address, IReadOnlyList< short > values, CancellationToken cancellationToken)
Dreamine.PLC.Core.Clients.PlcClientBase(으)로부터 상속된 Protected 멤버 함수
Task< PlcResult > ConnectCoreAsync (CancellationToken cancellationToken)
Task< PlcResult > DisconnectCoreAsync (CancellationToken cancellationToken)
Task< PlcResult< bool[]> > ReadBitsCoreAsync (PlcAddress address, int count, CancellationToken cancellationToken)
Task< PlcResult< short[]> > ReadWordsCoreAsync (PlcAddress address, int count, CancellationToken cancellationToken)
Task< PlcResult > WriteBitsCoreAsync (PlcAddress address, IReadOnlyList< bool > values, CancellationToken cancellationToken)
Task< PlcResult > WriteWordsCoreAsync (PlcAddress address, IReadOnlyList< short > values, CancellationToken cancellationToken)
void SetState (PlcConnectionState state)

Private 멤버 함수

async Task< string > SendCommandAsync (string command, CancellationToken cancellationToken)

Private 속성

readonly PlcSimulatorClientOptions _options
TcpClient? _client
StreamReader? _reader
StreamWriter? _writer

추가로 상속된 멤버들

Dreamine.PLC.Core.Clients.PlcClientBase(으)로부터 상속된 속성
PlcConnectionState State = PlcConnectionState.Disconnected [get, private set]
Dreamine.PLC.Core.Clients.PlcClientBase(으)로부터 상속된 이벤트
EventHandler< PlcConnectionState >? StateChanged

상세한 설명

Dreamine TCP PLC 시뮬레이터 프로토콜용 클라이언트를 제공합니다.

PlcSimulatorTcpClient.cs 파일의 16 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ PlcSimulatorTcpClient()

Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.PlcSimulatorTcpClient ( PlcSimulatorClientOptions options)
inline

지정한 옵션으로 T:Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient를 초기화합니다.

매개변수
options시뮬레이터 클라이언트 옵션입니다.
예외
ArgumentNullExceptionoptionsnull인 경우 발생합니다.

PlcSimulatorTcpClient.cs 파일의 79 번째 라인에서 정의되었습니다.

80 {
81 _options = options ?? throw new ArgumentNullException(nameof(options));
82 }

다음을 참조함 : _options.

멤버 함수 문서화

◆ ConnectCoreAsync()

override async Task< PlcResult > Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.ConnectCoreAsync ( CancellationToken cancellationToken)
inlineprotected

제한 시간 내 TCP 서버에 연결하고 텍스트 판독기와 작성기를 준비합니다.

매개변수
cancellationToken연결 취소 토큰입니다.
반환값
연결 결과입니다.

PlcSimulatorTcpClient.cs 파일의 107 번째 라인에서 정의되었습니다.

108 {
109 var client = new TcpClient();
110 using var timeoutCts = new CancellationTokenSource(_options.ConnectTimeoutMs);
111 using var linkedCts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, timeoutCts.Token);
112
113 try
114 {
115 await client.ConnectAsync(_options.Host, _options.Port, linkedCts.Token).ConfigureAwait(false);
116
117 var stream = client.GetStream();
118 _reader = new StreamReader(stream);
119 _writer = new StreamWriter(stream) { AutoFlush = true };
120 _client = client;
121
122 return PlcResult.Success();
123 }
124 catch
125 {
126 client.Dispose();
127 throw;
128 }
129 }

다음을 참조함 : _client, _options, _reader, _writer.

◆ DisconnectCoreAsync()

override Task< PlcResult > Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.DisconnectCoreAsync ( CancellationToken cancellationToken)
inlineprotected

TCP 판독기, 작성기 및 클라이언트를 해제합니다.

매개변수
cancellationToken취소 토큰입니다.
반환값
연결 해제 결과입니다.
예외
OperationCanceledException토큰이 취소된 경우 발생합니다.

PlcSimulatorTcpClient.cs 파일의 162 번째 라인에서 정의되었습니다.

163 {
164 cancellationToken.ThrowIfCancellationRequested();
165
166 _writer?.Dispose();
167 _reader?.Dispose();
168 _client?.Dispose();
169 _writer = null;
170 _reader = null;
171 _client = null;
172
173 return Task.FromResult(PlcResult.Success());
174 }

다음을 참조함 : _client, _reader, _writer.

◆ ReadBitsCoreAsync()

override async Task< PlcResult< bool[]> > Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.ReadBitsCoreAsync ( PlcAddress address,
int count,
CancellationToken cancellationToken )
inlineprotected

비트 읽기 명령을 보내고 응답 페이로드를 구문 분석합니다.

매개변수
address시작 주소입니다.
count비트 수입니다.
cancellationToken취소 토큰입니다.
반환값
비트 결과입니다.

PlcSimulatorTcpClient.cs 파일의 213 번째 라인에서 정의되었습니다.

214 {
215 var payload = await SendCommandAsync($"{PlcSimulatorProtocol.ReadBits} {address} {count}", cancellationToken).ConfigureAwait(false);
216 return PlcResult<bool[]>.Success(PlcSimulatorProtocol.ParseBits(payload));
217 }

다음을 참조함 : Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.ParseBits(), SendCommandAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ReadWordsCoreAsync()

override async Task< PlcResult< short[]> > Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.ReadWordsCoreAsync ( PlcAddress address,
int count,
CancellationToken cancellationToken )
inlineprotected

워드 읽기 명령을 보내고 응답 페이로드를 구문 분석합니다.

매개변수
address시작 주소입니다.
count워드 수입니다.
cancellationToken취소 토큰입니다.
반환값
워드 결과입니다.

PlcSimulatorTcpClient.cs 파일의 256 번째 라인에서 정의되었습니다.

257 {
258 var payload = await SendCommandAsync($"{PlcSimulatorProtocol.ReadWords} {address} {count}", cancellationToken).ConfigureAwait(false);
259 return PlcResult<short[]>.Success(PlcSimulatorProtocol.ParseWords(payload));
260 }

다음을 참조함 : Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.ParseWords(), SendCommandAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SendCommandAsync()

async Task< string > Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.SendCommandAsync ( string command,
CancellationToken cancellationToken )
inlineprivate

한 줄 명령을 전송하고 서버의 성공 응답 페이로드를 읽습니다.

매개변수
command전송할 명령입니다.
cancellationToken송수신 취소 토큰입니다.
반환값
성공 응답 페이로드입니다.
예외
InvalidOperationException클라이언트가 연결되지 않았거나 서버가 오류를 반환한 경우 발생합니다.
IOException응답 전에 서버가 연결을 닫은 경우 발생합니다.

PlcSimulatorTcpClient.cs 파일의 396 번째 라인에서 정의되었습니다.

397 {
398 if (_writer is null || _reader is null)
399 {
400 throw new InvalidOperationException("The PLC simulator TCP client is not connected.");
401 }
402
403 await _writer.WriteLineAsync(command.AsMemory(), cancellationToken).ConfigureAwait(false);
404 var line = await _reader.ReadLineAsync(cancellationToken).ConfigureAwait(false);
405 if (line is null)
406 {
407 throw new IOException("The PLC simulator server closed the connection.");
408 }
409
410 return PlcSimulatorProtocol.ReadOkPayload(line);
411 }

다음을 참조함 : _reader, _writer, Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.ReadOkPayload().

다음에 의해서 참조됨 : ReadBitsCoreAsync(), ReadWordsCoreAsync(), WriteBitsCoreAsync(), WriteWordsCoreAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ WriteBitsCoreAsync()

override async Task< PlcResult > Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.WriteBitsCoreAsync ( PlcAddress address,
IReadOnlyList< bool > values,
CancellationToken cancellationToken )
inlineprotected

비트 쓰기 명령을 만들어 서버에 보냅니다.

매개변수
address시작 주소입니다.
values비트 값입니다.
cancellationToken취소 토큰입니다.
반환값
쓰기 결과입니다.

PlcSimulatorTcpClient.cs 파일의 299 번째 라인에서 정의되었습니다.

300 {
301 var valuesText = PlcSimulatorProtocol.FormatBits(values);
302 await SendCommandAsync($"{PlcSimulatorProtocol.WriteBits} {address} {valuesText}", cancellationToken).ConfigureAwait(false);
303 return PlcResult.Success();
304 }

다음을 참조함 : Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.FormatBits(), SendCommandAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ WriteWordsCoreAsync()

override async Task< PlcResult > Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.WriteWordsCoreAsync ( PlcAddress address,
IReadOnlyList< short > values,
CancellationToken cancellationToken )
inlineprotected

워드 쓰기 명령을 만들어 서버에 보냅니다.

매개변수
address시작 주소입니다.
values워드 값입니다.
cancellationToken취소 토큰입니다.
반환값
쓰기 결과입니다.

PlcSimulatorTcpClient.cs 파일의 343 번째 라인에서 정의되었습니다.

344 {
345 var valuesText = PlcSimulatorProtocol.FormatWords(values);
346 await SendCommandAsync($"{PlcSimulatorProtocol.WriteWords} {address} {valuesText}", cancellationToken).ConfigureAwait(false);
347 return PlcResult.Success();
348 }

다음을 참조함 : Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.FormatWords(), SendCommandAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _client

TcpClient? Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient._client
private

client 값을 보관합니다.

PlcSimulatorTcpClient.cs 파일의 35 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectCoreAsync(), DisconnectCoreAsync().

◆ _options

readonly PlcSimulatorClientOptions Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient._options
private

options 값을 보관합니다.

PlcSimulatorTcpClient.cs 파일의 26 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectCoreAsync(), PlcSimulatorTcpClient().

◆ _reader

StreamReader? Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient._reader
private

reader 값을 보관합니다.

PlcSimulatorTcpClient.cs 파일의 44 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectCoreAsync(), DisconnectCoreAsync(), SendCommandAsync().

◆ _writer

StreamWriter? Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient._writer
private

writer 값을 보관합니다.

PlcSimulatorTcpClient.cs 파일의 53 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectCoreAsync(), DisconnectCoreAsync(), SendCommandAsync().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: