SampleSmart 1.0.0.0
SampleSmart 사용 방법을 보여 주는 예제 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport 클래스 참조sealed

더 자세히 ...

SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport에 대한 상속 다이어그램 :
SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport에 대한 협력 다이어그램:

Public 멤버 함수

void SetInput (int channel, bool value)
void ToggleInputPattern ()
Task< IoResult > ConnectAsync (CancellationToken cancellationToken=default)
Task< IoResult > DisconnectAsync (CancellationToken cancellationToken=default)
Task< IoResult< byte[]> > SendAndReceiveAsync (IReadOnlyList< byte > requestFrame, int receiveTimeoutMs, int expectedResponseLength, CancellationToken cancellationToken=default)
ValueTask DisposeAsync ()

속성

bool IsConnected [get, private set]

Private 멤버 함수

string HandleRequest (string request)
void ThrowIfDisposed ()

정적 Private 멤버 함수

static string ToBitString (IReadOnlyList< bool > values)

Private 속성

readonly bool[] _inputs = new bool[16]
readonly bool[] _outputs = new bool[16]
bool _disposed

상세한 설명

Sample Fastech16 Point Transport 기능과 관련 상태를 캡슐화합니다.

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

멤버 함수 문서화

◆ ConnectAsync()

Task< IoResult > SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.ConnectAsync ( CancellationToken cancellationToken = default)
inline

Connect Async 작업을 수행합니다.

매개변수
cancellationToken취소 요청을 감시하는 토큰입니다.
반환값
Connect Async 작업에서 생성한 Task<IoResult> 결과입니다.

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

140 {
141 ThrowIfDisposed();
142 IsConnected = true;
143
144 return Task.FromResult(IoResult.Success());
145 }

다음을 참조함 : IsConnected, ThrowIfDisposed().

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

◆ DisconnectAsync()

Task< IoResult > SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.DisconnectAsync ( CancellationToken cancellationToken = default)
inline

Disconnect Async 작업을 수행합니다.

매개변수
cancellationToken취소 요청을 감시하는 토큰입니다.
반환값
Disconnect Async 작업에서 생성한 Task<IoResult> 결과입니다.

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

172 {
173 IsConnected = false;
174
175 return Task.FromResult(IoResult.Success());
176 }

다음을 참조함 : IsConnected.

◆ DisposeAsync()

ValueTask SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.DisposeAsync ( )
inline

이 인스턴스가 소유한 리소스를 해제합니다.

반환값
Dispose Async 작업에서 생성한 ValueTask 결과입니다.

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

263 {
264 _disposed = true;
265 IsConnected = false;
266
267 return ValueTask.CompletedTask;
268 }

다음을 참조함 : _disposed, IsConnected.

◆ HandleRequest()

string SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.HandleRequest ( string request)
inlineprivate

Handle Request 작업을 수행합니다.

매개변수
requestrequest에 사용할 string 값입니다.
반환값
Handle Request 작업에서 생성한 string 결과입니다.

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

295 {
296 if (request.StartsWith("RDI", StringComparison.OrdinalIgnoreCase))
297 {
298 return $"DI {ToBitString(_inputs)}";
299 }
300
301 if (request.StartsWith("RDO", StringComparison.OrdinalIgnoreCase))
302 {
303 return $"DO {ToBitString(_outputs)}";
304 }
305
306 if (request.StartsWith("WDO ", StringComparison.OrdinalIgnoreCase))
307 {
308 var bits = request[4..].Trim();
309 for (var i = 0; i < _outputs.Length && i < bits.Length; i++)
310 {
311 _outputs[i] = bits[i] == '1';
312 }
313
314 return "OK";
315 }
316
317 return "ERR Unknown sample request";
318 }

다음을 참조함 : _outputs.

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

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

◆ SendAndReceiveAsync()

Task< IoResult< byte[]> > SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.SendAndReceiveAsync ( IReadOnlyList< byte > requestFrame,
int receiveTimeoutMs,
int expectedResponseLength,
CancellationToken cancellationToken = default )
inline

Send And Receive Async 작업을 수행합니다.

매개변수
requestFramerequest Frame에 사용할 IReadOnlyList<byte> 값입니다.
receiveTimeoutMsreceive Timeout Ms에 사용할 int 값입니다.
expectedResponseLengthexpected Response Length에 사용할 int 값입니다.
cancellationToken취소 요청을 감시하는 토큰입니다.
반환값
Send And Receive Async 작업에서 생성한 Task<IoResult<byte[]>> 결과입니다.

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

231 {
232 ArgumentNullException.ThrowIfNull(requestFrame);
233 ThrowIfDisposed();
234
235 if (!IsConnected)
236 {
237 return Task.FromResult(IoResult<byte[]>.Failure("The sample Fastech transport is not connected."));
238 }
239
240 var request = Encoding.ASCII.GetString(requestFrame as byte[] ?? requestFrame.ToArray()).Trim();
241 var response = HandleRequest(request);
242
243 return Task.FromResult(IoResult<byte[]>.Success(Encoding.ASCII.GetBytes(response)));
244 }

다음을 참조함 : HandleRequest(), IsConnected, ThrowIfDisposed().

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

◆ SetInput()

void SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.SetInput ( int channel,
bool value )
inline

Input 값을 설정합니다.

매개변수
channelchannel에 사용할 int 값입니다.
value적용할 값입니다.
예외
ArgumentOutOfRangeException입력 값이 허용 범위를 벗어난 경우 발생합니다.

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

88 {
89 if (channel is < 0 or >= 16)
90 {
91 throw new ArgumentOutOfRangeException(nameof(channel), channel, "Channel must be between 0 and 15.");
92 }
93
94 _inputs[channel] = value;
95 }

다음을 참조함 : _inputs.

◆ ThrowIfDisposed()

void SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.ThrowIfDisposed ( )
inlineprivate

Throw If Disposed 작업을 수행합니다.

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

358 {
359 ObjectDisposedException.ThrowIf(_disposed, this);
360 }

다음을 참조함 : _disposed.

다음에 의해서 참조됨 : ConnectAsync(), SendAndReceiveAsync().

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

◆ ToBitString()

string SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.ToBitString ( IReadOnlyList< bool > values)
inlinestaticprivate

To Bit String 작업을 수행합니다.

매개변수
valuesvalues에 사용할 IReadOnlyList<bool> 값입니다.
반환값
To Bit String 작업에서 생성한 string 결과입니다.

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

345 {
346 return new string(values.Select(x => x ? '1' : '0').ToArray());
347 }

◆ ToggleInputPattern()

void SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.ToggleInputPattern ( )
inline

Toggle Input Pattern 작업을 수행합니다.

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

106 {
107 for (var i = 0; i < _inputs.Length; i++)
108 {
109 _inputs[i] = i % 2 == 0
110 ? !_inputs[i]
111 : _inputs[i];
112 }
113 }

다음을 참조함 : _inputs.

멤버 데이터 문서화

◆ _disposed

bool SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport._disposed
private

disposed 값을 보관합니다.

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

다음에 의해서 참조됨 : DisposeAsync(), ThrowIfDisposed().

◆ _inputs

readonly bool [] SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport._inputs = new bool[16]
private

inputs 값을 보관합니다.

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

다음에 의해서 참조됨 : SetInput(), ToggleInputPattern().

◆ _outputs

readonly bool [] SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport._outputs = new bool[16]
private

outputs 값을 보관합니다.

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

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

속성 문서화

◆ IsConnected

bool SampleSmart.Pages.PageSub.IoTabs.SampleFastech16PointTransport.IsConnected
getprivate set

Is Connected 값을 가져오거나 설정합니다.

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

53{ get; private set; }

다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync(), DisposeAsync(), SendAndReceiveAsync().


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