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

더 자세히 ...

정적 Public 멤버 함수

static byte[] Wrap (IReadOnlyList< byte > finsFrame)
static byte[] Extract (ReadOnlySpan< byte > packet)

정적 Private 속성

static readonly byte[] Signature = Encoding.ASCII.GetBytes("FINS")

상세한 설명

FINS/TCP 패킷을 래핑하고 추출하는 최소 도우미를 제공합니다.

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

멤버 함수 문서화

◆ Extract()

byte[] Dreamine.PLC.Omron.Fins.Protocol.OmronFinsTcpPacket.Extract ( ReadOnlySpan< byte > packet)
inlinestatic

FINS/TCP 패킷에서 원시 FINS 프레임을 추출합니다.

매개변수
packet검사하고 추출할 FINS/TCP 패킷입니다.
반환값
헤더가 제거된 원시 FINS 프레임입니다.
예외
InvalidOperationException패킷이 너무 짧거나 서명이 올바르지 않거나 TCP 오류 코드를 포함할 때 발생합니다.

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

108 {
109 if (packet.Length < 16)
110 {
111 throw new InvalidOperationException($"FINS/TCP packet is too short. Length={packet.Length}.");
112 }
113
114 if (packet[0] != Signature[0] || packet[1] != Signature[1] || packet[2] != Signature[2] || packet[3] != Signature[3])
115 {
116 throw new InvalidOperationException("Invalid FINS/TCP signature.");
117 }
118
119 var errorCode = OmronFinsEndian.ReadInt32(packet, 12);
120 if (errorCode != 0)
121 {
122 throw new InvalidOperationException($"FINS/TCP error: 0x{errorCode:X8}.");
123 }
124
125 return packet[16..].ToArray();
126 }

다음을 참조함 : Dreamine.PLC.Omron.Fins.Protocol.OmronFinsEndian.ReadInt32(), Signature.

다음에 의해서 참조됨 : Dreamine.PLC.Omron.Fins.Simulation.OmronFinsTcpSimulatorServer.ClientLoopAsync(), Dreamine.PLC.Omron.Fins.Transport.TcpOmronFinsTransport.SendAndReceiveAsync().

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

◆ Wrap()

byte[] Dreamine.PLC.Omron.Fins.Protocol.OmronFinsTcpPacket.Wrap ( IReadOnlyList< byte > finsFrame)
inlinestatic

원시 FINS 명령 프레임을 FINS/TCP 패킷으로 래핑합니다.

매개변수
finsFrame래핑할 원시 FINS 프레임입니다.
반환값
FINS/TCP 헤더가 추가된 새 패킷입니다.
예외
ArgumentNullExceptionfinsFramenull일 때 발생합니다.

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

58 {
59 ArgumentNullException.ThrowIfNull(finsFrame);
60
61 var packet = new byte[16 + finsFrame.Count];
62 Buffer.BlockCopy(Signature, 0, packet, 0, Signature.Length);
63 OmronFinsEndian.WriteInt32(packet, 4, 8 + finsFrame.Count);
64 OmronFinsEndian.WriteInt32(packet, 8, 2);
65 OmronFinsEndian.WriteInt32(packet, 12, 0);
66
67 for (var index = 0; index < finsFrame.Count; index++)
68 {
69 packet[16 + index] = finsFrame[index];
70 }
71
72 return packet;
73 }

다음을 참조함 : Signature, Dreamine.PLC.Omron.Fins.Protocol.OmronFinsEndian.WriteInt32().

다음에 의해서 참조됨 : Dreamine.PLC.Omron.Fins.Simulation.OmronFinsTcpSimulatorServer.ClientLoopAsync(), Dreamine.PLC.Omron.Fins.Transport.TcpOmronFinsTransport.SendAndReceiveAsync().

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

멤버 데이터 문서화

◆ Signature

readonly byte [] Dreamine.PLC.Omron.Fins.Protocol.OmronFinsTcpPacket.Signature = Encoding.ASCII.GetBytes("FINS")
staticprivate

Signature 값을 보관합니다.

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

다음에 의해서 참조됨 : Extract(), Wrap().


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