pdcomm::GemResult
클래스
GEM 처리를 거친 TCP 이벤트 하나의 소유 스냅숏입니다.
class GemResultGemEndpoint::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 = defaultGemResult
생성자
other가 소유한 네이티브 핸들의 소유권을 가져옵니다.
GemResult(GemResult &&other) noexcept매개변수
| 이름 | 설명 |
|---|---|
other | 원본 래퍼입니다. 호출 후 비어 있게 됩니다. |
GemResult
생성자
복사할 수 없습니다. 래퍼가 네이티브 핸들을 독점 소유합니다.
GemResult(const GemResult &) = deleteadopt
메서드
네이티브 결과 핸들을 감싸고 그 소유권을 가져옵니다.
static GemResult adopt(PdcommGemResult *handle) noexcept매개변수
| 이름 | 설명 |
|---|---|
handle | pdcomm_gem_handle_event() 같은 C 함수에서 얻은 유효한 핸들이거나, 빈 결과를 뜻하는 nullptr입니다. 이후에는 다른 어떤 것도 이 핸들을 소멸시키면 안 됩니다. |
반환값
범위를 벗어날 때 handle을 소멸시키는 래퍼입니다.
alarmAt
메서드
수신한 S5F1 보고 또는 S5F6/S5F8 목록의 알람(alarm) 하나를 반환합니다.
GemAlarmValue alarmAt(size_t index) const값은 통신 회선(wire)의 튜플(ALCD, ALID, ALTX)에서 가져옵니다. 로컬 활성화 플래그와 CEID 매핑은 포함되지 않습니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 알람 위치입니다. GemAlarmResultInfo::count보다 작아야 합니다. |
반환값
ALID, 분류, 텍스트, 발생 상태입니다.
참고
- 예외
pdcomm::Error: 다른 처리 결과이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
alarmInfo
메서드
수신한 S5F1 알람 보고 또는 S5F6/S5F8 알람 목록을 요약합니다.
GemAlarmResultInfo alarmInfo() constGemOutcome::AlarmReceived, GemOutcome::AlarmListReceived 또는 GemOutcome::EnabledAlarmListReceived가 필요합니다.
반환값
개수, 보고/목록 구분 플래그, W 비트, 확인 상태입니다.
참고
- 예외
pdcomm::Error: 다른 처리 결과이면PDCOMM_INVALID_STATE입니다.
body
메서드
메시지 본문의 사본을 반환합니다.
SecsItem body() const수신한 1차 메시지에서는 받은 본문이고, 응답에서는 응답 본문입니다.
반환값
본문 아이템입니다. 메시지에 본문이 없으면 빈 SecsItem입니다(C API의 PDCOMM_OUT_OF_RANGE는 빈 아이템으로 변환됩니다).
참고
- 예외
pdcomm::Error: 결과가 비어 있으면PDCOMM_INVALID_ARGUMENT, 복사에 실패하면PDCOMM_ALLOCATION_FAILED입니다.
commandInfo
메서드
수신한 S2F41 요청(장비) 또는 S2F42 응답(호스트)을 요약합니다.
GemCommandResultInfo commandInfo() const요청 정보는 수신 시점에 고정된 검증 결과를 나타내며 응답 후에도 바뀌지 않습니다. 실제로 보내거나 받은 HCACK은 GemResultInfo::acknowledgement에 있습니다.
반환값
파라미터 수와 문제 항목 수, 검증 및 완료 메타데이터입니다.
참고
- 예외
pdcomm::Error: 결과가 명령 요청이나 응답이 아니면PDCOMM_INVALID_STATE입니다.
commandIssue
메서드
파라미터 문제 항목 하나를 반환합니다. 요청이면 검증 문제이고, 응답이면 CPACK 항목입니다.
GemCommandIssueValue commandIssue(size_t index) const응답의 문제 항목 이름은 통신 회선(wire) 형식을 유지합니다. 고정된 검증 문제 항목은 논리 이름을 사용하므로 숫자 형식이 정규화될 수 있습니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 위치입니다. GemCommandResultInfo::issueCount보다 작아야 합니다. |
반환값
이름과 CPACK 코드입니다.
참고
- 예외
pdcomm::Error: 다른 결과 종류이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
commandName
메서드
수신한 S2F41 요청의 RCMD를 통신 회선(wire) 형식 그대로 반환합니다.
SecsItem commandName() const반환값
독립적으로 소유되는 이름 아이템입니다.
참고
- 예외
pdcomm::Error: 응답이거나 다른 결과 종류이면PDCOMM_INVALID_STATE입니다.
commandParameter
메서드
수신한 S2F41 요청의 (CPNAME, CPVAL) 쌍 하나를 반환합니다.
GemCommandParameterValue commandParameter(size_t index) const순서와 중복은 받은 그대로 유지됩니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 위치입니다. GemCommandResultInfo::parameterCount보다 작아야 합니다. |
반환값
독립적으로 소유되는 이름 아이템과 값 아이템입니다.
참고
- 예외
pdcomm::Error: 응답이거나 다른 결과 종류이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
constantChange
메서드
수신한 S2F15 요청에서 제안된 변경 하나를 반환합니다.
GemConstantChangeValue constantChange(size_t index) constID와 값은 통신 회선(wire) 형식과 순서를 유지합니다. 원래 값은 수신 시점의 값이며, 알 수 없는 ECID이면 없습니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 위치입니다. GemConstantChangeInfo::changeCount보다 작아야 합니다. |
반환값
ECID, 제안된 값, 원래 값입니다.
참고
- 예외
pdcomm::Error: 응답이거나 다른 결과 종류이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
constantChangeInfo
메서드
수신한 S2F15 요청(장비) 또는 S2F16 응답(호스트)을 요약합니다.
GemConstantChangeInfo constantChangeInfo() const응답이면 모든 요청 필드가 0이며, 받은 EAC는 GemResultInfo::acknowledgement에 있습니다. 호스트는 이 값으로 장비에 실제로 적용되었는지를 추론할 수 없습니다.
반환값
변경 개수, 검증 상태, 적용 상태입니다.
참고
- 예외
pdcomm::Error: 다른 결과 종류이면PDCOMM_INVALID_STATE입니다.
constantMetadata
메서드
호스트가 받은 S2F30 이름 목록 응답에서 행 하나의 필드 하나를 반환합니다.
SecsItem constantMetadata(size_t index, GemConstantField field) constGemOutcome::ConstantMetadataReceived가 필요합니다. 통신 회선(wire)의 메타데이터는 받은 그대로 보존되며, 값이 없거나 알 수 없음을 나타내는 빈 ASCII 표식도 포함됩니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 행 위치입니다. GemResultInfo::entryCount보다 작아야 합니다. |
field | GemConstantField::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) constGemOutcome::ConstantValuesReceived가 필요합니다. ID를 명시한 조회이면 값과 함께 원래 요청한 ECID가 제공됩니다. 모든 값을 요청하면 통신 회선(wire)에 ID가 없습니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 값 위치입니다. GemResultInfo::entryCount보다 작아야 합니다. |
반환값
요청한 ECID(있는 경우)와 값입니다.
참고
- 예외
pdcomm::Error: 다른 처리 결과이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
definition
메서드
statusName()의 별칭입니다.
GemStatusName definition(size_t index) const매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 행 위치입니다. |
반환값
SVID, 이름, 단위입니다.
참고
- 예외
pdcomm::Error: statusName()과 같은 상태 코드입니다.
directory
메서드
directoryGet()의 별칭입니다.
SecsItem directory(size_t index, GemDirectoryField field) const매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 행 위치입니다. |
field | 읽을 필드입니다. |
반환값
독립적으로 소유되는 아이템입니다.
참고
- 예외
pdcomm::Error: directoryGet()과 같은 상태 코드입니다.
directoryAt
메서드
호스트가 받은 S1F22 또는 S1F24 이름 목록 응답의 행 하나를 반환합니다.
GemDirectoryEntryInfo directoryAt(size_t index) constGemOutcome::DataDirectoryReceived 또는 GemOutcome::EventDirectoryReceived가 필요합니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 행 위치입니다. 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데이터 행은 GemDirectoryField::Name과 GemDirectoryField::Units를 지원합니다. 이벤트 행은 GemDirectoryField::Name과 GemDirectoryField::VariableIds(U4 배열)를 지원합니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 행 위치입니다. |
field | 읽을 필드입니다. |
반환값
독립적으로 소유되는 아이템입니다.
참고
- 예외
pdcomm::Error: 행 종류에 없는 필드이면PDCOMM_INVALID_ARGUMENT, 다른 처리 결과이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
enhancedCommandAcknowledgements
메서드
확장 명령 결과의 바깥쪽 확인 코드 리스트를 반환합니다.
SecsItem enhancedCommandAcknowledgements() const요청이 수락되었으면 리스트는 비어 있고, 요청이 거부되었으면 고정된 오류를 담으며, S2F50 응답이면 받은 아이템을 그대로 담습니다.
반환값
독립적으로 소유되는 리스트 아이템입니다.
참고
- 예외
pdcomm::Error: 다른 결과 종류이면PDCOMM_INVALID_STATE입니다.
enhancedCommandInfo
메서드
수신한 S2F49 요청(장비) 또는 S2F50 응답(호스트)을 요약합니다.
GemEnhancedCommandResultInfo enhancedCommandInfo() const요청 정보는 수신 시점에 고정된 수락 판정을 나타내며, 응답한 뒤에도 그대로입니다.
반환값
개수, DATAID, 검증 및 완료 메타데이터입니다.
참고
- 예외
pdcomm::Error: 결과가 확장 명령 요청이나 응답이 아니면PDCOMM_INVALID_STATE입니다.
enhancedCommandName
메서드
수신한 S2F49 요청의 RCMD를 반환합니다.
SecsItem enhancedCommandName() const반환값
독립적으로 소유되는 이름 아이템입니다.
참고
- 예외
pdcomm::Error: 응답이거나 다른 결과 종류이면PDCOMM_INVALID_STATE입니다.
enhancedCommandObject
메서드
수신한 S2F49 요청의 OBJSPEC을 반환합니다.
SecsItem enhancedCommandObject() const반환값
독립적으로 소유되는 ASCII 아이템입니다.
참고
- 예외
pdcomm::Error: 응답이거나 다른 결과 종류이면PDCOMM_INVALID_STATE입니다.
enhancedCommandParameter
메서드
수신한 S2F49 요청의 (CPNAME, CEPVAL) 쌍 하나를 반환합니다.
GemCommandParameterValue enhancedCommandParameter(size_t index) const매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 위치입니다. GemEnhancedCommandResultInfo::parameterCount보다 작아야 합니다. |
반환값
독립적으로 소유되는 이름 아이템과 값 아이템입니다.
참고
- 예외
pdcomm::Error: 응답이거나 다른 결과 종류이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
eventInfo
메서드
호스트가 받은 S6F11 이벤트 보고서(event report)의 헤더를 반환합니다.
GemEventInfo eventInfo() constGemOutcome::EventReceived가 필요합니다.
반환값
DATAID, CEID, 보고서 수, S6F12 전송 여부입니다.
참고
- 예외
pdcomm::Error: 다른 처리 결과이면PDCOMM_INVALID_STATE입니다.
eventReport
메서드
수신한 S6F11의 보고서 하나를 반환합니다.
GemEventReport eventReport(size_t index) const매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 보고서 위치입니다. GemEventInfo::reportCount보다 작아야 합니다. |
반환값
RPTID와 값 개수입니다.
참고
- 예외
pdcomm::Error: 다른 처리 결과이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
eventValue
메서드
수신한 S6F11에서 보고서 하나의 값 하나를 반환합니다.
SecsItem eventValue(size_t reportIndex, size_t valueIndex) const이벤트 보고서 값에는 VID가 없습니다. 위치는 직접 정의한 보고서 정의와 대응시켜 해석합니다.
매개변수
| 이름 | 설명 |
|---|---|
reportIndex | 0부터 시작하는 보고서 위치입니다. |
valueIndex | 보고서 안에서 0부터 시작하는 값 위치입니다. |
반환값
독립적으로 소유되는 값 아이템입니다.
참고
- 예외
pdcomm::Error: 다른 처리 결과이면PDCOMM_INVALID_STATE, 인덱스가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
info
메서드
이 결과의 종류, 처리 결과(outcome), 요청 종류, 코드, 토큰, 상태를 반환합니다.
GemResultInfo info() const비어 있지 않은 모든 결과에서 유효합니다.
반환값
공통 결과 정보입니다.
참고
- 예외
pdcomm::Error: 결과가 비어 있으면PDCOMM_INVALID_ARGUMENT입니다.
nativeHandle
메서드
C API를 직접 호출할 때 쓰도록 소유한 네이티브 핸들을 반환합니다.
PdcommGemResult *nativeHandle() noexcept반환값
핸들입니다. 빈 결과이면 nullptr입니다. 소유권은 이 래퍼에 그대로 남습니다.
nativeHandle
메서드
읽기 전용 C API 호출에 쓰도록 소유한 네이티브 핸들을 반환합니다.
const PdcommGemResult *nativeHandle() const noexcept반환값
핸들입니다. 빈 결과이면 nullptr입니다. 소유권은 이 래퍼에 그대로 남습니다.
operator bool
메서드
래퍼가 네이티브 결과를 소유하는지 알려 줍니다.
explicit operator bool() const noexcept반환값
결과를 소유하면 true입니다.
operator=
메서드
현재 핸들을 해제한 뒤 other가 소유한 핸들의 소유권을 가져옵니다.
GemResult &operator=(GemResult &&other) noexcept매개변수
| 이름 | 설명 |
|---|---|
other | 원본 래퍼입니다. 호출 후 비어 있게 됩니다. |
반환값
이 래퍼입니다.
operator=
메서드
복사 대입을 할 수 없습니다. 래퍼가 네이티브 핸들을 독점 소유합니다.
GemResult &operator=(const GemResult &) = deleteprogramInfo
메서드
공정 프로그램(process program) 요청 또는 응답(스트림 7, 펑션 1~6, 17~20)을 요약합니다.
GemProgramInfo programInfo() const요청에서는 받은 데이터와 로컬 처리 상태를 제공합니다. 응답에서는 통신 회선(wire)상의 사실만 제공하므로, 호스트는 이를 근거로 상대의 저장 상태나 내구성을 추론할 수 없습니다.
반환값
요청 종류, 개수, 확인 코드, 처리 상태입니다.
참고
- 예외
pdcomm::Error: 유효하지 않거나, 중단되었거나, 관련 없는 결과이면PDCOMM_INVALID_STATE입니다.
programItem
메서드
프로그램 결과에 담긴 프로그램 ID 또는 본문을 반환합니다.
SecsItem programItem(GemProgramField field, size_t index = 0) constGemProgramField::Id와 index를 지정하면 요청의 ID 또는 S7F6/S7F20 응답의 ID를 읽습니다. GemProgramField::Body와 index 0을 지정하면 S7F3 요청 또는 S7F6 응답의 본문을 읽습니다.
매개변수
| 이름 | 설명 |
|---|---|
field | 읽을 아이템입니다. |
index | 0부터 시작하는 ID 위치입니다. GemProgramInfo::idCount보다 작아야 합니다. 본문이면 0입니다. |
반환값
독립적으로 소유되는 아이템입니다. 알 수 없는 프로그램을 보고하는 S7F6 응답의 본문이면 빈 아이템입니다.
참고
- 예외
pdcomm::Error: 결과에 없는 필드이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
queryInfo
메서드
보고서 조회 요청(장비) 또는 그에 대한 S6F16/S6F20/S6F22 응답(호스트)을 요약합니다.
GemQueryInfo queryInfo() const반환값
조회 종류, 요청한 ID, 개수입니다.
참고
- 예외
pdcomm::Error: 실패했거나, 형식이 잘못되었거나, 중단되었거나, 관련 없는 결과이면PDCOMM_INVALID_STATE입니다.
queryReport
메서드
S6F16 응답의 보고서 하나를 반환합니다.
GemQueryReportInfo queryReport(size_t reportIndex) const매개변수
| 이름 | 설명 |
|---|---|
reportIndex | 0부터 시작하는 보고서 위치입니다. GemQueryInfo::reportCount보다 작아야 합니다. |
반환값
RPTID와 값 개수입니다.
참고
- 예외
pdcomm::Error: 결과가 S6F16 응답이 아니면PDCOMM_INVALID_STATE, 인덱스가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
queryValue
메서드
보고서 조회 응답의 값 하나를 반환합니다.
GemQueryValue queryValue(size_t reportIndex, size_t valueIndex) constS6F16에서는 두 인덱스를 모두 사용합니다. S6F20과 S6F22에서는 reportIndex가 0이어야 합니다. VID를 담는 값은 S6F22뿐입니다.
매개변수
| 이름 | 설명 |
|---|---|
reportIndex | S6F16이면 보고서 위치이고, 그 밖에는 0입니다. |
valueIndex | 0부터 시작하는 값 위치입니다. |
반환값
VID(S6F22만 해당)와 값 아이템입니다.
참고
- 예외
pdcomm::Error: 다른 결과 종류이면PDCOMM_INVALID_STATE, 인덱스가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
spoolError
메서드
호스트가 받은 S2F44 응답에서 거부된 스트림 하나를 반환합니다.
GemSpoolError spoolError(size_t index) const매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 위치입니다. GemSpoolInfo::errorCount보다 작아야 합니다. |
반환값
스트림, STRACK, 거부된 펑션입니다.
참고
- 예외
pdcomm::Error: 다른 결과 종류이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
spoolInfo
메서드
스풀 요청, 응답 또는 전달 결과를 요약합니다.
GemSpoolInfo spoolInfo() const처리 필드는 이 결과에 대한 마지막 작업을 나타냅니다. 현재 큐 상태는 GemEndpoint::spoolState()로 확인합니다.
반환값
요청 종류, 명령, 내구성, 증명, 처리 플래그입니다.
참고
- 예외
pdcomm::Error: 스풀 제어, 요청, 응답 또는 전달 결과가 아니면PDCOMM_INVALID_STATE입니다.
spoolSelection
메서드
수신한 S2F43 요청 또는 S2F60 응답의 스트림 선택 하나를 반환합니다.
GemSpoolSelection spoolSelection(size_t index) const매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 위치입니다. GemSpoolInfo::selectionCount보다 작아야 합니다. |
반환값
스트림과 선택된 펑션입니다. 펑션 리스트가 비어 있으면 해당 스트림에 등록된 모든 1차 메시지를 선택합니다.
참고
- 예외
pdcomm::Error: 다른 결과 종류이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
statusName
메서드
S1F12 상태 변수(status variable) 이름 목록 응답의 행 하나를 반환합니다.
GemStatusName statusName(size_t index) constGemOutcome::NamesReceived가 필요합니다. 이름과 단위는 길이로 구분된 ASCII로 복사되므로 중간에 포함된 NUL 바이트도 유지됩니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 행 위치입니다. GemResultInfo::entryCount보다 작아야 합니다. |
반환값
SVID, 이름, 단위입니다.
참고
- 예외
pdcomm::Error: 다른 처리 결과이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
statusValue
메서드
S1F4 응답의 상태 값 하나를 반환합니다.
GemStatusValue statusValue(size_t index) constGemOutcome::ValuesReceived가 필요합니다. SVID를 명시한 요청이면 값은 요청 순서를 유지하고 각자의 ID를 함께 담습니다. 모든 값을 요청하면 통신 회선(wire)에 ID가 없으므로 ID도 없습니다.
매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 값 위치입니다. GemResultInfo::entryCount보다 작아야 합니다. |
반환값
값과, 알려진 경우 요청한 SVID입니다.
참고
- 예외
pdcomm::Error: 다른 처리 결과이면PDCOMM_INVALID_STATE,index가 잘못되면PDCOMM_OUT_OF_RANGE입니다.
value
메서드
statusValue()의 별칭입니다.
GemStatusValue value(size_t index) const매개변수
| 이름 | 설명 |
|---|---|
index | 0부터 시작하는 값 위치입니다. |
반환값
값과, 알려진 경우 요청한 SVID입니다.
참고
- 예외
pdcomm::Error: statusValue()와 같은 상태 코드입니다.
value
메서드
eventValue()의 별칭입니다.
SecsItem value(size_t reportIndex, size_t valueIndex) const매개변수
| 이름 | 설명 |
|---|---|
reportIndex | 0부터 시작하는 보고서 위치입니다. |
valueIndex | 보고서 안에서 0부터 시작하는 값 위치입니다. |
반환값
독립적으로 소유되는 값 아이템입니다.
참고
- 예외
pdcomm::Error: eventValue()와 같은 상태 코드입니다.
~GemResult
메서드
pdcomm_gem_result_destroy()로 네이티브 핸들을 해제합니다.
~GemResult()빈 결과는 아무것도 해제하지 않습니다. getter가 이미 반환한 아이템은 계속 유효합니다.