콘텐츠로 이동
무료 평가 시작

pdcomm::GemResult

클래스

GEM 처리를 거친 TCP 이벤트 하나의 소유 스냅숏입니다.

class GemResult

선언 위치: #include <pdcomm_gem.hpp>

GemEndpoint::handleEvent()는 모든 TCP 이벤트에 대해 GemResult를 반환합니다. 먼저 info()를 확인합니다. GemResultInfo::kind는 이벤트가 내 요청에 대한 응답(GemResultKind::Response)인지, 수신한 요청(GemResultKind::Primary)인지, 실패인지, 아예 GEM 메시지가 아닌지를 알려 줍니다. 그다음 GemResultInfo::outcome에 따라 사용할 형식별 getter를 고릅니다. 예를 들어 GemOutcome::ValuesReceived이면 statusValue()를, GemOutcome::EventReceived이면 eventInfo()를 사용합니다.

결과는 노출하는 모든 데이터의 사본을 소유합니다. 원래의 TcpEvent와 끝점이 소멸된 뒤에도 계속 읽을 수 있으며, 반환되는 모든 SecsItem은 독립적으로 소유됩니다.

형식별 getter는 다음 오류를 공통으로 사용합니다. 결과가 getter에 필요한 종류가 아니면 PDCOMM_INVALID_STATE, 인덱스가 끝을 넘으면 PDCOMM_OUT_OF_RANGE, 결과가 비어 있으면(기본 생성되었거나 이동된 경우) PDCOMM_INVALID_ARGUMENT입니다.

endpoint->poll();
while (auto event = endpoint->tcp().nextEvent()) {
    auto result = endpoint->handle(event);
    auto info = result.info();
    if (info.kind != pdcomm::GemResultKind::Ignored) {
        std::cout << "RESULT kind=" << static_cast<unsigned>(info.kind)
                  << " outcome=" << static_cast<unsigned>(info.outcome) << "\n";
        auto body = result.body();
        if (body) std::cout << body.bytes().size() << " body bytes\n";
    }
}

참고

  • PdcommGemResult를 감싸는 이동 전용(move-only) RAII 래퍼입니다. 한 결과에 대해 getter를 동시에 실행할 수 있지만, 같은 결과를 받는 응답(respond) 또는 확인(acknowledge) 호출이나 결과의 소멸과 동시에 실행할 수는 없습니다.

멤버

GemResult

생성자

네이티브 핸들을 소유하지 않는 빈 결과를 만듭니다.

GemResult() noexcept = default

선언 위치: #include <pdcomm_gem.hpp>

GemResult

생성자

other가 소유한 네이티브 핸들의 소유권을 가져옵니다.

GemResult(GemResult &&other) noexcept

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
other원본 래퍼입니다. 호출 후 비어 있게 됩니다.

GemResult

생성자

복사할 수 없습니다. 래퍼가 네이티브 핸들을 독점 소유합니다.

GemResult(const GemResult &) = delete

선언 위치: #include <pdcomm_gem.hpp>

adopt

메서드

네이티브 결과 핸들을 감싸고 그 소유권을 가져옵니다.

static GemResult adopt(PdcommGemResult *handle) noexcept

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
handlepdcomm_gem_handle_event() 같은 C 함수에서 얻은 유효한 핸들이거나, 빈 결과를 뜻하는 nullptr입니다. 이후에는 다른 어떤 것도 이 핸들을 소멸시키면 안 됩니다.

반환값

범위를 벗어날 때 handle을 소멸시키는 래퍼입니다.

alarmAt

메서드

수신한 S5F1 보고 또는 S5F6/S5F8 목록의 알람(alarm) 하나를 반환합니다.

GemAlarmValue alarmAt(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

값은 통신 회선(wire)의 튜플(ALCD, ALID, ALTX)에서 가져옵니다. 로컬 활성화 플래그와 CEID 매핑은 포함되지 않습니다.

매개변수

이름설명
index0부터 시작하는 알람 위치입니다. GemAlarmResultInfo::count보다 작아야 합니다.

반환값

ALID, 분류, 텍스트, 발생 상태입니다.

참고

  • 예외 pdcomm::Error: 다른 처리 결과이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

alarmInfo

메서드

수신한 S5F1 알람 보고 또는 S5F6/S5F8 알람 목록을 요약합니다.

GemAlarmResultInfo alarmInfo() const

선언 위치: #include <pdcomm_gem.hpp>

GemOutcome::AlarmReceived, GemOutcome::AlarmListReceived 또는 GemOutcome::EnabledAlarmListReceived가 필요합니다.

반환값

개수, 보고/목록 구분 플래그, W 비트, 확인 상태입니다.

참고

  • 예외 pdcomm::Error: 다른 처리 결과이면 PDCOMM_INVALID_STATE입니다.

body

메서드

메시지 본문의 사본을 반환합니다.

SecsItem body() const

선언 위치: #include <pdcomm_gem.hpp>

수신한 1차 메시지에서는 받은 본문이고, 응답에서는 응답 본문입니다.

반환값

본문 아이템입니다. 메시지에 본문이 없으면 빈 SecsItem입니다(C API의 PDCOMM_OUT_OF_RANGE는 빈 아이템으로 변환됩니다).

참고

  • 예외 pdcomm::Error: 결과가 비어 있으면 PDCOMM_INVALID_ARGUMENT, 복사에 실패하면 PDCOMM_ALLOCATION_FAILED입니다.

commandInfo

메서드

수신한 S2F41 요청(장비) 또는 S2F42 응답(호스트)을 요약합니다.

GemCommandResultInfo commandInfo() const

선언 위치: #include <pdcomm_gem.hpp>

요청 정보는 수신 시점에 고정된 검증 결과를 나타내며 응답 후에도 바뀌지 않습니다. 실제로 보내거나 받은 HCACK은 GemResultInfo::acknowledgement에 있습니다.

반환값

파라미터 수와 문제 항목 수, 검증 및 완료 메타데이터입니다.

참고

  • 예외 pdcomm::Error: 결과가 명령 요청이나 응답이 아니면 PDCOMM_INVALID_STATE입니다.

commandIssue

메서드

파라미터 문제 항목 하나를 반환합니다. 요청이면 검증 문제이고, 응답이면 CPACK 항목입니다.

GemCommandIssueValue commandIssue(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

응답의 문제 항목 이름은 통신 회선(wire) 형식을 유지합니다. 고정된 검증 문제 항목은 논리 이름을 사용하므로 숫자 형식이 정규화될 수 있습니다.

매개변수

이름설명
index0부터 시작하는 위치입니다. GemCommandResultInfo::issueCount보다 작아야 합니다.

반환값

이름과 CPACK 코드입니다.

참고

  • 예외 pdcomm::Error: 다른 결과 종류이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

commandName

메서드

수신한 S2F41 요청의 RCMD를 통신 회선(wire) 형식 그대로 반환합니다.

SecsItem commandName() const

선언 위치: #include <pdcomm_gem.hpp>

반환값

독립적으로 소유되는 이름 아이템입니다.

참고

  • 예외 pdcomm::Error: 응답이거나 다른 결과 종류이면 PDCOMM_INVALID_STATE입니다.

commandParameter

메서드

수신한 S2F41 요청의 (CPNAME, CPVAL) 쌍 하나를 반환합니다.

GemCommandParameterValue commandParameter(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

순서와 중복은 받은 그대로 유지됩니다.

매개변수

이름설명
index0부터 시작하는 위치입니다. GemCommandResultInfo::parameterCount보다 작아야 합니다.

반환값

독립적으로 소유되는 이름 아이템과 값 아이템입니다.

참고

  • 예외 pdcomm::Error: 응답이거나 다른 결과 종류이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

constantChange

메서드

수신한 S2F15 요청에서 제안된 변경 하나를 반환합니다.

GemConstantChangeValue constantChange(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

ID와 값은 통신 회선(wire) 형식과 순서를 유지합니다. 원래 값은 수신 시점의 값이며, 알 수 없는 ECID이면 없습니다.

매개변수

이름설명
index0부터 시작하는 위치입니다. GemConstantChangeInfo::changeCount보다 작아야 합니다.

반환값

ECID, 제안된 값, 원래 값입니다.

참고

  • 예외 pdcomm::Error: 응답이거나 다른 결과 종류이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

constantChangeInfo

메서드

수신한 S2F15 요청(장비) 또는 S2F16 응답(호스트)을 요약합니다.

GemConstantChangeInfo constantChangeInfo() const

선언 위치: #include <pdcomm_gem.hpp>

응답이면 모든 요청 필드가 0이며, 받은 EAC는 GemResultInfo::acknowledgement에 있습니다. 호스트는 이 값으로 장비에 실제로 적용되었는지를 추론할 수 없습니다.

반환값

변경 개수, 검증 상태, 적용 상태입니다.

참고

  • 예외 pdcomm::Error: 다른 결과 종류이면 PDCOMM_INVALID_STATE입니다.

constantMetadata

메서드

호스트가 받은 S2F30 이름 목록 응답에서 행 하나의 필드 하나를 반환합니다.

SecsItem constantMetadata(size_t index, GemConstantField field) const

선언 위치: #include <pdcomm_gem.hpp>

GemOutcome::ConstantMetadataReceived가 필요합니다. 통신 회선(wire)의 메타데이터는 받은 그대로 보존되며, 값이 없거나 알 수 없음을 나타내는 빈 ASCII 표식도 포함됩니다.

매개변수

이름설명
index0부터 시작하는 행 위치입니다. GemResultInfo::entryCount보다 작아야 합니다.
fieldGemConstantField::Id부터 GemConstantField::Units까지입니다. GemConstantField::Current는 여기서 유효하지 않습니다.

반환값

독립적으로 소유되는 아이템입니다.

참고

  • 예외 pdcomm::Error: GemConstantField::Current이면 PDCOMM_INVALID_ARGUMENT, 다른 처리 결과이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

constantValue

메서드

호스트가 받은 S2F14 장비 상수(equipment constant) 응답의 값 하나를 반환합니다.

GemConstantValue constantValue(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

GemOutcome::ConstantValuesReceived가 필요합니다. ID를 명시한 조회이면 값과 함께 원래 요청한 ECID가 제공됩니다. 모든 값을 요청하면 통신 회선(wire)에 ID가 없습니다.

매개변수

이름설명
index0부터 시작하는 값 위치입니다. GemResultInfo::entryCount보다 작아야 합니다.

반환값

요청한 ECID(있는 경우)와 값입니다.

참고

  • 예외 pdcomm::Error: 다른 처리 결과이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

definition

메서드

statusName()의 별칭입니다.

GemStatusName definition(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
index0부터 시작하는 행 위치입니다.

반환값

SVID, 이름, 단위입니다.

참고

  • 예외 pdcomm::Error: statusName()과 같은 상태 코드입니다.

directory

메서드

directoryGet()의 별칭입니다.

SecsItem directory(size_t index, GemDirectoryField field) const

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
index0부터 시작하는 행 위치입니다.
field읽을 필드입니다.

반환값

독립적으로 소유되는 아이템입니다.

참고

  • 예외 pdcomm::Error: directoryGet()과 같은 상태 코드입니다.

directoryAt

메서드

호스트가 받은 S1F22 또는 S1F24 이름 목록 응답의 행 하나를 반환합니다.

GemDirectoryEntryInfo directoryAt(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

GemOutcome::DataDirectoryReceived 또는 GemOutcome::EventDirectoryReceived가 필요합니다.

매개변수

이름설명
index0부터 시작하는 행 위치입니다. GemResultInfo::entryCount보다 작아야 합니다.

반환값

행 ID이며, 이벤트 행이면 VID 개수도 함께 반환합니다.

참고

  • 예외 pdcomm::Error: 다른 처리 결과이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

directoryGet

메서드

S1F22 또는 S1F24 이름 목록 응답에서 행 하나의 필드 하나를 반환합니다.

SecsItem directoryGet(size_t index, GemDirectoryField field) const

선언 위치: #include <pdcomm_gem.hpp>

데이터 행은 GemDirectoryField::Name과 GemDirectoryField::Units를 지원합니다. 이벤트 행은 GemDirectoryField::Name과 GemDirectoryField::VariableIds(U4 배열)를 지원합니다.

매개변수

이름설명
index0부터 시작하는 행 위치입니다.
field읽을 필드입니다.

반환값

독립적으로 소유되는 아이템입니다.

참고

  • 예외 pdcomm::Error: 행 종류에 없는 필드이면 PDCOMM_INVALID_ARGUMENT, 다른 처리 결과이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

enhancedCommandAcknowledgements

메서드

확장 명령 결과의 바깥쪽 확인 코드 리스트를 반환합니다.

SecsItem enhancedCommandAcknowledgements() const

선언 위치: #include <pdcomm_gem.hpp>

요청이 수락되었으면 리스트는 비어 있고, 요청이 거부되었으면 고정된 오류를 담으며, S2F50 응답이면 받은 아이템을 그대로 담습니다.

반환값

독립적으로 소유되는 리스트 아이템입니다.

참고

  • 예외 pdcomm::Error: 다른 결과 종류이면 PDCOMM_INVALID_STATE입니다.

enhancedCommandInfo

메서드

수신한 S2F49 요청(장비) 또는 S2F50 응답(호스트)을 요약합니다.

GemEnhancedCommandResultInfo enhancedCommandInfo() const

선언 위치: #include <pdcomm_gem.hpp>

요청 정보는 수신 시점에 고정된 수락 판정을 나타내며, 응답한 뒤에도 그대로입니다.

반환값

개수, DATAID, 검증 및 완료 메타데이터입니다.

참고

  • 예외 pdcomm::Error: 결과가 확장 명령 요청이나 응답이 아니면 PDCOMM_INVALID_STATE입니다.

enhancedCommandName

메서드

수신한 S2F49 요청의 RCMD를 반환합니다.

SecsItem enhancedCommandName() const

선언 위치: #include <pdcomm_gem.hpp>

반환값

독립적으로 소유되는 이름 아이템입니다.

참고

  • 예외 pdcomm::Error: 응답이거나 다른 결과 종류이면 PDCOMM_INVALID_STATE입니다.

enhancedCommandObject

메서드

수신한 S2F49 요청의 OBJSPEC을 반환합니다.

SecsItem enhancedCommandObject() const

선언 위치: #include <pdcomm_gem.hpp>

반환값

독립적으로 소유되는 ASCII 아이템입니다.

참고

  • 예외 pdcomm::Error: 응답이거나 다른 결과 종류이면 PDCOMM_INVALID_STATE입니다.

enhancedCommandParameter

메서드

수신한 S2F49 요청의 (CPNAME, CEPVAL) 쌍 하나를 반환합니다.

GemCommandParameterValue enhancedCommandParameter(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
index0부터 시작하는 위치입니다. GemEnhancedCommandResultInfo::parameterCount보다 작아야 합니다.

반환값

독립적으로 소유되는 이름 아이템과 값 아이템입니다.

참고

  • 예외 pdcomm::Error: 응답이거나 다른 결과 종류이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

eventInfo

메서드

호스트가 받은 S6F11 이벤트 보고서(event report)의 헤더를 반환합니다.

GemEventInfo eventInfo() const

선언 위치: #include <pdcomm_gem.hpp>

GemOutcome::EventReceived가 필요합니다.

반환값

DATAID, CEID, 보고서 수, S6F12 전송 여부입니다.

참고

  • 예외 pdcomm::Error: 다른 처리 결과이면 PDCOMM_INVALID_STATE입니다.

eventReport

메서드

수신한 S6F11의 보고서 하나를 반환합니다.

GemEventReport eventReport(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
index0부터 시작하는 보고서 위치입니다. GemEventInfo::reportCount보다 작아야 합니다.

반환값

RPTID와 값 개수입니다.

참고

  • 예외 pdcomm::Error: 다른 처리 결과이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

eventValue

메서드

수신한 S6F11에서 보고서 하나의 값 하나를 반환합니다.

SecsItem eventValue(size_t reportIndex, size_t valueIndex) const

선언 위치: #include <pdcomm_gem.hpp>

이벤트 보고서 값에는 VID가 없습니다. 위치는 직접 정의한 보고서 정의와 대응시켜 해석합니다.

매개변수

이름설명
reportIndex0부터 시작하는 보고서 위치입니다.
valueIndex보고서 안에서 0부터 시작하는 값 위치입니다.

반환값

독립적으로 소유되는 값 아이템입니다.

참고

  • 예외 pdcomm::Error: 다른 처리 결과이면 PDCOMM_INVALID_STATE, 인덱스가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

info

메서드

이 결과의 종류, 처리 결과(outcome), 요청 종류, 코드, 토큰, 상태를 반환합니다.

GemResultInfo info() const

선언 위치: #include <pdcomm_gem.hpp>

비어 있지 않은 모든 결과에서 유효합니다.

반환값

공통 결과 정보입니다.

참고

  • 예외 pdcomm::Error: 결과가 비어 있으면 PDCOMM_INVALID_ARGUMENT입니다.

nativeHandle

메서드

C API를 직접 호출할 때 쓰도록 소유한 네이티브 핸들을 반환합니다.

PdcommGemResult *nativeHandle() noexcept

선언 위치: #include <pdcomm_gem.hpp>

반환값

핸들입니다. 빈 결과이면 nullptr입니다. 소유권은 이 래퍼에 그대로 남습니다.

nativeHandle

메서드

읽기 전용 C API 호출에 쓰도록 소유한 네이티브 핸들을 반환합니다.

const PdcommGemResult *nativeHandle() const noexcept

선언 위치: #include <pdcomm_gem.hpp>

반환값

핸들입니다. 빈 결과이면 nullptr입니다. 소유권은 이 래퍼에 그대로 남습니다.

operator bool

메서드

래퍼가 네이티브 결과를 소유하는지 알려 줍니다.

explicit operator bool() const noexcept

선언 위치: #include <pdcomm_gem.hpp>

반환값

결과를 소유하면 true입니다.

operator=

메서드

현재 핸들을 해제한 뒤 other가 소유한 핸들의 소유권을 가져옵니다.

GemResult &operator=(GemResult &&other) noexcept

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
other원본 래퍼입니다. 호출 후 비어 있게 됩니다.

반환값

이 래퍼입니다.

operator=

메서드

복사 대입을 할 수 없습니다. 래퍼가 네이티브 핸들을 독점 소유합니다.

GemResult &operator=(const GemResult &) = delete

선언 위치: #include <pdcomm_gem.hpp>

programInfo

메서드

공정 프로그램(process program) 요청 또는 응답(스트림 7, 펑션 1~6, 17~20)을 요약합니다.

GemProgramInfo programInfo() const

선언 위치: #include <pdcomm_gem.hpp>

요청에서는 받은 데이터와 로컬 처리 상태를 제공합니다. 응답에서는 통신 회선(wire)상의 사실만 제공하므로, 호스트는 이를 근거로 상대의 저장 상태나 내구성을 추론할 수 없습니다.

반환값

요청 종류, 개수, 확인 코드, 처리 상태입니다.

참고

  • 예외 pdcomm::Error: 유효하지 않거나, 중단되었거나, 관련 없는 결과이면 PDCOMM_INVALID_STATE입니다.

programItem

메서드

프로그램 결과에 담긴 프로그램 ID 또는 본문을 반환합니다.

SecsItem programItem(GemProgramField field, size_t index = 0) const

선언 위치: #include <pdcomm_gem.hpp>

GemProgramField::Id와 index를 지정하면 요청의 ID 또는 S7F6/S7F20 응답의 ID를 읽습니다. GemProgramField::Body와 index 0을 지정하면 S7F3 요청 또는 S7F6 응답의 본문을 읽습니다.

매개변수

이름설명
field읽을 아이템입니다.
index0부터 시작하는 ID 위치입니다. GemProgramInfo::idCount보다 작아야 합니다. 본문이면 0입니다.

반환값

독립적으로 소유되는 아이템입니다. 알 수 없는 프로그램을 보고하는 S7F6 응답의 본문이면 빈 아이템입니다.

참고

  • 예외 pdcomm::Error: 결과에 없는 필드이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

queryInfo

메서드

보고서 조회 요청(장비) 또는 그에 대한 S6F16/S6F20/S6F22 응답(호스트)을 요약합니다.

GemQueryInfo queryInfo() const

선언 위치: #include <pdcomm_gem.hpp>

반환값

조회 종류, 요청한 ID, 개수입니다.

참고

  • 예외 pdcomm::Error: 실패했거나, 형식이 잘못되었거나, 중단되었거나, 관련 없는 결과이면 PDCOMM_INVALID_STATE입니다.

queryReport

메서드

S6F16 응답의 보고서 하나를 반환합니다.

GemQueryReportInfo queryReport(size_t reportIndex) const

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
reportIndex0부터 시작하는 보고서 위치입니다. GemQueryInfo::reportCount보다 작아야 합니다.

반환값

RPTID와 값 개수입니다.

참고

  • 예외 pdcomm::Error: 결과가 S6F16 응답이 아니면 PDCOMM_INVALID_STATE, 인덱스가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

queryValue

메서드

보고서 조회 응답의 값 하나를 반환합니다.

GemQueryValue queryValue(size_t reportIndex, size_t valueIndex) const

선언 위치: #include <pdcomm_gem.hpp>

S6F16에서는 두 인덱스를 모두 사용합니다. S6F20과 S6F22에서는 reportIndex가 0이어야 합니다. VID를 담는 값은 S6F22뿐입니다.

매개변수

이름설명
reportIndexS6F16이면 보고서 위치이고, 그 밖에는 0입니다.
valueIndex0부터 시작하는 값 위치입니다.

반환값

VID(S6F22만 해당)와 값 아이템입니다.

참고

  • 예외 pdcomm::Error: 다른 결과 종류이면 PDCOMM_INVALID_STATE, 인덱스가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

spoolError

메서드

호스트가 받은 S2F44 응답에서 거부된 스트림 하나를 반환합니다.

GemSpoolError spoolError(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
index0부터 시작하는 위치입니다. GemSpoolInfo::errorCount보다 작아야 합니다.

반환값

스트림, STRACK, 거부된 펑션입니다.

참고

  • 예외 pdcomm::Error: 다른 결과 종류이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

spoolInfo

메서드

스풀 요청, 응답 또는 전달 결과를 요약합니다.

GemSpoolInfo spoolInfo() const

선언 위치: #include <pdcomm_gem.hpp>

처리 필드는 이 결과에 대한 마지막 작업을 나타냅니다. 현재 큐 상태는 GemEndpoint::spoolState()로 확인합니다.

반환값

요청 종류, 명령, 내구성, 증명, 처리 플래그입니다.

참고

  • 예외 pdcomm::Error: 스풀 제어, 요청, 응답 또는 전달 결과가 아니면 PDCOMM_INVALID_STATE입니다.

spoolSelection

메서드

수신한 S2F43 요청 또는 S2F60 응답의 스트림 선택 하나를 반환합니다.

GemSpoolSelection spoolSelection(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
index0부터 시작하는 위치입니다. GemSpoolInfo::selectionCount보다 작아야 합니다.

반환값

스트림과 선택된 펑션입니다. 펑션 리스트가 비어 있으면 해당 스트림에 등록된 모든 1차 메시지를 선택합니다.

참고

  • 예외 pdcomm::Error: 다른 결과 종류이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

statusName

메서드

S1F12 상태 변수(status variable) 이름 목록 응답의 행 하나를 반환합니다.

GemStatusName statusName(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

GemOutcome::NamesReceived가 필요합니다. 이름과 단위는 길이로 구분된 ASCII로 복사되므로 중간에 포함된 NUL 바이트도 유지됩니다.

매개변수

이름설명
index0부터 시작하는 행 위치입니다. GemResultInfo::entryCount보다 작아야 합니다.

반환값

SVID, 이름, 단위입니다.

참고

  • 예외 pdcomm::Error: 다른 처리 결과이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

statusValue

메서드

S1F4 응답의 상태 값 하나를 반환합니다.

GemStatusValue statusValue(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

GemOutcome::ValuesReceived가 필요합니다. SVID를 명시한 요청이면 값은 요청 순서를 유지하고 각자의 ID를 함께 담습니다. 모든 값을 요청하면 통신 회선(wire)에 ID가 없으므로 ID도 없습니다.

매개변수

이름설명
index0부터 시작하는 값 위치입니다. GemResultInfo::entryCount보다 작아야 합니다.

반환값

값과, 알려진 경우 요청한 SVID입니다.

참고

  • 예외 pdcomm::Error: 다른 처리 결과이면 PDCOMM_INVALID_STATE, index가 잘못되면 PDCOMM_OUT_OF_RANGE입니다.

value

메서드

statusValue()의 별칭입니다.

GemStatusValue value(size_t index) const

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
index0부터 시작하는 값 위치입니다.

반환값

값과, 알려진 경우 요청한 SVID입니다.

참고

  • 예외 pdcomm::Error: statusValue()와 같은 상태 코드입니다.

value

메서드

eventValue()의 별칭입니다.

SecsItem value(size_t reportIndex, size_t valueIndex) const

선언 위치: #include <pdcomm_gem.hpp>

매개변수

이름설명
reportIndex0부터 시작하는 보고서 위치입니다.
valueIndex보고서 안에서 0부터 시작하는 값 위치입니다.

반환값

독립적으로 소유되는 값 아이템입니다.

참고

  • 예외 pdcomm::Error: eventValue()와 같은 상태 코드입니다.

~GemResult

메서드

pdcomm_gem_result_destroy()로 네이티브 핸들을 해제합니다.

~GemResult()

선언 위치: #include <pdcomm_gem.hpp>

빈 결과는 아무것도 해제하지 않습니다. getter가 이미 반환한 아이템은 계속 유효합니다.