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

pdcomm::GemFormattedProgramDryRunReport

클래스

선택된 정형 프로그램을 읽기 전용으로 구조 분석한 결과입니다.

class GemFormattedProgramDryRunReport

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

dryRunFormattedProgram()은 선택된 프로그램을 장비의 S7F22 기능 카탈로그(capability catalog)와 비교합니다. 모델과 소프트웨어 리비전, 명령 수와 크기, 알려진 명령 코드, 필수 명령을 확인합니다. 의존성이나 파라미터 의미처럼 라이브러리가 판단할 수 없는 검사는 판정 불가(indeterminate)로 보고합니다. 시험 실행은 아무것도 실행하지 않으며 실제 물리적 실행이 성공한다고 보장하지 않습니다.

보고서는 내용을 소유합니다. 이 분석에 묶인 실행을 시작하려면 보고서를 startFormattedProgramExecution()에 넘깁니다.

auto token = pdcomm::selectFormattedProgram(equipment, id);
auto report = pdcomm::dryRunFormattedProgram(
    equipment, token, pdcomm::gemFormattedProgramDryRunOptions(8, 4096));
if (report.info().outcome == PDCOMM_GEM_FORMATTED_PROGRAM_DRY_RUN_REJECT)
    for (size_t i = 0; i < report.info().issueCount; ++i)
        std::cout << report.issue(i).code << '\n';

참고

  • 이동 전용(move-only) RAII 래퍼입니다. getter는 동시에 실행할 수 있지만 소멸과 경합해서는 안 됩니다. 빈 보고서의 getter는 PDCOMM_INVALID_ARGUMENT와 함께 pdcomm::Error를 던집니다.

멤버

GemFormattedProgramDryRunReport

생성자

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

GemFormattedProgramDryRunReport() noexcept = default

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

GemFormattedProgramDryRunReport

생성자

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

GemFormattedProgramDryRunReport(GemFormattedProgramDryRunReport &&other) noexcept

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

매개변수

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

GemFormattedProgramDryRunReport

생성자

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

GemFormattedProgramDryRunReport(const GemFormattedProgramDryRunReport &) = delete

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

info

메서드

보고서의 요약을 반환합니다.

GemFormattedProgramDryRunInfo info() const

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

반환값

결과, 정책, 기록된 세대 값, 크기와 문제 수입니다.

참고

  • 예외 pdcomm::Error: 빈 보고서이면 PDCOMM_INVALID_ARGUMENT입니다.

issue

메서드

보고서의 발견 사항 하나를 반환합니다.

GemFormattedProgramDryRunIssueInfo issue(size_t index) const

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

매개변수

이름설명
index0부터 시작하는 발견 사항 위치입니다. GemFormattedProgramDryRunInfo::issueCount보다 작아야 합니다.

반환값

코드, 심각도, 존재 비트와 값입니다.

참고

  • 예외 pdcomm::Error: index가 잘못되면 PDCOMM_OUT_OF_RANGE, 빈 보고서이면 PDCOMM_INVALID_ARGUMENT입니다.

model

메서드

분석한 프로그램의 MDLN을 복사합니다.

std::string model() const

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

반환값

모델 텍스트입니다.

참고

  • 예외 pdcomm::Error: 빈 보고서이면 PDCOMM_INVALID_ARGUMENT입니다.

nativeHandle

메서드

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

const PdcommGemFormattedProgramDryRunReportHandle *nativeHandle() const noexcept

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

반환값

핸들입니다. 빈 보고서이면 nullptr입니다. 소유권은 이 래퍼에 남습니다.

operator bool

메서드

래퍼가 네이티브 보고서를 소유하는지 알려 줍니다.

explicit operator bool() const noexcept

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

반환값

보고서를 소유하면 true입니다.

operator=

메서드

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

GemFormattedProgramDryRunReport &operator=(GemFormattedProgramDryRunReport &&other) noexcept

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

매개변수

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

반환값

이 래퍼입니다.

operator=

메서드

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

GemFormattedProgramDryRunReport &operator=(const GemFormattedProgramDryRunReport &) = delete

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

programId

메서드

분석한 프로그램의 PPID를 아이템으로 반환합니다.

SecsItem programId() const

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

반환값

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

참고

  • 예외 pdcomm::Error: 빈 보고서이면 PDCOMM_INVALID_ARGUMENT입니다.

programIdBytes

메서드

분석한 프로그램의 PPID 원시 바이트를 복사합니다.

std::vector<uint8_t> programIdBytes() const

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

반환값

PPID 페이로드입니다. 형식은 GemFormattedProgramDryRunInfo::idFormat으로 확인합니다.

참고

  • 예외 pdcomm::Error: 빈 보고서이면 PDCOMM_INVALID_ARGUMENT입니다.

softwareRevision

메서드

분석한 프로그램의 SOFTREV를 복사합니다.

std::string softwareRevision() const

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

반환값

소프트웨어 리비전 텍스트입니다.

참고

  • 예외 pdcomm::Error: 빈 보고서이면 PDCOMM_INVALID_ARGUMENT입니다.

~GemFormattedProgramDryRunReport

메서드

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

~GemFormattedProgramDryRunReport()

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

빈 보고서는 아무것도 해제하지 않습니다.