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

더 자세히 ...

정적 Public 멤버 함수

static string Ok (string? payload=null)
static string Error (string message)
static string FormatBits (IEnumerable< bool > values)
static string FormatWords (IEnumerable< short > values)
static bool[] ParseBits (string payload)
static short[] ParseWords (string payload)
static string ReadOkPayload (string line)

정적 Public 속성

const string ReadBits = "READ_BITS"
const string ReadWords = "READ_WORDS"
const string WriteBits = "WRITE_BITS"
const string WriteWords = "WRITE_WORDS"

정적 Private 멤버 함수

static string[] SplitValues (string payload)
static bool ParseBit (string text)

상세한 설명

Dreamine PLC 시뮬레이터 라인 프로토콜 도우미를 제공합니다.

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

멤버 함수 문서화

◆ Error()

string Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.Error ( string message)
inlinestatic

개행이 제거된 실패 응답 라인을 만듭니다.

매개변수
message실패 메시지입니다.
반환값
실패 응답 라인입니다.

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

109 {
110 return $"ERR {message.Replace('\r', ' ').Replace('\n', ' ')}";
111 }

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteLine(), Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteReadBits(), Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteReadWords(), Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteWriteBits(), Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteWriteWords().

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

◆ FormatBits()

string Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.FormatBits ( IEnumerable< bool > values)
inlinestatic

비트 값을 프로토콜 페이로드로 변환합니다.

매개변수
values비트 값입니다.
반환값
쉼표로 구분된 페이로드입니다.

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

138 {
139 return string.Join(',', values.Select(x => x ? "1" : "0"));
140 }

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteReadBits(), Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.WriteBitsCoreAsync().

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

◆ FormatWords()

string Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.FormatWords ( IEnumerable< short > values)
inlinestatic

워드 값을 프로토콜 페이로드로 변환합니다.

매개변수
values워드 값입니다.
반환값
쉼표로 구분된 페이로드입니다.

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

167 {
168 return string.Join(',', values.Select(x => x.ToString(CultureInfo.InvariantCulture)));
169 }

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteReadWords(), Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.WriteWordsCoreAsync().

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

◆ Ok()

string Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.Ok ( string? payload = null)
inlinestatic

성공 응답 라인을 만듭니다.

매개변수
payload선택적 응답 페이로드입니다.
반환값
성공 응답 라인입니다.

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

80 {
81 return string.IsNullOrWhiteSpace(payload) ? "OK" : $"OK {payload}";
82 }

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteReadBits(), Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteReadWords(), Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteWriteBits(), Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteWriteWords().

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

◆ ParseBit()

bool Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.ParseBit ( string text)
inlinestaticprivate

0, 1 또는 논리 문자열을 비트 값으로 구문 분석합니다.

매개변수
text구문 분석할 텍스트입니다.
반환값
구문 분석된 비트 값입니다.
예외
FormatException텍스트가 비트 값이 아닌 경우 발생합니다.

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

367 {
368 return text switch
369 {
370 "1" => true,
371 "0" => false,
372 _ when bool.TryParse(text, out var value) => value,
373 _ => throw new FormatException($"Invalid bit value: {text}")
374 };
375 }

다음에 의해서 참조됨 : ParseBits().

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

◆ ParseBits()

bool[] Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.ParseBits ( string payload)
inlinestatic

프로토콜 페이로드에서 비트 값을 구문 분석합니다.

매개변수
payload페이로드 텍스트입니다.
반환값
구문 분석된 비트 값입니다.
예외
FormatException유효하지 않은 비트 값이 포함된 경우 발생합니다.

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

204 {
205 return SplitValues(payload)
206 .Select(ParseBit)
207 .ToArray();
208 }

다음을 참조함 : ParseBit(), SplitValues().

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteWriteBits(), Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.ReadBitsCoreAsync().

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

◆ ParseWords()

short[] Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.ParseWords ( string payload)
inlinestatic

프로토콜 페이로드에서 워드 값을 구문 분석합니다.

매개변수
payload페이로드 텍스트입니다.
반환값
구문 분석된 워드 값입니다.
예외
FormatException유효하지 않은 워드 값이 포함된 경우 발생합니다.
OverflowException값이 short 범위를 벗어난 경우 발생합니다.

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

251 {
252 return SplitValues(payload)
253 .Select(x => short.Parse(x, CultureInfo.InvariantCulture))
254 .ToArray();
255 }

다음을 참조함 : SplitValues().

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteWriteWords(), Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.ReadWordsCoreAsync().

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

◆ ReadOkPayload()

string Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.ReadOkPayload ( string line)
inlinestatic

응답 라인에서 성공 페이로드를 추출합니다.

매개변수
line응답 라인입니다.
반환값
응답 페이로드입니다.
예외
InvalidOperationException오류 또는 잘못된 응답인 경우 발생합니다.

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

290 {
291 if (line.StartsWith("OK", StringComparison.OrdinalIgnoreCase))
292 {
293 return line.Length > 2 ? line[3..].Trim() : string.Empty;
294 }
295
296 if (line.StartsWith("ERR", StringComparison.OrdinalIgnoreCase))
297 {
298 var message = line.Length > 3 ? line[4..].Trim() : "PLC simulator error.";
299 throw new InvalidOperationException(message);
300 }
301
302 throw new InvalidOperationException($"Invalid PLC simulator response: {line}");
303 }

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorTcpClient.SendCommandAsync().

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

◆ SplitValues()

string[] Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.SplitValues ( string payload)
inlinestaticprivate

쉼표로 구분된 페이로드를 공백이 제거된 값으로 나눕니다.

매개변수
payload분할할 페이로드입니다.
반환값
비어 있지 않은 값 배열입니다.

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

330 {
331 return payload.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
332 }

다음에 의해서 참조됨 : ParseBits(), ParseWords().

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

멤버 데이터 문서화

◆ ReadBits

const string Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.ReadBits = "READ_BITS"
static

비트 읽기 명령 이름입니다.

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

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteLine().

◆ ReadWords

const string Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.ReadWords = "READ_WORDS"
static

워드 읽기 명령 이름입니다.

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

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteLine().

◆ WriteBits

const string Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.WriteBits = "WRITE_BITS"
static

비트 쓰기 명령 이름입니다.

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

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteLine().

◆ WriteWords

const string Dreamine.PLC.Core.Simulation.PlcSimulatorProtocol.WriteWords = "WRITE_WORDS"
static

워드 쓰기 명령 이름입니다.

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

다음에 의해서 참조됨 : Dreamine.PLC.Core.Simulation.PlcSimulatorServer.ExecuteLine().


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