|
Dreamine.PLC.Omron.Fins 1.0.1
Dreamine.PLC.Omron.Fins 산업 자동화 및 I/O 기능을 제공합니다.
|


Public 멤버 함수 | |
| OmronFinsTcpSimulatorServer (OmronFinsSimulatorServerOptions options) | |
| OmronFinsTcpSimulatorServer (OmronFinsSimulatorServerOptions options, InMemoryPlcMemory memory) | |
| Task | StartAsync () |
| async Task | StopAsync () |
| async ValueTask | DisposeAsync () |
속성 | |
| bool | IsRunning [get] |
이벤트 | |
| EventHandler< string >? | StatusChanged |
Private 멤버 함수 | |
| async Task | AcceptLoopAsync (CancellationToken cancellationToken) |
| async Task | ClientLoopAsync (TcpClient client, CancellationToken cancellationToken) |
정적 Private 멤버 함수 | |
| static IPAddress | ParseAddress (string host) |
| static async Task< byte[]> | ReceiveFinsTcpPacketAsync (NetworkStream stream, CancellationToken cancellationToken) |
| static async Task | ReadExactlyAsync (NetworkStream stream, byte[] buffer, CancellationToken cancellationToken) |
Private 속성 | |
| readonly OmronFinsSimulatorServerOptions | _options |
| readonly InMemoryPlcMemory | _memory |
| readonly OmronFinsSimulatorProtocol | _protocol |
| readonly List< TcpClient > | _clients = [] |
| readonly object | _syncRoot = new() |
| TcpListener? | _listener |
| CancellationTokenSource? | _cts |
| Task? | _acceptTask |
로컬 및 PC 간 테스트를 위한 최소 FINS/TCP 시뮬레이터 서버를 제공합니다.
OmronFinsTcpSimulatorServer.cs 파일의 16 번째 라인에서 정의되었습니다.
|
inline |
새 메모리를 사용해 T:Dreamine.PLC.Omron.Fins.Simulation.OmronFinsTcpSimulatorServer 클래스의 새 인스턴스를 초기화합니다.
| options | 바인딩 및 자동 응답 서버 옵션입니다. |
| ArgumentNullException | options 가 null일 때 발생합니다. |
OmronFinsTcpSimulatorServer.cs 파일의 115 번째 라인에서 정의되었습니다.
|
inline |
지정한 공유 메모리를 사용해 T:Dreamine.PLC.Omron.Fins.Simulation.OmronFinsTcpSimulatorServer 클래스의 새 인스턴스를 초기화합니다.
| options | 바인딩 및 자동 응답 서버 옵션입니다. |
| memory | 요청 간에 공유할 PLC 메모리입니다. |
| ArgumentNullException | options 또는 memory 가 null일 때 발생합니다. |
OmronFinsTcpSimulatorServer.cs 파일의 152 번째 라인에서 정의되었습니다.
다음을 참조함 : _memory, _options, _protocol, StatusChanged.
|
inlineprivate |
TCP 클라이언트 연결을 수락하고 각각의 처리 루프를 백그라운드에서 시작합니다.
| cancellationToken | 연결 수락을 중지하는 토큰입니다. |
| SocketException | 취소 이외의 이유로 클라이언트 수락이 실패할 때 발생할 수 있습니다. |
OmronFinsTcpSimulatorServer.cs 파일의 379 번째 라인에서 정의되었습니다.
다음을 참조함 : _clients, _listener, _syncRoot, ClientLoopAsync().
다음에 의해서 참조됨 : StartAsync().


|
inlineprivate |
단일 TCP 클라이언트의 FINS/TCP 요청을 수신·처리·응답합니다.
| client | 처리할 연결된 TCP 클라이언트입니다. |
| cancellationToken | 클라이언트 루프를 중지하는 토큰입니다. |
OmronFinsTcpSimulatorServer.cs 파일의 443 번째 라인에서 정의되었습니다.
다음을 참조함 : _clients, _protocol, _syncRoot, Dreamine.PLC.Omron.Fins.Protocol.OmronFinsTcpPacket.Extract(), ReceiveFinsTcpPacketAsync(), StatusChanged, Dreamine.PLC.Omron.Fins.Protocol.OmronFinsTcpPacket.Wrap().
다음에 의해서 참조됨 : AcceptLoopAsync().


|
inline |
서버를 중지해 비동기로 정리합니다.
OmronFinsTcpSimulatorServer.cs 파일의 307 번째 라인에서 정의되었습니다.
다음을 참조함 : StopAsync().

|
inlinestaticprivate |
구성된 바인딩 호스트를 IP 주소로 변환하며 와일드카드와 잘못된 값은 모든 인터페이스로 처리합니다.
| host | 변환할 호스트 또는 와일드카드 문자열입니다. |
OmronFinsTcpSimulatorServer.cs 파일의 337 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : StartAsync().

|
inlinestaticprivate |
네트워크 스트림에서 대상 버퍼를 끝까지 채웁니다.
| stream | 읽을 네트워크 스트림입니다. |
| buffer | 완전히 채울 대상 버퍼입니다. |
| cancellationToken | 읽기를 취소하는 토큰입니다. |
| IOException | 버퍼를 채우기 전에 클라이언트가 연결을 닫으면 발생합니다. |
| OperationCanceledException | 읽기가 취소되면 발생합니다. |
OmronFinsTcpSimulatorServer.cs 파일의 616 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ReceiveFinsTcpPacketAsync().

|
inlinestaticprivate |
FINS/TCP 헤더와 선언된 본문 길이를 기준으로 패킷 하나를 정확히 수신합니다.
| stream | 읽을 클라이언트 네트워크 스트림입니다. |
| cancellationToken | 수신을 취소하는 토큰입니다. |
| InvalidOperationException | 헤더의 패킷 길이가 8보다 작을 때 발생합니다. |
| IOException | 완전한 패킷을 받기 전에 클라이언트가 연결을 닫으면 발생합니다. |
| OperationCanceledException | 수신이 취소되면 발생합니다. |
OmronFinsTcpSimulatorServer.cs 파일의 542 번째 라인에서 정의되었습니다.
다음을 참조함 : ReadExactlyAsync(), Dreamine.PLC.Omron.Fins.Protocol.OmronFinsEndian.ReadInt32().
다음에 의해서 참조됨 : ClientLoopAsync().


|
inline |
구성된 주소와 포트에서 TCP 수신을 시작하고 연결 수락 루프를 실행합니다.
| SocketException | 주소 또는 포트에서 수신을 시작할 수 없을 때 발생할 수 있습니다. |
| ArgumentOutOfRangeException | 구성된 포트가 유효한 범위를 벗어날 때 발생할 수 있습니다. |
OmronFinsTcpSimulatorServer.cs 파일의 212 번째 라인에서 정의되었습니다.
다음을 참조함 : _acceptTask, _cts, _listener, _options, AcceptLoopAsync(), IsRunning, ParseAddress(), StatusChanged.

|
inline |
TCP 수신기와 모든 클라이언트를 닫고 수락 루프를 종료합니다.
OmronFinsTcpSimulatorServer.cs 파일의 245 번째 라인에서 정의되었습니다.
다음을 참조함 : _acceptTask, _clients, _cts, _listener, _syncRoot, IsRunning, StatusChanged.
다음에 의해서 참조됨 : DisposeAsync().

|
private |
accept Task 값을 보관합니다.
OmronFinsTcpSimulatorServer.cs 파일의 89 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : StartAsync(), StopAsync().
|
private |
clients 값을 보관합니다.
OmronFinsTcpSimulatorServer.cs 파일의 53 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : AcceptLoopAsync(), ClientLoopAsync(), StopAsync().
|
private |
cts 값을 보관합니다.
OmronFinsTcpSimulatorServer.cs 파일의 80 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : StartAsync(), StopAsync().
|
private |
listener 값을 보관합니다.
OmronFinsTcpSimulatorServer.cs 파일의 71 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : AcceptLoopAsync(), StartAsync(), StopAsync().
|
private |
memory 값을 보관합니다.
OmronFinsTcpSimulatorServer.cs 파일의 35 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : OmronFinsTcpSimulatorServer().
|
private |
options 값을 보관합니다.
OmronFinsTcpSimulatorServer.cs 파일의 26 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : OmronFinsTcpSimulatorServer(), StartAsync().
|
private |
protocol 값을 보관합니다.
OmronFinsTcpSimulatorServer.cs 파일의 44 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ClientLoopAsync(), OmronFinsTcpSimulatorServer().
|
private |
sync Root 값을 보관합니다.
OmronFinsTcpSimulatorServer.cs 파일의 62 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : AcceptLoopAsync(), ClientLoopAsync(), StopAsync().
|
get |
TCP 수신기가 생성되어 서버가 실행 중인지 여부를 가져옵니다.
OmronFinsTcpSimulatorServer.cs 파일의 178 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : StartAsync(), StopAsync().
| EventHandler<string>? Dreamine.PLC.Omron.Fins.Simulation.OmronFinsTcpSimulatorServer.StatusChanged |
서버 상태 또는 프로토콜 상태가 변경될 때 발생합니다.
OmronFinsTcpSimulatorServer.cs 파일의 168 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ClientLoopAsync(), OmronFinsTcpSimulatorServer(), StartAsync(), StopAsync().