iconDreamine
← 목록

Dreamine.Secs.Abstractions

stablev1.0.0

Dreamine SECS 통신을 위한 공통 계약과 프로바이더 경계.

#dreamine#secs#abstractions#communication#contracts#providers
TFM net8.0Package Dreamine.Secs.Abstractions참조 Dreamine.Communication.Abstractions
설치 dotnet add package Dreamine.Secs.Abstractions --version 1.0.0

Dreamine.Secs.Abstractions

Dreamine.Secs.Abstractions는 Dreamine SECS-II 및 HSMS-SS 통신의 공급자 독립 도메인/계약 계층입니다.

➡️ English Version

구현 범위

  • 불변 SecsMessage와 Session ID, Stream, Function, W-bit, System Bytes 값 형식
  • List, Binary, Boolean, ASCII, JIS-8 원시 바이트, I1/I2/I4/I8, U1/U2/U4/U8, F4/F8 SECS-II item
  • HSMS 10바이트 Header, Data/Control Message, SType/Status/Reject/State/Timer 모델
  • 구조화된 검증 결과와 Protocol/Decode/State/Transaction Timeout/HSMS Timer 예외. 완전한 Header를 확보한 경우 Decode 예외와 진단에 typed HSMS Header 문맥을 보존
  • 설정 가능한 T3/T5/T6/T7/T8 및 Frame/Message/List 중첩 깊이/List별 child 수 제한
  • 제한된 capture, drop 계수, 연결 epoch를 제공하는 opt-in 완전 Frame wire observation 계약과 특정 Logging 구현과 분리된 진단 sink
  • Dreamine.Communication.Abstractions 기반 공급자/연결 생명주기 계약
  • typed identity/state, System Bytes 자동 할당 W0/W1 송신 및 정상 SecsDialogueDefinition 상관관계를 제공하는 추가 provider-neutral ISecsMessageSession / ISecsMessageSessionProvider 계약
  • exact S/F 우선, fallback 처리, 명시적 drop 계수 및 connection epoch에 결합된 one-shot 응답을 제공하는 bounded 비동기 inbound Primary dispatcher

핵심 모델은 object, dynamic, 문자열 기반 형식 판별을 사용하지 않습니다. Item 생성 시 호출자 배열을 복사하고 값을 읽기 전용 메모리로 노출합니다.

Wire observation 경계

Wire observation은 기본적으로 비활성입니다. 구현에서 활성화하면 IHsmsWireObservationSource는 하나의 pull consumer를 노출하며 protocol 경로가 consumer를 호출하거나 기다리게 하지 않습니다. Observation은 4바이트 길이 prefix를 포함한 완전한 Frame을 설명하지만 CapturedBytes는 잘린 앞부분일 수 있고 sequence 번호의 공백은 drop을 뜻합니다. Capture된 바이트에는 민감한 application payload가 포함될 수 있으므로 그에 맞게 보호해야 합니다. 부분 Frame은 observation으로 보고하지 않습니다.

Message session 경계

기존 ISecsConnectionISecsCommunicationProvider는 변경하지 않았고 typed message session interface는 병렬로 추가한 계약입니다. Dispatcher는 exact 등록, fallback, legacy message event 순서로 claim합니다. exact W-bit 불일치도 claim하지만 응답할 수 없습니다. Bounded queue가 가득 찼거나 종료 중이면 이미 claim한 newest Primary를 drop하며 다른 경로로 넘기지 않습니다. 첫 응답 시도는 송신 실패나 취소 여부와 관계없이 ownership을 소비합니다.

Endpoint, Active/Passive mode, Session ID, role, timer, limit, AutoReconnect, dispatcher 및 wire observation 설정은 session 생성 시 snapshot입니다. 변경하려면 새 session을 만들고, 호출별 cancellation은 해당 작업에만 적용합니다. Role은 상위 application/responder policy이며 HSMS 상태 머신을 바꾸지 않습니다.

표준 경계

Wire 규칙은 로컬 보유 SEMI E5-0813 및 E37-0413 문서로 확인했습니다. 최신 Revision 준수, 인증 또는 벤더 상호운용성을 주장하지 않으며 SEMI 원문은 저장소에 포함하지 않습니다.

SECS-I, 2-byte character item, 상세 Stream 9 본문, SML, GEM, GEM300, 벤더 SDK 공급자와 UI는 제외 범위입니다.

의존성 경계

Dreamine.Secs.Abstractions
    -> Dreamine.Communication.Abstractions

이 프로젝트는 Dreamine.Secs.Com 또는 벤더 구현을 참조하지 않습니다.

라이선스

MIT.

구조 다이어그램

flowchart LR
    App["Application"] --> Contracts["Dreamine.Secs.Abstractions"]
    Contracts --> Secs["SECS-II typed model"]
    Contracts --> Hsms["HSMS model + options"]
    Contracts --> Diagnostics["Diagnostic contract"]
    Contracts --> Communication["Dreamine.Communication.Abstractions"]
    Provider["Registered provider"] -. implements .-> Contracts

API 문서

타입

HsmsConnectionState

\if KO HSMS 연결의 명시적 상태입니다. \endif \if EN Represents the explicit state of an HSMS connection. \endif

HsmsControlMessage

\if KO 본문이 없는 HSMS 제어 메시지입니다. \endif \if EN Represents an HSMS control message without message text. \endif

HsmsDataMessage

\if KO SECS-II 본문을 포함하는 HSMS 데이터 메시지입니다. \endif \if EN Represents an HSMS data message containing a SECS-II body. \endif

HsmsDeselectStatus

\if KO Deselect.rsp 상태입니다. \endif \if EN Lists Deselect.rsp status values used by this implementation. \endif

HsmsHeader

\if KO HSMS의 10바이트 헤더를 타입 안전하게 표현합니다. \endif \if EN Represents the ten-byte HSMS header with typed accessors. \endif

HsmsMessage

\if KO HSMS 데이터 또는 제어 메시지의 기본 형식입니다. \endif \if EN Base type for an HSMS data or control message. \endif

HsmsRejectReason

\if KO Reject.req 사유입니다. \endif \if EN Lists Reject.req reasons used by this implementation. \endif

HsmsSelectStatus

\if KO Select.rsp 상태입니다. \endif \if EN Lists Select.rsp status values used by this implementation. \endif

HsmsSessionOptions

\if KO 단일 HSMS 연결 설정입니다. \endif \if EN Configures one HSMS connection. \endif

HsmsStateException

\if KO 현재 HSMS 상태에서 허용되지 않은 작업을 나타냅니다. \endif \if EN Indicates an operation not permitted in the current HSMS state. \endif

HsmsSType

\if KO HSMS 메시지 세션 형식입니다. \endif \if EN Identifies an HSMS session type. \endif

HsmsTimerExpiredException

\if KO HSMS 타이머 만료를 나타냅니다. \endif \if EN Indicates expiration of an HSMS timer. \endif

HsmsTimerKind

\if KO 구현에서 사용하는 E37 타이머입니다. \endif \if EN Lists E37 timers used by the implementation. \endif

HsmsTimerOptions

\if KO E37-0413 범위와 기본값을 적용한 HSMS 타이머 설정입니다. \endif \if EN Configures HSMS timers with E37-0413 ranges and defaults. \endif

HsmsWireCaptureMode

\if KO wire snapshot에서 보존할 byte 범위를 지정합니다. \endif \if EN Specifies how many wire bytes an observation retains. \endif

HsmsWireCaptureRule

\if KO 특정 방향과 S/F에 적용할 wire capture 규칙입니다. \endif \if EN Defines a wire-capture rule for a direction and S/F. \endif

HsmsWireDirection

\if KO 완전한 HSMS wire frame의 방향을 나타냅니다. \endif \if EN Identifies the direction of a complete HSMS wire frame. \endif

HsmsWireObservation

\if KO 4-byte 길이 prefix를 포함한 하나의 완전한 HSMS frame의 불변 snapshot을 나타냅니다.부분 frame은 보고하지 않으며 capture된 byte에는 민감한 application payload가 포함될 수 있습니다. \endif \if EN Describes an immutable snapshot of one complete HSMS frame, including its four-byte length prefix. Partial frames are not reported. Captured bytes may contain sensitive application payload. \endif

HsmsWireObservationOptions

\if KO 완전한 HSMS wire frame의 opt-in capture를 설정합니다.Capture된 frame에는 민감한 application payload가 포함될 수 있으므로 그에 맞게 보호해야 합니다. \endif \if EN Configures the opt-in capture of complete HSMS wire frames. Captured frames can contain sensitive application payload and must be protected accordingly. \endif

IHsmsWireObservationSource

\if KO opt-in HSMS wire observation을 하나의 pull consumer가 읽는 stream을 노출합니다.protocol은 consumer를 호출하거나 기다리지 않습니다. \endif \if EN Exposes a single-pull-consumer stream of opt-in HSMS wire observations. The protocol never waits for or invokes a consumer. \endif

ISecsCommunicationProvider

\if KO 벤더 SDK 타입을 노출하지 않고 SECS 연결 구현을 생성하는 공급자 계약입니다. \endif \if EN Defines a provider that creates SECS connection implementations without exposing vendor SDK types. \endif

ISecsConnection

\if KO 공급자와 무관한 SECS 연결 생명주기 계약입니다. \endif \if EN Defines a provider-independent SECS connection lifecycle contract. \endif

ISecsDiagnosticSink

\if KO 특정 로깅 구현과 분리된 진단 수신 계약입니다. \endif \if EN Defines a diagnostic sink decoupled from a logging implementation. \endif

ISecsItemCodec

\if KO 네트워크와 독립적인 SECS-II item 변환 계약입니다. \endif \if EN Defines network-independent SECS-II item conversion. \endif

ISecsMessageSession

\if KO provider와 무관한 typed SECS-II/HSMS message session 계약입니다.저수준 expert API와 System Bytes를 자동 할당하는 안전한 W0/W1 API를 함께 제공합니다. \endif \if EN Defines a provider-independent typed SECS-II/HSMS message session.Provides both low-level expert APIs and safe W0/W1 APIs that allocate System Bytes automatically. \endif

ISecsMessageSessionProvider

\if KO 기존 연결 공급자 경계를 유지하면서 typed SECS message session을 생성하는 추가 공급자 계약입니다. \endif \if EN Adds typed SECS message-session creation while preserving the existing connection-provider boundary. \endif

ISecsPrimaryContext

\if KO dispatcher가 하나의 inbound Primary handler에 제공하는 immutable 처리 문맥입니다. \endif \if EN Defines the immutable processing context supplied to one inbound-primary handler. \endif

ISecsPrimaryDispatcher

\if KO inbound Primary를 exact S/F handler 우선, fallback handler 차선으로 전달하는 bounded dispatcher 계약입니다.exact S/F 등록은 실제 W-bit가 등록 정의와 달라도 message를 claim하고 handler에 전달합니다. 이 mismatch는 fallback 또는 legacy message event로 흘려보내지 않으며 추측 응답을 생성하지 않습니다.응답 ownership은 실제 inbound W-bit가 true이고 exact 등록도 W1인 경우에만 부여됩니다. exact W0, W-bit mismatch 및 fallback 문맥은 응답할 수 없습니다.accepted Primary는 bounded queue에 FIFO로 들어갑니다. queue가 가득 차면 dispatcher가 이미 claim한 newest Primary를 drop하며 fallback 또는 legacy message event로 넘기지 않습니다. 병렬 실행 수가 1보다 크면 handler 완료 순서는 보장되지 않습니다. \endif \if EN Defines a bounded dispatcher that routes inbound primaries to an exact S/F handler first and a fallback handler second.An exact S/F registration claims and delivers a message even when its actual W-bit differs from the registered definition. A mismatch never falls through to fallback or the legacy message event and never produces a guessed reply.Reply ownership is granted only when the actual inbound W-bit is true and the exact registration is also W1. Exact W0, W-bit mismatch, and fallback contexts cannot reply.Accepted primaries enter the bounded queue in FIFO order. When the queue is full, the dispatcher drops the newest primary that it already claimed; it never falls through to fallback or the legacy message event. Handler completion order is not guaranteed when concurrency is greater than one. \endif

SecsAsciiItem

\if KO ASCII item입니다. \endif \if EN Represents an ASCII item. \endif

SecsBinaryItem

\if KO Binary item입니다. \endif \if EN Represents a Binary item. \endif

SecsBooleanItem

\if KO Boolean item입니다. \endif \if EN Represents a Boolean item. \endif

SecsConnectionIdentity

\if KO 하나의 SECS message session과 현재 TCP 연결 epoch를 식별하는 불변 snapshot입니다.Connection Epoch 0은 아직 성공한 TCP 연결이 없음을 뜻합니다. 성공한 연결의 inbound 문맥은 양수 epoch를 사용해야 합니다. \endif \if EN Represents an immutable snapshot identifying one SECS message session and its current TCP connection epoch.Connection epoch zero means that no TCP connection has succeeded yet. Inbound context from a successful connection must use a positive epoch. \endif

SecsConnectionMode

\if KO SECS 연결 설정의 능동 또는 수동 모드를 나타냅니다. \endif \if EN Identifies the active or passive mode of a SECS connection configuration. \endif

SecsConnectionOptions

\if KO 공급자 선택과 역할 및 연결 모드에 필요한 최소 SECS 연결 설정입니다. \endif \if EN Defines the minimal SECS connection settings used for provider selection, role, and connection mode. \endif

SecsDecodeException

\if KO 잘리거나 잘못된 wire data를 나타냅니다. \endif \if EN Indicates truncated or malformed wire data. \endif

SecsDiagnosticEvent

\if KO 크기가 제한된 진단 레코드입니다. \endif \if EN Represents a size-bounded diagnostic record. \endif

SecsDiagnosticKind

\if KO SECS/HSMS 진단 이벤트 종류입니다. \endif \if EN Identifies a SECS/HSMS diagnostic event. \endif

SecsDialogueDefinition

\if KO 하나의 정상 SECS-II Primary 대화를 정의하는 불변 값입니다.Secondary가 없으면 W0이고, W1 대화의 정상 Secondary는 Primary Function 바로 다음의 짝수 Function이어야 합니다. F0은 특별한 transaction 종료이므로 정상 Secondary로 선언할 수 없습니다. \endif \if EN Defines one immutable normal SECS-II primary dialogue.A missing secondary represents W0. For W1, the normal secondary must be the even function immediately following the primary function. F0 is special transaction termination and cannot be declared as a normal secondary. \endif

SecsFloat32Item

\if KO F4 item입니다. \endif \if EN Represents an F4 item. \endif

SecsFloat64Item

\if KO F8 item입니다. \endif \if EN Represents an F8 item. \endif

SecsFunction

\if KO 0부터 255까지의 SECS 함수 번호입니다. \endif \if EN Represents a SECS function number from 0 through 255. \endif

SecsInt16Item

\if KO I2 item입니다. \endif \if EN Represents an I2 item. \endif

SecsInt32Item

\if KO I4 item입니다. \endif \if EN Represents an I4 item. \endif

SecsInt64Item

\if KO I8 item입니다. \endif \if EN Represents an I8 item. \endif

SecsInt8Item

\if KO I1 item입니다. \endif \if EN Represents an I1 item. \endif

SecsItem

\if KO 불변 SECS-II item의 기본 계약입니다. \endif \if EN Defines the base contract of an immutable SECS-II item. \endif

SecsItemFormat

\if KO E5-0813에서 확인한 SECS-II item format code입니다. \endif \if EN Lists SECS-II item format codes confirmed from E5-0813. \endif

SecsJis8Item

\if KO 인코딩 변환을 하지 않는 JIS-8 원시 바이트 item입니다. \endif \if EN Represents raw JIS-8 bytes without an implicit encoding conversion. \endif

SecsListItem

\if KO 불변 SECS-II 목록 item입니다. \endif \if EN Represents an immutable SECS-II list item. \endif

SecsMessage

\if KO 불변 SECS-II 데이터 메시지입니다. \endif \if EN Represents an immutable SECS-II data message. \endif

SecsPrimaryDispatcherOptions

\if KO inbound Primary dispatcher의 bounded queue와 handler 병렬 실행을 설정합니다.accepted Primary는 FIFO로 enqueue됩니다. queue가 가득 차면 dispatcher가 claim한 newest Primary를 drop하고 fallback 또는 legacy event로 넘기지 않습니다. 병렬 실행 수가 1보다 크면 완료 순서는 보장되지 않습니다. \endif \if EN Configures the bounded queue and handler concurrency of the inbound primary dispatcher.Accepted primaries are enqueued in FIFO order. A full queue drops the newest primary already claimed by the dispatcher without falling through to fallback or the legacy event. Completion order is not guaranteed when concurrency is greater than one. \endif

SecsProtocolException

\if KO SECS/HSMS 프로토콜 오류의 기본 예외입니다. \endif \if EN Base exception for SECS/HSMS protocol errors. \endif

SecsProviderKeys

\if KO 설정 저장과 공급자 등록에 사용하는 안정적인 SECS 공급자 키를 제공합니다. \endif \if EN Provides stable SECS provider keys for configuration persistence and provider registration. \endif

SecsRole

\if KO SECS 연결에서 애플리케이션이 담당하는 역할을 나타냅니다. \endif \if EN Identifies the application role in a SECS connection. \endif

SecsSessionId

\if KO SECS 데이터 메시지의 세션(장치) 식별자입니다. \endif \if EN Identifies the session (device) of a SECS data message. \endif

SecsSessionStateChangedEventArgs

\if KO 하나의 session에서 관찰된 typed TCP 및 HSMS 상태 전이의 불변 snapshot입니다.두 계층 중 하나만 변경된 경우 변경되지 않은 계층의 previous/current 값은 같을 수 있습니다. \endif \if EN Represents an immutable snapshot of a typed TCP and HSMS state transition observed by one session.When only one layer changes, the previous and current values of the unchanged layer can be equal. \endif

SecsStream

\if KO 0부터 127까지의 SECS 스트림 번호입니다. \endif \if EN Represents a SECS stream number from 0 through 127. \endif

SecsSystemBytes

\if KO 세션별 트랜잭션 상관관계 값입니다. \endif \if EN Represents a session-scoped transaction correlation value. \endif

SecsTransactionTimeoutException

\if KO 트랜잭션 제한 시간 만료를 나타냅니다. \endif \if EN Indicates transaction timeout expiration. \endif

SecsUInt16Item

\if KO U2 item입니다. \endif \if EN Represents a U2 item. \endif

SecsUInt32Item

\if KO U4 item입니다. \endif \if EN Represents a U4 item. \endif

SecsUInt64Item

\if KO U8 item입니다. \endif \if EN Represents a U8 item. \endif

SecsUInt8Item

\if KO U1 item입니다. \endif \if EN Represents a U1 item. \endif

SecsValidationCode

\if KO 프로토콜 검증 오류 종류입니다. \endif \if EN Identifies a protocol validation error. \endif

SecsValidationResult

\if KO 성공 또는 구조화된 프로토콜 오류를 반환합니다. \endif \if EN Returns either success or a structured protocol error. \endif

SecsValueItem`1

\if KO 형식이 지정된 불변 원자 item의 기본 클래스입니다. \endif \if EN Provides the base class for a typed immutable atomic item. \endif

HsmsConnectionState

ConnectedNotSelected Field

\if KO TCP 연결은 있으나 선택되지 않았습니다. \endif \if EN TCP is connected but not selected. \endif

NotConnected Field

\if KO TCP 연결이 없습니다. \endif \if EN No TCP connection exists. \endif

Selected Field

\if KO HSMS 통신이 선택되었습니다. \endif \if EN HSMS communication is selected. \endif

HsmsControlMessage

#ctor Method

\if KO 제어 메시지를 만듭니다. \endif \if EN Creates a control message. \endif

header— \if KO 제어 헤더입니다. \endif \if EN Control header. \endif
SType Property

\if KO 알려진 SType을 가져옵니다. \endif \if EN Gets the known SType. \endif

HsmsDataMessage

#ctor Method

\if KO 데이터 메시지를 만듭니다. \endif \if EN Creates a data message. \endif

message— \if KO SECS 메시지입니다. \endif \if EN SECS message. \endif
SecsMessage Property

\if KO SECS 메시지입니다. \endif \if EN Gets the SECS message. \endif

HsmsDeselectStatus

Busy Field

\if KO 통신이 사용 중입니다. \endif \if EN Communication is busy. \endif

NotEstablished Field

\if KO 통신이 설정되지 않았습니다. \endif \if EN Communication was not established. \endif

Success Field

\if KO 통신이 종료되었습니다. \endif \if EN Communication ended. \endif

HsmsHeader

#ctor Method

\if KO 헤더를 만듭니다. \endif \if EN Creates a header. \endif

sessionId— \if KO 세션 필드입니다. \endif \if EN Session field. \endif
headerByte2— \if KO 세 번째 헤더 바이트입니다. \endif \if EN Header byte two. \endif
headerByte3— \if KO 네 번째 헤더 바이트입니다. \endif \if EN Header byte three. \endif
pType— \if KO PType입니다. \endif \if EN PType. \endif
sType— \if KO SType입니다. \endif \if EN SType. \endif
systemBytes— \if KO 시스템 바이트입니다. \endif \if EN System bytes. \endif
CreateControl Method

\if KO 제어 헤더를 만듭니다. \endif \if EN Creates a control header. \endif

sType— \if KO 제어 형식입니다. \endif \if EN Control type. \endif
systemBytes— \if KO 시스템 바이트입니다. \endif \if EN System bytes. \endif
headerByte2— \if KO 제어 관련 값입니다. \endif \if EN Control-related value. \endif
headerByte3— \if KO 상태/사유 값입니다. \endif \if EN Status/reason value. \endif
sessionId— \if KO 세션 필드입니다. \endif \if EN Session field. \endif

반환: \if KO 제어 헤더입니다. \endif \if EN Control header. \endif

CreateData Method

\if KO SECS 메시지로 데이터 헤더를 만듭니다. \endif \if EN Creates a data header from a SECS message. \endif

message— \if KO 메시지입니다. \endif \if EN Message. \endif

반환: \if KO 데이터 헤더입니다. \endif \if EN Data header. \endif

Function Property

\if KO 데이터 헤더의 함수 번호입니다. \endif \if EN Gets the function number of a data header. \endif

HeaderByte2 Property

\if KO 스트림 또는 제어 관련 값입니다. \endif \if EN Gets the stream or control-related value. \endif

HeaderByte3 Property

\if KO 함수 또는 상태/사유 값입니다. \endif \if EN Gets the function or status/reason value. \endif

IsData Property

\if KO 데이터 메시지 여부입니다. \endif \if EN Gets whether this is a data header. \endif

PType Property

\if KO 표현 형식입니다. \endif \if EN Gets the presentation type. \endif

ReplyExpected Property

\if KO 데이터 헤더의 W-bit입니다. \endif \if EN Gets the W-bit of a data header. \endif

SessionId Property

\if KO 세션 필드입니다. \endif \if EN Gets the session field. \endif

Stream Property

\if KO 데이터 헤더의 스트림 번호입니다. \endif \if EN Gets the stream number of a data header. \endif

SType Property

\if KO 세션 형식 원시 값입니다. \endif \if EN Gets the raw session type. \endif

SystemBytes Property

\if KO 시스템 바이트입니다. \endif \if EN Gets the system bytes. \endif

HsmsMessage

#ctor Method

\if KO 헤더로 메시지를 초기화합니다. \endif \if EN Initializes the message with a header. \endif

header— \if KO 헤더입니다. \endif \if EN Header. \endif
Header Property

\if KO 10바이트 헤더 모델입니다. \endif \if EN Gets the ten-byte header model. \endif

HsmsRejectReason

NotSelected Field

\if KO 선택되지 않은 상태입니다. \endif \if EN Entity is not selected. \endif

TransactionNotOpen Field

\if KO 열린 트랜잭션이 없습니다. \endif \if EN No open transaction. \endif

UnsupportedPType Field

\if KO 지원하지 않는 PType입니다. \endif \if EN Unsupported PType. \endif

UnsupportedSType Field

\if KO 지원하지 않는 SType입니다. \endif \if EN Unsupported SType. \endif

HsmsSelectStatus

AlreadyActive Field

\if KO 이미 활성 상태입니다. \endif \if EN Communication already active. \endif

Exhausted Field

\if KO 연결 자원이 고갈되었습니다. \endif \if EN Connection resources exhausted. \endif

NotReady Field

\if KO 연결이 준비되지 않았습니다. \endif \if EN Connection not ready. \endif

Success Field

\if KO 통신이 설정되었습니다. \endif \if EN Communication established. \endif

HsmsSessionOptions

Validate Method

\if KO 설정을 검증합니다. \endif \if EN Validates the settings. \endif

AutoReconnect Property

\if KO 연결 종료 후 능동 재연결 여부입니다. \endif \if EN Gets whether an active endpoint reconnects after disconnection. \endif

Host Property

\if KO 원격 또는 바인딩 호스트입니다. \endif \if EN Gets the remote or bind host. \endif

MaximumFrameLength Property

\if KO 최대 프레임 길이(헤더와 text 포함)입니다. \endif \if EN Gets the maximum frame length including header and text. \endif

MaximumListItemCount Property

\if KO 하나의 SECS-II List item에 허용되는 최대 child 수를 가져옵니다. \endif \if EN Gets the maximum child count permitted in one SECS-II List item. \endif

MaximumMessageLength Property

\if KO 10-byte HSMS header를 예약한 에서 null 값을 유도하는 선택적 최대 SECS-II item encode 길이입니다. \endif \if EN Gets the optional maximum encoded SECS-II item length. A null value derives the limit from after reserving the ten-byte HSMS header. \endif

MaximumNestingDepth Property

\if KO 허용되는 최대 SECS-II List 중첩 깊이를 가져옵니다. \endif \if EN Gets the maximum permitted SECS-II List nesting depth. \endif

Mode Property

\if KO 능동/수동 TCP 방향입니다. \endif \if EN Gets the active/passive TCP direction. \endif

Port Property

\if KO TCP 포트입니다. \endif \if EN Gets the TCP port. \endif

PrimaryDispatcher Property

\if KO bounded inbound Primary dispatcher 설정을 가져옵니다. \endif \if EN Gets the bounded inbound-primary dispatcher settings. \endif

Role Property

\if KO Host/Equipment SECS 역할입니다. \endif \if EN Gets the Host/Equipment SECS role. \endif

SessionId Property

\if KO 데이터 메시지의 세션 식별자입니다. \endif \if EN Gets the data-message session identifier. \endif

Timers Property

\if KO HSMS 타이머 설정입니다. \endif \if EN Gets the HSMS timer settings. \endif

WireObservation Property

\if KO 완전한 frame의 선택적 wire observation 설정을 가져옵니다. Raw frame에 민감 payload가 포함될 수 있어 기본값은 비활성입니다. \endif \if EN Gets optional complete-frame wire observation settings. The feature is disabled by default because raw frames can contain sensitive payload. \endif

HsmsStateException

#ctor Method

\if KO 상태와 작업으로 예외를 만듭니다. \endif \if EN Creates the exception with state and operation. \endif

state— \if KO 현재 상태입니다. \endif \if EN Current state. \endif
operation— \if KO 작업입니다. \endif \if EN Operation. \endif
Operation Property

\if KO 거부된 작업입니다. \endif \if EN Gets the rejected operation. \endif

State Property

\if KO 현재 상태입니다. \endif \if EN Gets the current state. \endif

HsmsSType

Data Field

\if KO 데이터 메시지입니다. \endif \if EN Data message. \endif

DeselectRequest Field

\if KO 선택 해제 요청입니다. \endif \if EN Deselect request. \endif

DeselectResponse Field

\if KO 선택 해제 응답입니다. \endif \if EN Deselect response. \endif

LinktestRequest Field

\if KO 링크 테스트 요청입니다. \endif \if EN Link-test request. \endif

LinktestResponse Field

\if KO 링크 테스트 응답입니다. \endif \if EN Link-test response. \endif

RejectRequest Field

\if KO 거절 요청입니다. \endif \if EN Reject request. \endif

SelectRequest Field

\if KO 선택 요청입니다. \endif \if EN Select request. \endif

SelectResponse Field

\if KO 선택 응답입니다. \endif \if EN Select response. \endif

SeparateRequest Field

\if KO 분리 요청입니다. \endif \if EN Separate request. \endif

HsmsTimerExpiredException

#ctor Method

\if KO 타이머 이름과 기간으로 예외를 만듭니다. \endif \if EN Creates the exception with a timer name and duration. \endif

timerName— \if KO 타이머 이름입니다. \endif \if EN Timer name. \endif
timeout— \if KO 기간입니다. \endif \if EN Duration. \endif
Timeout Property

\if KO 설정된 기간입니다. \endif \if EN Gets the configured duration. \endif

TimerName Property

\if KO 만료된 타이머 이름입니다. \endif \if EN Gets the expired timer name. \endif

HsmsTimerKind

T3 Field

\if KO 응답 제한 시간입니다. \endif \if EN Reply timeout. \endif

T5 Field

\if KO 연결 재시도 분리 시간입니다. \endif \if EN Connection retry separation time. \endif

T6 Field

\if KO 제어 transaction 제한 시간입니다. \endif \if EN Control transaction timeout. \endif

T7 Field

\if KO 미선택 상태 제한 시간입니다. \endif \if EN Not-selected timeout. \endif

T8 Field

\if KO 바이트 간 제한 시간입니다. \endif \if EN Inter-character timeout. \endif

HsmsTimerOptions

Validate Method

\if KO 설정값을 표준 범위로 검증합니다. \endif \if EN Validates values against the standard ranges. \endif

T3 Property

\if KO T3 응답 제한 시간입니다. \endif \if EN Gets the T3 reply timeout. \endif

T5 Property

\if KO T5 재연결 분리 시간입니다. \endif \if EN Gets the T5 reconnect-separation time. \endif

T6 Property

\if KO T6 제어 트랜잭션 제한 시간입니다. \endif \if EN Gets the T6 control-transaction timeout. \endif

T7 Property

\if KO T7 미선택 상태 제한 시간입니다. \endif \if EN Gets the T7 not-selected timeout. \endif

T8 Property

\if KO T8 바이트 간 제한 시간입니다. \endif \if EN Gets the T8 inter-character timeout. \endif

HsmsWireCaptureMode

Excluded Field

\if KO frame metadata만 보존하고 wire byte는 복사하지 않습니다. \endif \if EN Retains frame metadata without copying wire bytes. \endif

FullFrame Field

\if KO 설정된 byte 상한까지 완전한 frame 앞부분을 보존합니다. \endif \if EN Retains the complete-frame prefix up to the configured byte limit. \endif

HeaderOnly Field

\if KO 4-byte 길이 prefix와 10-byte HSMS header만 보존합니다. \endif \if EN Retains only the four-byte length prefix and ten-byte HSMS header. \endif

HsmsWireCaptureRule

#ctor Method

\if KO capture 규칙을 만듭니다. \endif \if EN Creates a capture rule. \endif

stream— \if KO 데이터 메시지 Stream입니다. \endif \if EN Data-message stream. \endif
function— \if KO 데이터 메시지 Function입니다. \endif \if EN Data-message function. \endif
direction— \if KO 적용할 방향이며 null이면 양방향입니다. \endif \if EN Direction to match, or null for both directions. \endif
mode— \if KO capture 모드입니다. \endif \if EN Capture mode. \endif
maximumCapturedBytes— \if KO FullFrame에서 보존할 최대 byte입니다. \endif \if EN Maximum retained bytes for FullFrame. \endif
Direction Property

\if KO 적용 방향 또는 양방향을 뜻하는 null을 가져옵니다. \endif \if EN Gets the direction, or null for both directions. \endif

Function Property

\if KO Function을 가져옵니다. \endif \if EN Gets the function. \endif

MaximumCapturedBytes Property

\if KO FullFrame의 byte 상한을 가져옵니다. \endif \if EN Gets the FullFrame byte limit. \endif

Mode Property

\if KO capture 모드를 가져옵니다. \endif \if EN Gets the capture mode. \endif

Stream Property

\if KO Stream을 가져옵니다. \endif \if EN Gets the stream. \endif

HsmsWireDirection

Inbound Field

\if KO 원격 endpoint에서 읽은 frame입니다. \endif \if EN A frame read from the remote endpoint. \endif

Outbound Field

\if KO 원격 endpoint로 기록한 frame입니다. \endif \if EN A frame written to the remote endpoint. \endif

HsmsWireObservation

#ctor Method

\if KO 완전한 frame observation을 만듭니다. \endif \if EN Creates a complete-frame observation. \endif

#ctor Method

\if KO typed HSMS header metadata를 포함한 완전한 frame observation을 만듭니다. \endif \if EN Creates a complete-frame observation with typed HSMS header metadata. \endif

ActualByteCount Property

\if KO 4-byte prefix를 포함한 완전한 frame byte 수를 가져옵니다. \endif \if EN Gets the complete frame byte count, including the four-byte prefix. \endif

CapturedBytes Property

\if KO 완전한 frame에서 불변으로 보존한 앞부분을 가져옵니다. \endif \if EN Gets an immutable retained prefix of the complete frame. \endif

ConnectionEpoch Property

\if KO 성공한 TCP 연결마다 단조 증가하는 epoch를 가져옵니다. \endif \if EN Gets the monotonically increasing successful TCP connection epoch. \endif

DeclaredFrameLength Property

\if KO prefix 자체를 제외하고 prefix가 선언한 길이를 가져옵니다. \endif \if EN Gets the length declared by the prefix, excluding the prefix itself. \endif

Direction Property

\if KO wire 방향을 가져옵니다. \endif \if EN Gets the wire direction. \endif

Header Property

\if KO payload capture 여부와 무관하게 읽은 typed HSMS header를 가져옵니다. 완전한 header를 읽지 못했으면 null입니다. \endif \if EN Gets the typed HSMS header independently of payload capture, or null when a complete header was unavailable. \endif

IsCaptureTruncated Property

\if KO 설정된 capture 제한 때문에 보존 snapshot이 잘렸는지 가져옵니다. \endif \if EN Gets whether the configured capture limit truncated the retained snapshot. \endif

ObservedAtUtc Property

\if KO UTC observation 시각을 가져옵니다. \endif \if EN Gets the UTC observation timestamp. \endif

SequenceNumber Property

\if KO session 전체에서 단조 증가하는 observation 시도 번호입니다. 번호의 공백은 drop된 observation을 뜻합니다. \endif \if EN Gets the session-wide monotonic observation attempt number. Gaps represent dropped observations. \endif

HsmsWireObservationOptions

Validate Method

\if KO queue와 retained-payload 제한을 검증합니다. \endif \if EN Validates the queue and retained-payload limits. \endif

CaptureRules Property

\if KO payload 복사 전에 평가할 S/F capture 규칙을 가져옵니다. 방향별 규칙은 양방향 규칙보다 우선합니다. \endif \if EN Gets S/F capture rules evaluated before payload copying. Direction-specific rules take precedence over bidirectional rules. \endif

DefaultCaptureMode Property

\if KO 일치하는 S/F 규칙이 없을 때 적용할 capture 모드입니다. 기존 호환성을 위해 기본값은 FullFrame입니다. \endif \if EN Gets the capture mode used when no S/F rule matches. The default remains FullFrame for compatibility. \endif

MaximumCapturedBytes Property

\if KO 각 완전한 frame에서 보존할 최대 byte 수를 가져옵니다. \endif \if EN Gets the maximum number of bytes retained from each complete frame. \endif

QueueCapacity Property

\if KO bounded observation queue capacity를 가져옵니다. \endif \if EN Gets the bounded observation queue capacity. \endif

MaximumRetainedPayloadBytes Field

\if KO bounded observation queue 전체에서 보존할 수 있는 최대 payload byte입니다. \endif \if EN The maximum retained payload budget across the bounded observation queue. \endif

IHsmsWireObservationSource

ReadWireObservationsAsync Method

\if KO observation을 읽습니다. 동시에 하나의 활성 enumerator만 지원합니다. \endif \if EN Reads observations. Only one active enumerator is supported at a time. \endif

DroppedWireObservationCount Property

\if KO bounded queue가 가득 차 drop된 observation 수를 가져옵니다. \endif \if EN Gets the number of observations dropped because the bounded queue was full. \endif

IsWireObservationEnabled Property

\if KO 연결 생성 시 wire observation이 활성화됐는지 가져옵니다. \endif \if EN Gets whether wire observation was enabled when the connection was created. \endif

ISecsCommunicationProvider

CreateConnection Method

\if KO 지정한 설정에 대한 연결 인스턴스를 생성합니다. \endif \if EN Creates a connection instance for the specified options. \endif

options— \if KO 공급자, 역할 및 연결 모드 설정입니다. \endif \if EN The provider, role, and connection-mode settings. \endif

반환: \if KO 생성된 공급자 독립 연결 계약입니다. \endif \if EN The created provider-independent connection contract. \endif

Key Property

\if KO 설정과 Registry 조회에 사용할 안정적인 공급자 키를 가져옵니다. \endif \if EN Gets the stable provider key used by configuration and registry lookup. \endif

ISecsConnection

ProviderKey Property

\if KO 이 연결을 생성한 공급자의 안정적인 키를 가져옵니다. \endif \if EN Gets the stable key of the provider that created this connection. \endif

ISecsDiagnosticSink

Emit Method

\if KO 진단 이벤트를 게시합니다. \endif \if EN Publishes a diagnostic event. \endif

diagnosticEvent— \if KO 이벤트입니다. \endif \if EN Event. \endif

ISecsItemCodec

Decode Method

\if KO 전체 입력을 하나의 item으로 디코딩합니다. \endif \if EN Decodes all input as one item. \endif

data— \if KO wire data입니다. \endif \if EN Wire data. \endif

반환: \if KO 디코딩된 item입니다. \endif \if EN Decoded item. \endif

Encode Method

\if KO item을 wire byte로 인코딩합니다. \endif \if EN Encodes an item to wire bytes. \endif

item— \if KO item입니다. \endif \if EN The item. \endif

반환: \if KO 인코딩 결과입니다. \endif \if EN Encoded bytes. \endif

Validate Method

\if KO 예외 없이 입력을 검증합니다. \endif \if EN Validates input without throwing a protocol exception. \endif

data— \if KO wire data입니다. \endif \if EN Wire data. \endif

반환: \if KO 검증 결과입니다. \endif \if EN Validation result. \endif

ISecsMessageSession

AllocateSystemBytes Method

\if KO 열린 transaction과 충돌하지 않는 System Bytes를 할당하는 expert API입니다. \endif \if EN Expert API that allocates System Bytes not colliding with an open transaction. \endif

DeselectAsync Method

\if KO HSMS Deselect transaction을 수행합니다. \endif \if EN Performs an HSMS Deselect transaction. \endif

LinktestAsync Method

\if KO HSMS Linktest transaction을 수행합니다. \endif \if EN Performs an HSMS Linktest transaction. \endif

RequestAsync Method

\if KO W1 대화 정의와 자동 할당된 System Bytes로 Primary를 보내고 선언된 정상 Secondary를 기다립니다. \endif \if EN Sends a primary using a W1 dialogue and automatically allocated System Bytes, then waits for the declared normal secondary. \endif

dialogue— \if KO 인접 정상 Secondary가 선언된 W1 대화입니다. \endif \if EN A W1 dialogue declaring its adjacent normal secondary. \endif
item— \if KO 선택적 Primary body입니다. \endif \if EN The optional primary body. \endif
cancellationToken— \if KO 취소 토큰입니다. \endif \if EN The cancellation token. \endif
SelectAsync Method

\if KO HSMS Select transaction을 수행합니다. \endif \if EN Performs an HSMS Select transaction. \endif

SendAsync Method

\if KO 응답 transaction을 열지 않는 완성된 message를 보내는 expert API입니다. \endif \if EN Expert API that sends a complete message without opening a reply transaction. \endif

SendAsync Method

\if KO 설정된 Session ID와 자동 할당된 System Bytes로 안전한 W0 Primary를 보냅니다. \endif \if EN Sends a safe W0 primary with the configured session ID and automatically allocated System Bytes. \endif

stream— \if KO 1부터 127까지의 Stream입니다. \endif \if EN The stream from 1 through 127. \endif
function— \if KO 0이 아닌 홀수 Primary Function입니다. \endif \if EN The nonzero odd primary function. \endif
item— \if KO 선택적 message body입니다. \endif \if EN The optional message body. \endif
cancellationToken— \if KO 취소 토큰입니다. \endif \if EN The cancellation token. \endif
SendPrimaryAsync Method

\if KO 완성된 W-bit Primary를 보내고 정상 Secondary를 기다리는 expert API입니다. \endif \if EN Expert API that sends a complete W-bit primary and waits for its normal secondary. \endif

SeparateAsync Method

\if KO HSMS Separate request를 보내고 현재 연결을 종료합니다. \endif \if EN Sends an HSMS Separate request and closes the current connection. \endif

ConnectionIdentity Property

\if KO session instance와 현재 연결 epoch의 typed identity를 가져옵니다. \endif \if EN Gets the typed identity of the session instance and current connection epoch. \endif

HsmsState Property

\if KO 현재 HSMS protocol 상태를 가져옵니다. \endif \if EN Gets the current HSMS protocol state. \endif

PrimaryDispatcher Property

\if KO inbound Primary를 정확한 S/F 또는 fallback handler로 전달하는 bounded dispatcher를 가져옵니다. \endif \if EN Gets the bounded dispatcher that routes inbound primaries to exact S/F or fallback handlers. \endif

DiagnosticReceived Event

\if KO session의 typed bounded 진단 이벤트에 대해 발생합니다. \endif \if EN Raised for a typed, bounded session diagnostic event. \endif

MessageReceived Event

\if KO 선택된 session에서 전달된 SECS message에 대해 발생합니다. \endif \if EN Raised for a SECS message delivered by a selected session. \endif

StateChanged Event

\if KO TCP lifecycle 또는 HSMS protocol 상태가 변경될 때 previous/current typed snapshot과 함께 발생합니다. \endif \if EN Raised with a typed previous/current snapshot when the TCP lifecycle or HSMS protocol state changes. \endif

ISecsMessageSessionProvider

CreateSession Method

\if KO provider-neutral 설정으로 typed message session을 생성합니다. \endif \if EN Creates a typed message session from provider-neutral settings. \endif

options— \if KO 공급자, 역할 및 연결 모드 설정입니다. \endif \if EN Provider, role, and connection-mode settings. \endif

반환: \if KO 생성된 typed message session입니다. \endif \if EN The created typed message session. \endif

ISecsPrimaryContext

ReplyAsync Method

\if KO 가 true일 때 동일한 Session ID, Stream, System Bytes와 등록된 정상 Secondary Function으로 응답합니다. false일 때는 추측 응답을 만들지 않고 실패합니다. 첫 응답 시도는 송신 성공, 실패 또는 취소와 관계없이 ownership을 영구 소비하므로 이후 호출은 실패합니다. \endif \if EN When is true, replies with the same session ID, stream, and System Bytes and the registered normal secondary function. When false, it fails without constructing a guessed reply. The first reply attempt permanently consumes ownership regardless of send success, failure, or cancellation, so later calls fail. \endif

item— \if KO 선택적 Secondary body입니다. \endif \if EN The optional secondary body. \endif
cancellationToken— \if KO 취소 토큰입니다. \endif \if EN The cancellation token. \endif
CanReply Property

\if KO 실제 inbound W-bit가 true이고 exact 등록도 W1일 때만 one-shot 정상 Secondary가 허용되는지 가져옵니다. exact W0, actual/registered W mismatch 및 fallback은 false입니다. \endif \if EN Gets whether a one-shot normal secondary is permitted, which requires both an actual inbound W-bit of true and an exact W1 registration. Exact W0, actual/registered W mismatch, and fallback contexts return false. \endif

ConnectionIdentity Property

\if KO Primary를 수신한 session과 connection epoch의 identity를 가져옵니다. inbound 문맥의 epoch는 양수입니다. \endif \if EN Gets the session and positive connection-epoch identity on which the primary was received. \endif

Primary Property

\if KO 수신된 immutable Primary message를 가져옵니다. \endif \if EN Gets the received immutable primary message. \endif

ISecsPrimaryDispatcher

Register Method

\if KO exact Stream/Primary Function handler를 등록합니다. 반환된 handle을 해제하면 등록이 제거됩니다. \endif \if EN Registers an exact stream/primary-function handler. Disposing the returned handle removes the registration. \endif

dialogue— \if KO W0 또는 정상 W1 대화 정의입니다. \endif \if EN A W0 or normal W1 dialogue definition. \endif
handler— \if KO 비동기 Primary handler입니다. \endif \if EN The asynchronous primary handler. \endif

반환: \if KO 등록 수명 handle입니다. \endif \if EN A registration-lifetime handle. \endif

RegisterFallback Method

\if KO exact S/F 등록이 없는 Primary를 claim하는 fallback handler를 등록합니다. fallback 문맥은 실제 W-bit와 관계없이 응답할 수 없습니다. \endif \if EN Registers the fallback handler that claims primaries without an exact S/F registration. A fallback context cannot reply regardless of the actual W-bit. \endif

handler— \if KO 비동기 fallback handler입니다. \endif \if EN The asynchronous fallback handler. \endif

반환: \if KO 등록 수명 handle입니다. \endif \if EN A registration-lifetime handle. \endif

DroppedPrimaryCount Property

\if KO bounded queue 포화 또는 dispatcher 종료로 인해 claim된 뒤 enqueue되지 못한 inbound Primary 수를 가져옵니다. \endif \if EN Gets the number of inbound primaries claimed but not enqueued because the bounded queue was full or the dispatcher was stopping. \endif

SecsAsciiItem

#ctor Method

\if KO ASCII 문자열을 만듭니다. \endif \if EN Creates an ASCII string item. \endif

value— \if KO 문자열입니다. \endif \if EN The string. \endif
BodyLength Property
Count Property
Format Property
Value Property

\if KO 문자열을 가져옵니다. \endif \if EN Gets the string. \endif

SecsBinaryItem

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsBooleanItem

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsConnectionIdentity

#ctor Method

\if KO 검증된 연결 식별 snapshot을 만듭니다. \endif \if EN Creates a validated connection-identity snapshot. \endif

providerKey— \if KO 안정적인 공급자 키입니다. \endif \if EN The stable provider key. \endif
sessionInstanceId— \if KO process 수명 동안 안정적인 non-empty session instance ID입니다. \endif \if EN A stable, non-empty session instance ID for the process lifetime. \endif
connectionEpoch— \if KO 아직 연결되지 않았으면 0이고, 성공한 TCP 연결마다 증가하는 epoch입니다. \endif \if EN Zero before the first connection, otherwise the epoch increasing for each successful TCP connection. \endif
sessionId— \if KO 설정된 SECS Session ID입니다. \endif \if EN The configured SECS session ID. \endif
role— \if KO 설정된 Host 또는 Equipment 역할입니다. \endif \if EN The configured Host or Equipment role. \endif
mode— \if KO 설정된 Active 또는 Passive 모드입니다. \endif \if EN The configured Active or Passive mode. \endif
ConnectionEpoch Property

\if KO 성공한 TCP 연결 epoch를 가져옵니다. 0은 아직 성공한 연결이 없음을 뜻합니다. \endif \if EN Gets the successful TCP connection epoch; zero means no connection has succeeded yet. \endif

Mode Property

\if KO 설정된 연결 모드를 가져옵니다. \endif \if EN Gets the configured connection mode. \endif

ProviderKey Property

\if KO 안정적인 공급자 키를 가져옵니다. \endif \if EN Gets the stable provider key. \endif

Role Property

\if KO 설정된 SECS 역할을 가져옵니다. \endif \if EN Gets the configured SECS role. \endif

SessionId Property

\if KO 설정된 SECS Session ID를 가져옵니다. \endif \if EN Gets the configured SECS session ID. \endif

SessionInstanceId Property

\if KO process 수명 동안 안정적인 session instance ID를 가져옵니다. \endif \if EN Gets the session instance ID stable for the process lifetime. \endif

SecsConnectionMode

Active Field

\if KO 연결을 시작하는 능동 모드입니다. \endif \if EN The active mode that initiates a connection. \endif

Passive Field

\if KO 연결을 기다리는 수동 모드입니다. \endif \if EN The passive mode that waits for a connection. \endif

Unspecified Field

\if KO 연결 모드가 아직 명시되지 않았습니다. \endif \if EN The connection mode has not been specified. \endif

SecsConnectionOptions

Mode Property

\if KO 연결의 능동 또는 수동 모드를 가져오거나 초기화합니다. \endif \if EN Gets or initializes the active or passive connection mode. \endif

ProviderKey Property

\if KO DI 또는 Registry에서 조회할 안정적인 공급자 키를 가져오거나 초기화합니다. \endif \if EN Gets or initializes the stable provider key resolved through dependency injection or a registry. \endif

Role Property

\if KO 애플리케이션의 SECS 역할을 가져오거나 초기화합니다. \endif \if EN Gets or initializes the application's SECS role. \endif

SecsDecodeException

#ctor Method

\if KO 디코딩 예외를 만듭니다. \endif \if EN Creates a decoding exception. \endif

code— \if KO 오류 코드입니다. \endif \if EN Error code. \endif
message— \if KO 메시지입니다. \endif \if EN Message. \endif
offset— \if KO 오프셋입니다. \endif \if EN Offset. \endif
#ctor Method

\if KO 사용 가능한 HSMS 헤더 문맥을 포함하여 디코딩 예외를 만듭니다. \endif \if EN Creates a decoding exception with available HSMS header context. \endif

code— \if KO 오류 코드입니다. \endif \if EN Error code. \endif
message— \if KO 메시지입니다. \endif \if EN Message. \endif
offset— \if KO 오프셋입니다. \endif \if EN Offset. \endif
hsmsHeader— \if KO 완전한 헤더를 읽은 경우의 선택적 문맥입니다. \endif \if EN Optional context when a complete header was read. \endif
HsmsHeader Property

\if KO 오류 전에 완전히 읽은 HSMS 헤더 문맥입니다. \endif \if EN Gets the complete HSMS header context read before the error. \endif

SecsDiagnosticEvent

#ctor Method

\if KO 진단 이벤트를 만듭니다. \endif \if EN Creates a diagnostic event. \endif

kind— \if KO 종류입니다. \endif \if EN Kind. \endif
message— \if KO 요약입니다. \endif \if EN Summary. \endif
state— \if KO 선택적 상태입니다. \endif \if EN Optional state. \endif
frameLength— \if KO 선택적 프레임 길이입니다. \endif \if EN Optional frame length. \endif
#ctor Method

\if KO 사용 가능한 HSMS 헤더 문맥을 포함하여 진단 이벤트를 만듭니다. \endif \if EN Creates a diagnostic event with available HSMS header context. \endif

kind— \if KO 종류입니다. \endif \if EN Kind. \endif
message— \if KO 요약입니다. \endif \if EN Summary. \endif
state— \if KO 선택적 상태입니다. \endif \if EN Optional state. \endif
frameLength— \if KO 선택적 프레임 길이입니다. \endif \if EN Optional frame length. \endif
hsmsHeader— \if KO 완전한 헤더를 읽은 경우의 선택적 문맥입니다. \endif \if EN Optional context when a complete header was read. \endif
FrameLength Property

\if KO 관련 프레임 길이입니다. \endif \if EN Gets the related frame length. \endif

HsmsHeader Property

\if KO 오류 전에 완전히 읽은 HSMS 헤더 문맥입니다. \endif \if EN Gets the complete HSMS header context read before the error. \endif

Kind Property

\if KO 종류입니다. \endif \if EN Gets the kind. \endif

Message Property

\if KO payload 전체를 포함하지 않는 요약입니다. \endif \if EN Gets a summary that does not contain an unbounded payload. \endif

State Property

\if KO 관련 상태입니다. \endif \if EN Gets the related state. \endif

SecsDiagnosticKind

ApplicationError Field

\if KO 상위 계층 callback 오류입니다. \endif \if EN An upper-layer callback error. \endif

ConnectionAttempt Field

\if KO 연결 시도입니다. \endif \if EN Connection attempt. \endif

ConnectionClosed Field

\if KO 연결 종료입니다. \endif \if EN Connection closed. \endif

ConnectionEstablished Field

\if KO 연결 성공입니다. \endif \if EN Connection established. \endif

FrameReceived Field

\if KO 프레임 수신입니다. \endif \if EN Frame received. \endif

FrameSent Field

\if KO 프레임 송신입니다. \endif \if EN Frame sent. \endif

PrimarySent Field

\if KO 주 메시지 송신입니다. \endif \if EN Primary sent. \endif

ProtocolError Field

\if KO 프로토콜 오류입니다. \endif \if EN Protocol error. \endif

Reject Field

\if KO Reject입니다. \endif \if EN Reject. \endif

SecondaryReceived Field

\if KO 부 메시지 수신입니다. \endif \if EN Secondary received. \endif

StateChanged Field

\if KO 상태 변경입니다. \endif \if EN State changed. \endif

Timeout Field

\if KO 제한 시간 만료입니다. \endif \if EN Timeout. \endif

SecsDialogueDefinition

#ctor Method

\if KO 검증된 대화 정의를 만듭니다. \endif \if EN Creates a validated dialogue definition. \endif

stream— \if KO 1부터 127까지의 Stream입니다. \endif \if EN The stream from 1 through 127. \endif
primaryFunction— \if KO 0이 아닌 홀수 Primary Function입니다. \endif \if EN The nonzero odd primary function. \endif
secondaryFunction— \if KO W0이면 null이고, W1이면 Primary 바로 다음의 정상 짝수 Secondary Function입니다. \endif \if EN Null for W0, or the normal adjacent even secondary function for W1. \endif
PrimaryFunction Property

\if KO 0이 아닌 홀수 Primary Function을 가져옵니다. \endif \if EN Gets the nonzero odd primary function. \endif

ReplyExpected Property

\if KO 이 대화가 W1이고 정상 Secondary 응답을 기대하는지 가져옵니다. \endif \if EN Gets whether this is a W1 dialogue expecting a normal secondary reply. \endif

SecondaryFunction Property

\if KO W0이면 null이고 W1이면 정상 인접 Secondary Function인 값을 가져옵니다. \endif \if EN Gets null for W0 or the normal adjacent secondary function for W1. \endif

Stream Property

\if KO 대화의 Stream을 가져옵니다. \endif \if EN Gets the dialogue stream. \endif

SecsFloat32Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsFloat64Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsFunction

#ctor Method

\if KO 함수 번호를 만듭니다. \endif \if EN Creates a function number. \endif

value— \if KO 함수 번호입니다. \endif \if EN The function number. \endif
op_Implicit Method

\if KO 기본 바이트로 변환합니다. \endif \if EN Converts to the underlying byte. \endif

IsPrimary Property

\if KO 주 메시지인지 나타냅니다. \endif \if EN Gets whether this is a primary-message function. \endif

IsSecondary Property

\if KO 부 메시지인지 나타냅니다. \endif \if EN Gets whether this is a secondary-message function. \endif

Value Property

\if KO 함수 번호를 가져옵니다. \endif \if EN Gets the function number. \endif

SecsInt16Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsInt32Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsInt64Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsInt8Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsItem

BodyLength Property

\if KO 인코딩된 본문 바이트 수를 가져옵니다. \endif \if EN Gets the encoded body byte count. \endif

Count Property

\if KO 원소 수를 가져옵니다. 목록은 자식 수를 반환합니다. \endif \if EN Gets the element count; lists return their child count. \endif

Format Property

\if KO item format을 가져옵니다. \endif \if EN Gets the item format. \endif

SecsItemFormat

Ascii Field

\if KO ASCII 문자입니다. \endif \if EN ASCII characters. \endif

Binary Field

\if KO 이진 바이트입니다. \endif \if EN Binary bytes. \endif

Boolean Field

\if KO 논리값입니다. \endif \if EN Boolean values. \endif

Float32 Field

\if KO 4바이트 부동소수점입니다. \endif \if EN Four-byte floating-point values. \endif

Float64 Field

\if KO 8바이트 부동소수점입니다. \endif \if EN Eight-byte floating-point values. \endif

Int16 Field

\if KO 2바이트 부호 있는 정수입니다. \endif \if EN Two-byte signed integers. \endif

Int32 Field

\if KO 4바이트 부호 있는 정수입니다. \endif \if EN Four-byte signed integers. \endif

Int64 Field

\if KO 8바이트 부호 있는 정수입니다. \endif \if EN Eight-byte signed integers. \endif

Int8 Field

\if KO 1바이트 부호 있는 정수입니다. \endif \if EN One-byte signed integers. \endif

Jis8 Field

\if KO JIS-8 원시 바이트입니다. \endif \if EN Raw JIS-8 bytes. \endif

List Field

\if KO 목록입니다. \endif \if EN List. \endif

UInt16 Field

\if KO 2바이트 부호 없는 정수입니다. \endif \if EN Two-byte unsigned integers. \endif

UInt32 Field

\if KO 4바이트 부호 없는 정수입니다. \endif \if EN Four-byte unsigned integers. \endif

UInt64 Field

\if KO 8바이트 부호 없는 정수입니다. \endif \if EN Eight-byte unsigned integers. \endif

UInt8 Field

\if KO 1바이트 부호 없는 정수입니다. \endif \if EN One-byte unsigned integers. \endif

SecsJis8Item

#ctor Method

\if KO 원시 바이트를 만듭니다. \endif \if EN Creates raw bytes. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsListItem

#ctor Method

\if KO 자식 item으로 목록을 만듭니다. \endif \if EN Creates a list from child items. \endif

items— \if KO 자식 item입니다. \endif \if EN The child items. \endif
BodyLength Property
Count Property
Format Property
Items Property

\if KO 자식 item의 읽기 전용 목록입니다. \endif \if EN Gets the read-only child-item list. \endif

SecsMessage

#ctor Method

\if KO 메시지를 만듭니다. \endif \if EN Creates a message. \endif

sessionId— \if KO 세션 식별자입니다. \endif \if EN The session identifier. \endif
stream— \if KO 스트림입니다. \endif \if EN The stream. \endif
function— \if KO 함수입니다. \endif \if EN The function. \endif
replyExpected— \if KO 응답 기대 여부입니다. \endif \if EN Whether a reply is expected. \endif
systemBytes— \if KO 시스템 바이트입니다. \endif \if EN The system bytes. \endif
item— \if KO 선택적 메시지 본문입니다. \endif \if EN The optional message body. \endif
Function Property

\if KO 함수입니다. \endif \if EN Gets the function. \endif

Item Property

\if KO 선택적 본문 item입니다. \endif \if EN Gets the optional body item. \endif

ReplyExpected Property

\if KO 응답 기대 여부입니다. \endif \if EN Gets whether a reply is expected. \endif

SessionId Property

\if KO 세션 식별자입니다. \endif \if EN Gets the session identifier. \endif

Stream Property

\if KO 스트림입니다. \endif \if EN Gets the stream. \endif

SystemBytes Property

\if KO 시스템 바이트입니다. \endif \if EN Gets the system bytes. \endif

SecsPrimaryDispatcherOptions

Validate Method

\if KO bounded dispatcher 설정을 검증합니다. \endif \if EN Validates the bounded dispatcher settings. \endif

MaximumConcurrency Property

\if KO 동시에 실행할 최대 Primary handler 수를 가져옵니다. \endif \if EN Gets the maximum number of primary handlers run concurrently. \endif

QueueCapacity Property

\if KO bounded inbound Primary queue capacity를 가져옵니다. \endif \if EN Gets the bounded inbound-primary queue capacity. \endif

MaximumHandlerConcurrency Field

\if KO 허용되는 최대 handler 병렬 실행 수입니다. \endif \if EN The maximum permitted handler concurrency. \endif

MaximumQueueCapacity Field

\if KO 허용되는 최대 queue capacity입니다. \endif \if EN The maximum permitted queue capacity. \endif

SecsProtocolException

#ctor Method

\if KO 오류 정보로 예외를 만듭니다. \endif \if EN Creates the exception from validation information. \endif

code— \if KO 오류 코드입니다. \endif \if EN Error code. \endif
message— \if KO 메시지입니다. \endif \if EN Message. \endif
offset— \if KO 오프셋입니다. \endif \if EN Offset. \endif
Code Property

\if KO 오류 코드입니다. \endif \if EN Gets the error code. \endif

Offset Property

\if KO 바이트 오프셋입니다. \endif \if EN Gets the byte offset. \endif

SecsProviderKeys

Dreamine Field

\if KO Dreamine 자체 공급자의 키입니다. \endif \if EN The key reserved for the Dreamine native provider. \endif

EnviaSoft Field

\if KO 향후 별도 EnviaSoft 어댑터가 등록할 키입니다. \endif \if EN The key reserved for a future separately packaged EnviaSoft adapter. \endif

Linkgenesis Field

\if KO 향후 별도 Linkgenesis 어댑터가 등록할 키입니다. \endif \if EN The key reserved for a future separately packaged Linkgenesis adapter. \endif

SecsRole

Equipment Field

\if KO 장비 역할입니다. \endif \if EN The equipment role. \endif

Host Field

\if KO 호스트 역할입니다. \endif \if EN The host role. \endif

Unspecified Field

\if KO 역할이 아직 명시되지 않았습니다. \endif \if EN The role has not been specified. \endif

SecsSessionId

#ctor Method

\if KO 검증된 식별자를 만듭니다. \endif \if EN Creates a validated identifier. \endif

value— \if KO 값입니다. \endif \if EN The value. \endif
op_Implicit Method

\if KO 기본 정수로 변환합니다. \endif \if EN Converts to the underlying integer. \endif

Value Property

\if KO 16비트 값을 가져옵니다. \endif \if EN Gets the 16-bit value. \endif

MaximumValue Field

\if KO 허용되는 최댓값입니다. \endif \if EN The maximum permitted value. \endif

SecsSessionStateChangedEventArgs

#ctor Method

\if KO 검증된 상태 전이 snapshot을 만듭니다. \endif \if EN Creates a validated state-transition snapshot. \endif

previousConnectionState— \if KO 이전 TCP lifecycle 상태입니다. \endif \if EN The previous TCP lifecycle state. \endif
currentConnectionState— \if KO 현재 TCP lifecycle 상태입니다. \endif \if EN The current TCP lifecycle state. \endif
previousHsmsState— \if KO 이전 HSMS protocol 상태입니다. \endif \if EN The previous HSMS protocol state. \endif
currentHsmsState— \if KO 현재 HSMS protocol 상태입니다. \endif \if EN The current HSMS protocol state. \endif
connectionIdentity— \if KO 상태를 관찰한 session과 현재 connection epoch identity입니다. \endif \if EN The session and current connection-epoch identity that observed the state. \endif
ConnectionIdentity Property

\if KO 이 전이를 관찰한 session과 현재 connection epoch identity를 가져옵니다. \endif \if EN Gets the session and current connection-epoch identity that observed this transition. \endif

CurrentConnectionState Property

\if KO 현재 TCP lifecycle 상태를 가져옵니다. \endif \if EN Gets the current TCP lifecycle state. \endif

CurrentHsmsState Property

\if KO 현재 HSMS protocol 상태를 가져옵니다. \endif \if EN Gets the current HSMS protocol state. \endif

PreviousConnectionState Property

\if KO 이전 TCP lifecycle 상태를 가져옵니다. \endif \if EN Gets the previous TCP lifecycle state. \endif

PreviousHsmsState Property

\if KO 이전 HSMS protocol 상태를 가져옵니다. \endif \if EN Gets the previous HSMS protocol state. \endif

SecsStream

#ctor Method

\if KO 검증된 스트림 번호를 만듭니다. \endif \if EN Creates a validated stream number. \endif

value— \if KO 스트림 번호입니다. \endif \if EN The stream number. \endif
op_Implicit Method

\if KO 기본 바이트로 변환합니다. \endif \if EN Converts to the underlying byte. \endif

Value Property

\if KO 스트림 번호를 가져옵니다. \endif \if EN Gets the stream number. \endif

SecsSystemBytes

#ctor Method

\if KO 시스템 바이트 값을 만듭니다. \endif \if EN Creates a system-bytes value. \endif

value— \if KO 32비트 값입니다. \endif \if EN The 32-bit value. \endif
op_Implicit Method

\if KO 기본 정수로 변환합니다. \endif \if EN Converts to the underlying integer. \endif

Value Property

\if KO 32비트 값을 가져옵니다. \endif \if EN Gets the 32-bit value. \endif

SecsTransactionTimeoutException

#ctor Method

\if KO 시스템 바이트와 제한 시간으로 예외를 만듭니다. \endif \if EN Creates the exception with system bytes and timeout. \endif

systemBytes— \if KO 시스템 바이트입니다. \endif \if EN System bytes. \endif
timeout— \if KO 제한 시간입니다. \endif \if EN Timeout. \endif
SystemBytes Property

\if KO 만료된 시스템 바이트입니다. \endif \if EN Gets the expired system bytes. \endif

SecsUInt16Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsUInt32Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsUInt64Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsUInt8Item

#ctor Method

\if KO 값을 만듭니다. \endif \if EN Creates the item. \endif

values— \if KO 값입니다. \endif \if EN Values. \endif
BodyLength Property
Format Property

SecsValidationCode

DepthLimitExceeded Field

\if KO 중첩 깊이 제한을 초과했습니다. \endif \if EN The nesting-depth limit was exceeded. \endif

InvalidLength Field

\if KO 길이가 잘못되었습니다. \endif \if EN Length is invalid. \endif

InvalidMessage Field

\if KO 메시지 상태 또는 조합이 잘못되었습니다. \endif \if EN A message state or combination is invalid. \endif

None Field

\if KO 오류가 없습니다. \endif \if EN No error. \endif

OutOfRange Field

\if KO 값이 범위를 벗어났습니다. \endif \if EN A value is out of range. \endif

SizeLimitExceeded Field

\if KO 크기 제한을 초과했습니다. \endif \if EN A size limit was exceeded. \endif

TrailingData Field

\if KO 입력 뒤에 소비되지 않은 데이터가 있습니다. \endif \if EN Unconsumed input remains. \endif

Truncated Field

\if KO 데이터가 잘렸습니다. \endif \if EN Data is truncated. \endif

UnsupportedFormat Field

\if KO 형식이 지원되지 않습니다. \endif \if EN Format is unsupported. \endif

UnsupportedProtocolType Field

\if KO 프로토콜 형식이 지원되지 않습니다. \endif \if EN A protocol type is unsupported. \endif

SecsValidationResult

Failure Method

\if KO 실패 결과를 만듭니다. \endif \if EN Creates a failed result. \endif

code— \if KO 오류 코드입니다. \endif \if EN The error code. \endif
message— \if KO 메시지입니다. \endif \if EN The message. \endif
offset— \if KO 오프셋입니다. \endif \if EN The offset. \endif
Code Property

\if KO 오류 코드입니다. \endif \if EN Gets the error code. \endif

IsValid Property

\if KO 검증 성공 여부입니다. \endif \if EN Gets whether validation succeeded. \endif

Message Property

\if KO 진단 메시지입니다. \endif \if EN Gets the diagnostic message. \endif

Offset Property

\if KO 관련 바이트 오프셋입니다. \endif \if EN Gets the related byte offset. \endif

Success Property

\if KO 성공 결과입니다. \endif \if EN Gets the successful result. \endif

SecsValueItem`1

#ctor Method

\if KO 복사된 원소로 item을 초기화합니다. \endif \if EN Initializes the item with copied elements. \endif

values— \if KO 원소입니다. \endif \if EN The elements. \endif
Count Property
Values Property

\if KO 원소의 읽기 전용 메모리입니다. \endif \if EN Gets read-only memory containing the elements. \endif