PDComm.HsmsOptions
클래스
HSMS(SEMI E37) 끝점의 옵션입니다. 역할, 세션, 타이머, 리소스 한도를 지정합니다.
public sealed record HsmsOptions모든 값은 명시적인 애플리케이션 정책이며, 바인딩은 SEMI 기본 타이머를 적용하지 않습니다. 모든 타이머, 타임아웃, 용량은 0이 아니어야 하며, 그렇지 않으면 끝점 생성이 PdcommStatus.InvalidArgument로 실패합니다.
HSMS 프레임은 4바이트 길이 필드, 10바이트 헤더, 메시지 본문으로 구성되므로 최대 본문 크기는 HsmsOptions.MaxFrameBytes에서 14를 뺀 값입니다. HsmsOptions.MaxFrameBytes가 14 이상이고, HsmsOptions.MaxWriteBytes가 HsmsOptions.MaxFrameBytes 이상이고, HsmsOptions.MaxApplicationBytes가 HsmsOptions.MaxFrameBytes에서 14를 뺀 값 이상이고, HsmsOptions.MaxEvents가 72 이상(끝점이 열 수 있는 거래 32개마다 이벤트 2개, 여기에 8을 더한 값)이 아니면 생성이 PdcommStatus.LimitExceeded로 실패합니다.
멤버
HsmsOptions
생성자
기본값으로 새 인스턴스를 초기화합니다.
public HsmsOptions()참고
- 객체 이니셜라이저에서 이 형식의 모든
required속성을 설정해야 합니다.
ConnectTimeoutMilliseconds
속성
액티브 끝점의 TCP 연결 타임아웃(밀리초)을 가져옵니다. 연결 시도 중에는 HsmsEndpoint.Poll이 최대 이 시간 동안 차단될 수 있습니다.
public required ulong ConnectTimeoutMilliseconds { get; init; }InitialSystemBytes
속성
이 끝점이 자신의 요청에 사용하는 첫 시스템 바이트 값을 가져옵니다.
public required uint InitialSystemBytes { get; init; }ItemLimits
속성
SECS-II 메시지 본문에 적용하는 한도를 가져옵니다.
public required SecsLimits ItemLimits { get; init; }MaxApplicationBytes
속성
HsmsEndpoint.NextEvent를 기다리는 이벤트 전체 본문 크기의 최댓값(바이트)을 가져옵니다.
public required nuint MaxApplicationBytes { get; init; }MaxApplicationEvents
속성
HsmsEndpoint.NextEvent를 기다리는 이벤트 큐의 용량을 가져옵니다.
public required nuint MaxApplicationEvents { get; init; }MaxEvents
속성
세션 내부 이벤트 큐의 용량을 가져옵니다. 72 이상입니다.
public required nuint MaxEvents { get; init; }MaxFrameBytes
속성
끝점이 보내거나 받는 최대 프레임 크기(바이트)를 가져옵니다. 프레이밍 바이트 14개를 포함합니다.
public required nuint MaxFrameBytes { get; init; }MaxIoChunk
속성
소켓 호출 한 번으로 읽거나 쓰는 최대 바이트 수를 가져옵니다.
public required nuint MaxIoChunk { get; init; }MaxQueuedBytes
속성
세션 내부 이벤트 큐에 보관되는 전체 본문 크기의 최댓값(바이트)을 가져옵니다.
public required nuint MaxQueuedBytes { get; init; }MaxWriteBytes
속성
쓰기를 기다리는 프레임 전체 크기의 최댓값(바이트)을 가져옵니다.
public required nuint MaxWriteBytes { get; init; }MaxWriteFrames
속성
쓰기를 기다리는 프레임의 최대 수를 가져옵니다.
public required nuint MaxWriteFrames { get; init; }Mode
속성
끝점이 연결하는지(HsmsMode.Active) 수신 대기하는지(HsmsMode.Passive)를 가져옵니다.
public required HsmsMode Mode { get; init; }PollBudget
속성
HsmsEndpoint.Poll 한 번이 수행하는 내부 동작의 최대 수를 가져옵니다.
public required nuint PollBudget { get; init; }SessionId
속성
데이터 메시지 헤더에 들어가는 HSMS 세션 ID(장치 ID)를 가져옵니다.
public required ushort SessionId { get; init; }ShutdownTimeoutMilliseconds
속성
중지 시 연결을 정상적으로 닫는 데 걸릴 수 있는 시간(밀리초)을 가져옵니다.
public required ulong ShutdownTimeoutMilliseconds { get; init; }T3Milliseconds
속성
T3 응답 타임아웃(밀리초)을 가져옵니다. 요청이 응답을 기다리는 시간입니다.
public required ulong T3Milliseconds { get; init; }T5Milliseconds
속성
T5 연결 분리 타임아웃(밀리초)을 가져옵니다. 액티브 끝점이 다시 연결하기 전에 기다리는 시간입니다.
public required ulong T5Milliseconds { get; init; }T6Milliseconds
속성
T6 제어 거래 타임아웃(밀리초)을 가져옵니다. Select, Deselect 또는 Linktest가 기다리는 시간입니다.
public required ulong T6Milliseconds { get; init; }T7Milliseconds
속성
T7 미선택 타임아웃(밀리초)을 가져옵니다. 연결이 선택되지 않은 상태로 머물 수 있는 시간입니다.
public required ulong T7Milliseconds { get; init; }T8Milliseconds
속성
한 프레임의 바이트 사이에 적용되는 T8 네트워크 문자 간 타임아웃(밀리초)을 가져옵니다.
public required ulong T8Milliseconds { get; init; }WriteTimeoutMilliseconds
속성
연결을 실패로 처리하기 전에 프레임 쓰기가 멈춰 있을 수 있는 시간(밀리초)을 가져옵니다.
public required ulong WriteTimeoutMilliseconds { get; init; }