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

PDComm.GemFormattedPrograms

클래스

GEM 끝점의 정형 프로세스 프로그램 서비스를 제공합니다. S7F21~S7F32 거래, 장비의 로컬 정형 프로그램 저장소와 기능 카탈로그, 프로그램 선택, 시험 실행, 실행 추적이 포함됩니다.

public sealed class GemFormattedPrograms

인스턴스는 GemEndpoint.FormattedPrograms에서 가져옵니다. 같은 작업을 작업자의 폴링 스레드에서 실행하려면 GemWorker.FormattedPrograms를 사용합니다. 각 서비스는 끝점이 중지된 동안 해당 Configure 메서드나 GemFormattedProgramConfiguration으로 한 번 구성합니다.

호스트는 S7F21(GemFormattedPrograms.SubmitCapabilityQuery), S7F23(GemFormattedPrograms.SubmitTransfer), S7F25(GemFormattedPrograms.SubmitQuery), S7F31(GemFormattedPrograms.SubmitVerificationRequest)을 보내고 S7F27과 S7F29에 응답합니다. 장비는 S7F27(GemFormattedPrograms.SubmitVerificationReport)과 S7F29/S7F27 협상(GemFormattedPrograms.PrepareVerification)을 보내고, S7F21, S7F23, S7F25, S7F31에 응답하며, 로컬 저장소, 기능 카탈로그, 선택, 시험 실행, 실행 상태를 소유합니다. 잘못된 역할에서 호출하면 PdcommStatus.InvalidState인 PdcommException으로 실패합니다.

모든 메서드는 끝점의 내부 잠금으로 직렬화되며, 끝점이 해제된 뒤에는 ObjectDisposedException을 throw합니다. 여기서 반환되는 결과, 스냅샷, 보고서, 동작은 자체 네이티브 메모리를 소유하고, 끝점이 해제된 뒤에도 유효하며, 호출자가 해제해야 합니다. 실행 메서드는 애플리케이션이 보고하는 상태만 추적하며 장비를 구동하지 않습니다.

멤버

CancelExecution

메서드

실행 중인 실행의 취소를 취소 동작으로 요청합니다.

public GemFormattedProgramExecutionAction CancelExecution(GemFormattedProgramExecutionToken token)

장비 전용입니다. 취소가 대기 중인 동안 다시 호출하면 같은 대기 동작을 반환합니다. 결과는 GemFormattedPrograms.SubmitActionResult로 보고합니다. 취소가 거부되면 실행은 GemFormattedProgramExecutionState.Running으로 돌아갑니다.

매개변수

이름설명
tokenGemFormattedProgramExecutionStart.Token에서 가져온 실행 토큰입니다.

반환값

다음에 실행될 명령의 인덱스를 담은 취소 동작입니다. 호출자가 소유하며 해제해야 합니다.

참고

  • ArgumentNullException 예외: token이 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: token이 현재 실행을 식별하지 않으면 PdcommStatus.StaleToken입니다. 호스트에서 호출했거나, 조회 서비스가 구성되어 있지 않거나, 실행이 GemFormattedProgramExecutionState.Running이 아니면 PdcommStatus.InvalidState입니다.

ClearCapabilities

메서드

장비의 프로세스 기능 카탈로그를 제거합니다.

public ulong ClearCapabilities()

장비 전용입니다. 카탈로그가 비어 있는 동안에는 GemFormattedPrograms.RespondCapabilityQuery가 PdcommStatus.InvalidState로 실패하고, 시험 실행은 기능이 누락되었다고 보고합니다.

반환값

호출 후의 카탈로그 리비전입니다. 카탈로그가 제거되었으면 1 증가하고, 카탈로그가 이미 비어 있었으면 바뀌지 않습니다.

참고

  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다.

ClearSelection

메서드

현재 프로그램 선택을 지웁니다.

public bool ClearSelection(GemFormattedProgramSelectionToken token)

장비 전용입니다.

매개변수

이름설명
tokenGemFormattedPrograms.SelectProgram에서 가져온 현재 선택의 토큰입니다.

반환값

선택을 지웠으면 true이고, 지울 것이 없었으면 false입니다.

참고

  • ArgumentNullException 예외: token이 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: token이 현재 선택을 식별하지 않으면 PdcommStatus.StaleToken이고, 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다.

CompleteExecution

메서드

실행 중인 실행의 최종 결과를 보고하고 실행을 끝냅니다.

public void CompleteExecution(GemFormattedProgramExecutionToken token, ulong reportId, GemFormattedProgramTerminalOutcome outcome, ReadOnlyMemory<byte> detail)

장비 전용입니다. 세부 바이트는 복사됩니다. 같은 보고서 ID, 결과, 세부 정보를 반복하면 변경 없이 성공합니다.

매개변수

이름설명
tokenGemFormattedProgramExecutionStart.Token에서 가져온 실행 토큰입니다.
reportId결과와 함께 기록되는 애플리케이션 정의 보고서 ID입니다.
outcome프로그램의 최종 결과입니다.
detail결과와 함께 기록되는 애플리케이션 정의 세부 바이트입니다. 최대 끝점 GEM 아이템 한도의 SecsLimits.MessageBytes이며 비어 있을 수 있습니다.

참고

  • ArgumentNullException 예외: token이 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: outcome이 정의된 값이 아니면 PdcommStatus.InvalidArgument입니다. token이 현재 실행을 식별하지 않거나 다른 결과가 이미 기록되었으면 PdcommStatus.StaleToken입니다. 호스트에서 호출했거나, 조회 서비스가 구성되어 있지 않거나, 실행이 대기 동작 없는 GemFormattedProgramExecutionState.Running이 아니거나, 모든 명령이 적용되기 전에 GemFormattedProgramTerminalOutcome.Complete를 보고하면 PdcommStatus.InvalidState입니다. detail이 너무 길면 PdcommStatus.LimitExceeded입니다.

ConfigureCapabilities

메서드

S7F21/S7F22 프로세스 기능 서비스와, 장비에서는 로컬 기능 카탈로그를 활성화합니다.

public void ConfigureCapabilities(GemFormattedProgramCapabilityOptions options)

GemEndpoint.Start 전에 서비스를 한 번 구성합니다. 카탈로그는 리비전 0의 빈 상태로 시작합니다.

매개변수

이름설명
options카탈로그 한도와, 서비스의 요청·수신·결과·이력 용량입니다.

참고

  • ArgumentNullException 예외: options가 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 끝점이 중지되어 있지 않거나 서비스가 이미 구성되어 있으면 PdcommStatus.InvalidState이고, 옵션이 잘못되었으면 PdcommStatus.InvalidArgument입니다.

ConfigureQueries

메서드

S7F25/S7F26 정형 프로세스 프로그램 요청 서비스와, 장비에서는 로컬 정형 프로그램 저장소, 선택, 실행 추적을 활성화합니다.

public void ConfigureQueries(GemFormattedProgramQueryOptions options)

GemEndpoint.Start 전에 서비스를 한 번 구성합니다. 장비에서 저장소, 선택, 시험 실행, 실행 메서드를 사용하려면 이 서비스가 필요합니다.

매개변수

이름설명
options명령 및 매개변수 한도, 저장소 한도, 서비스의 요청·수신·결과·이력 용량입니다.

참고

  • ArgumentNullException 예외: options가 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 끝점이 중지되어 있지 않거나 서비스가 이미 구성되어 있으면 PdcommStatus.InvalidState이고, 옵션이 잘못되었으면 PdcommStatus.InvalidArgument입니다.

ConfigureTransfers

메서드

S7F23/S7F24 정형 프로세스 프로그램 송신 서비스를 활성화합니다.

public void ConfigureTransfers(GemFormattedProgramTransferOptions options)

GemEndpoint.Start 전에 서비스를 한 번 구성합니다.

매개변수

이름설명
options명령 및 매개변수 한도와, 서비스의 요청·수신·결과·이력 용량입니다.

참고

  • ArgumentNullException 예외: options가 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 끝점이 중지되어 있지 않거나 서비스가 이미 구성되어 있으면 PdcommStatus.InvalidState이고, 옵션이 잘못되었으면 PdcommStatus.InvalidArgument입니다.

ConfigureVerificationNegotiation

메서드

S7F27 검증 송신에 앞서는 S7F29/S7F30 검증 문의 및 허가 협상을 활성화합니다.

public void ConfigureVerificationNegotiation(GemFormattedProgramVerificationNegotiationOptions options)

GemEndpoint.Start 전에 서비스를 한 번 구성합니다.

매개변수

이름설명
options문제 한도, 준비된 협상 용량, 서비스의 요청·수신·결과·이력 용량입니다.

참고

  • ArgumentNullException 예외: options가 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 끝점이 중지되어 있지 않거나 서비스가 이미 구성되어 있으면 PdcommStatus.InvalidState이고, 옵션이 잘못되었으면 PdcommStatus.InvalidArgument입니다.

ConfigureVerificationReports

메서드

S7F27/S7F28 프로세스 프로그램 검증 보고서 서비스를 활성화합니다.

public void ConfigureVerificationReports(GemFormattedProgramOptions options)

GemEndpoint.Start 전에 서비스를 한 번 구성합니다.

매개변수

이름설명
options문제 한도와, 서비스의 요청·수신·결과·이력 용량입니다.

참고

  • ArgumentNullException 예외: options가 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 끝점이 중지되어 있지 않거나 서비스가 이미 구성되어 있으면 PdcommStatus.InvalidState이고, 옵션이 잘못되었으면 PdcommStatus.InvalidArgument입니다.

ConfigureVerificationRequests

메서드

S7F31/S7F32 검증 요청 서비스를 활성화합니다.

public void ConfigureVerificationRequests(GemFormattedProgramVerificationRequestOptions options)

GemEndpoint.Start 전에 서비스를 한 번 구성합니다.

매개변수

이름설명
options명령 및 매개변수 한도와, 서비스의 요청·수신·결과·이력 용량입니다.

참고

  • ArgumentNullException 예외: options가 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 끝점이 중지되어 있지 않거나 서비스가 이미 구성되어 있으면 PdcommStatus.InvalidState이고, 옵션이 잘못되었으면 PdcommStatus.InvalidArgument입니다.

DryRun

메서드

선택된 프로그램을 실행하지 않고 장비의 기능 카탈로그와 비교하여 분석합니다.

public GemFormattedProgramDryRunReport DryRun(GemFormattedProgramSelectionToken token, GemFormattedProgramDryRunOptions options)

장비 전용입니다. 분석은 읽기 전용이며 구조적입니다. 물리적 실행을 수행하거나 보장하지 않습니다. 기능 카탈로그가 없으면 결과는 GemFormattedProgramDryRunOutcome.Indeterminate입니다. 거부되지 않은 보고서를 GemFormattedPrograms.StartExecution에 전달합니다.

매개변수

이름설명
tokenGemFormattedPrograms.SelectProgram에서 가져온 현재 선택의 토큰입니다.
options분석 정책 버전(1이어야 함)과, 문제 수 및 프로그램 인코딩 크기(바이트)의 한도입니다.

반환값

결과와 문제를 담은 시험 실행 보고서입니다. 호출자가 소유하며 해제해야 합니다.

참고

  • ArgumentNullException 예외: token 또는 options가 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: token이 더 이상 유효한 선택과 일치하지 않으면 PdcommStatus.StaleToken, 정책 버전이 지원되지 않으면 PdcommStatus.InvalidArgument, 프로그램이나 문제 목록이 options를 초과하면 PdcommStatus.LimitExceeded, 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다.

GetActionToken

메서드

GemFormattedPrograms.SubmitActionResult에 사용할, 실행 동작을 식별하는 토큰을 가져옵니다.

public static GemFormattedProgramExecutionActionToken GetActionToken(GemFormattedProgramExecutionAction action)

이 메서드는 동작 객체만 읽으며 끝점을 사용하지 않습니다.

매개변수

이름설명
actionGemFormattedPrograms.StartExecution, GemFormattedPrograms.StepExecution 또는 GemFormattedPrograms.CancelExecution이 반환한 동작입니다.

반환값

동작의 동작 종류, 끝점, 세션, 실행 세대, 동작 시퀀스입니다.

참고

  • ArgumentNullException 예외: action이 null입니다.
  • ObjectDisposedException 예외: action이 해제되었습니다.
  • PdcommException 예외: 네이티브 라이브러리가 동작을 읽지 못했습니다.

GetExecutionSnapshot

메서드

장비의 정형 프로그램 실행 추적기의 스냅샷을 가져옵니다.

public GemFormattedProgramExecutionSnapshot GetExecutionSnapshot()

장비 전용입니다. 이후 실행 상태가 바뀌어도 스냅샷은 바뀌지 않습니다.

반환값

상태, 토큰, 기록된 프로그램, 대기 중인 동작, 애플리케이션 보고의 복사본입니다. 호출자가 소유하며 해제해야 합니다.

참고

  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다.

GetSelectionSnapshot

메서드

현재 프로그램 선택의 스냅샷을 가져옵니다.

public GemFormattedProgramSelectionSnapshot GetSelectionSnapshot()

장비 전용입니다. 스냅샷은 자신의 내용을 소유합니다.

반환값

선택 상태(비어 있음, 준비됨, 무효화됨), 무효화 이유, 선택된 프로그램을 담은 스냅샷입니다. 호출자가 소유하며 해제해야 합니다.

참고

  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다.

GetStoreInfo

메서드

장비의 로컬 정형 프로그램 저장소의 리비전, 사용량, 한도를 가져옵니다.

public GemFormattedProgramStoreInfo GetStoreInfo()

장비 전용입니다.

반환값

저장소 리비전, 항목 수, 식별자와 인코딩 바이트의 합계, 그리고 각각의 한도입니다.

참고

  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다.

GetStoreSnapshot

메서드

장비의 로컬 정형 프로그램 저장소에 있는 모든 프로그램의 복사본을 가져옵니다.

public GemFormattedProgramStoreSnapshot GetStoreSnapshot()

장비 전용입니다. 스냅샷은 전체 복사본을 소유하며, 이후 저장소가 바뀌거나 끝점이 해제된 뒤에도 유효합니다.

반환값

저장소의 스냅샷입니다. 호출자가 소유하며 해제해야 합니다.

참고

  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다.

PrepareVerification

메서드

아무것도 보내지 않고 S7F29/S7F30 협상을 위한 S7F27 검증 보고서를 준비합니다.

public GemResult PrepareVerification(SecsItem id, IReadOnlyList<GemFormattedProgramIssue> issues)

장비 전용입니다. 본문 길이(LENGTH)와 함께 S7F29를 보내려면 결과를 GemFormattedPrograms.SubmitPreparedVerification에 전달합니다. 결과는 GemResult.GetFormattedProgramVerificationNegotiationInfo, GemResult.GetFormattedProgramId, GemResult.GetFormattedProgramIssueAt으로 읽습니다.

매개변수

이름설명
id프로세스 프로그램 ID(PPID)입니다. 비어 있지 않은 최대 120바이트의 ASCII 아이템 또는 Binary 아이템입니다.
issues전송 순서대로 나열한 검증 문제입니다.

반환값

인코딩된 S7F27 본문 길이를 기록한, 준비된 협상 결과입니다. 호출자가 소유하며 해제해야 합니다.

참고

  • ArgumentNullException 예외: id, issues, 문제 또는 그 텍스트가 null입니다.
  • ArgumentException 예외: 문제 텍스트에 잘못된 UTF-16 서로게이트 시퀀스가 있습니다.
  • ObjectDisposedException 예외: 끝점 또는 id가 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나, 협상 서비스가 구성되어 있지 않거나, GEM 통신이 수립되지 않았으면 PdcommStatus.InvalidState입니다. PPID나 문제가 잘못되었거나 문제가 GemFormattedProgramVerificationNegotiationOptions를 초과하면 PdcommStatus.InvalidArgument입니다. S7F27 메시지가 HSMS 프레임 하나에 들어가지 않거나 준비 용량을 다 사용했으면 PdcommStatus.LimitExceeded입니다.

PutProgram

메서드

장비의 로컬 정형 프로그램 저장소에 프로그램을 씁니다.

public void PutProgram(GemFormattedProgramPayload payload, GemFormattedProgramStoreAction action)

장비 전용입니다. 입력은 복사되며, 호출이 실패하면 저장소는 바뀌지 않습니다. 쓰기가 성공하면 저장소 리비전이 증가하고, 교체된 프로그램의 선택은 무효화됩니다.

매개변수

이름설명
payload저장할 프로그램입니다. 각 필드의 규칙은 GemFormattedProgramPayload에서 설명합니다.
action프로그램을 쓰는 방식입니다. GemFormattedProgramStoreAction.CreateOnly, GemFormattedProgramStoreAction.ReplaceOnly 또는 GemFormattedProgramStoreAction.Upsert입니다.

참고

  • ArgumentNullException 예외: payload, 그 ID, 모델, 소프트웨어 리비전 또는 명령 목록, 또는 명령, 그 코드, 매개변수 목록이나 매개변수 중 하나가 null입니다.
  • ArgumentException 예외: 문자열에 잘못된 UTF-16 서로게이트 시퀀스가 있습니다.
  • ObjectDisposedException 예외: 끝점 또는 payload의 아이템이 해제되었습니다.
  • PdcommException 예외: payload의 필드가 잘못되었거나, action이 GemFormattedProgramStoreAction.RespondOnly이거나 정의되지 않았으면 PdcommStatus.InvalidArgument입니다. 호스트에서 호출했거나, 조회 서비스가 구성되어 있지 않거나, GemFormattedProgramStoreAction.CreateOnly가 기존 프로그램을 찾았거나 GemFormattedProgramStoreAction.ReplaceOnly가 프로그램을 찾지 못했거나, 대기 중인 송신 응답이 저장소를 잠그고 있으면 PdcommStatus.InvalidState입니다. 프로그램이 GemFormattedProgramQueryOptions, 저장소 한도 또는 아이템 한도를 초과하면 PdcommStatus.LimitExceeded입니다.

RemoveProgram

메서드

장비의 로컬 정형 프로그램 저장소에서 프로그램을 제거합니다.

public bool RemoveProgram(SecsItem id)

장비 전용입니다. 제거하면 저장소 리비전이 증가하고, 제거된 프로그램의 선택은 무효화됩니다.

매개변수

이름설명
id제거할 프로세스 프로그램 ID(PPID)입니다. ASCII 아이템 또는 Binary 아이템입니다.

반환값

프로그램을 제거했으면 true이고, 해당 PPID의 프로그램이 없으면 false입니다.

참고

  • ArgumentNullException 예외: id가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 id가 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나, 조회 서비스가 구성되어 있지 않거나, 대기 중인 송신 응답이 저장소를 잠그고 있으면 PdcommStatus.InvalidState이고, id가 유효한 PPID 아이템이 아니면 PdcommStatus.InvalidArgument입니다.

RemoveQuery

메서드

장비의 로컬 정형 프로그램 저장소에서 프로그램을 제거합니다.

public bool RemoveQuery(SecsItem id)

장비 전용입니다. GemFormattedPrograms.RemoveProgram의 별칭입니다.

매개변수

이름설명
id제거할 프로세스 프로그램 ID(PPID)입니다. ASCII 아이템 또는 Binary 아이템입니다.

반환값

프로그램을 제거했으면 true이고, 해당 PPID의 프로그램이 없으면 false입니다.

참고

  • ArgumentNullException 예외: id가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 id가 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다. id가 유효한 PPID 아이템이 아니면 PdcommStatus.InvalidArgument입니다. 대기 중인 송신 응답이 저장소를 잠그고 있으면 다른 상태입니다.

ReplaceCapabilities

메서드

S7F21에 응답하는 장비의 프로세스 기능 카탈로그를 교체합니다.

public ulong ReplaceCapabilities(string model, string softwareRevision, byte commandMaximum, uint byteMaximum, IReadOnlyList<GemFormattedProgramCapabilityCommand> commands)

장비 전용입니다. 입력은 복사되며, 호출이 실패하면 현재 카탈로그는 바뀌지 않습니다. 수신한 S7F21에는 GemFormattedPrograms.RespondCapabilityQuery를 호출할 때 카탈로그 내용으로 응답합니다. 시험 실행은 프로그램을 이 카탈로그와 비교합니다.

매개변수

이름설명
model장비 모델 유형(MDLN)입니다. 최대 20바이트의 ASCII 텍스트입니다.
softwareRevision소프트웨어 리비전(SOFTREV)입니다. 최대 20바이트의 ASCII 텍스트입니다.
commandMaximum프로그램에 들어갈 수 있는 최대 명령 수(CMDMAX)입니다. U1 아이템으로 전송됩니다.
byteMaximum프로그램을 인코딩한 크기의 최댓값(바이트, BYTMAX)입니다. U4 아이템으로 전송됩니다.
commands전송 순서대로 나열한 명령 항목입니다.

반환값

호출 후의 카탈로그 리비전입니다. 새 카탈로그가 현재 카탈로그와 같으면 바뀌지 않고, 그렇지 않으면 1 증가합니다.

참고

  • ArgumentNullException 예외: model, softwareRevision, commands, 또는 명령, 그 코드, 이름, 종속성 목록, 매개변수 목록이나 매개변수 중 하나가 null입니다.
  • ArgumentException 예외: 문자열에 잘못된 UTF-16 서로게이트 시퀀스가 있습니다.
  • ObjectDisposedException 예외: 끝점 또는 매개변수 아이템이 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다. 텍스트가 ASCII가 아니거나 너무 길거나, 블록 정의가 범위를 벗어나거나, 매개변수 설명자의 형태가 잘못되었으면 PdcommStatus.InvalidArgument입니다. 카탈로그가 GemFormattedProgramCapabilityOptions를 초과하면 PdcommStatus.LimitExceeded입니다.

RespondCapabilityQuery

메서드

수신한 S7F21에 로컬 카탈로그로 만든 S7F22(Process Capabilities Data)로 응답합니다.

public void RespondCapabilityQuery(GemResult result)

장비 전용입니다. 첫 호출에서 현재 카탈로그를 결과에 기록하므로, 실패 후 다시 시도해도 같은 데이터를 보냅니다. 응답을 보낸 뒤에 호출하면 다시 보내지 않고 반환합니다.

매개변수

이름설명
result이 끝점과 세션에서 받은 S7F21 요청의 GemResult(GemOutcome.FormattedCapabilityReceived)입니다.

참고

  • ArgumentNullException 예외: result가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 result가 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나, GEM 통신이 수립되지 않았거나, result가 기능 요청이 아니거나, 카탈로그가 비어 있으면 PdcommStatus.InvalidState입니다. result가 다른 끝점이나 세션에 속하면 PdcommStatus.StaleToken입니다. 전송이 응답을 큐에 넣을 수 없으면 PdcommStatus.Backpressure입니다.

RespondQuery

메서드

수신한 S7F25에 로컬 저장소의 S7F26(Formatted Process Program Data)으로 응답합니다.

public void RespondQuery(GemResult result)

장비 전용입니다. 응답에는 요청한 PPID의 저장된 프로그램이 들어가며, 없으면 빈 리스트가 들어갑니다. 이때 응답 내용은 result에서도 읽을 수 있습니다. 응답을 보낸 뒤에 호출하면 다시 보내지 않고 반환합니다.

매개변수

이름설명
result이 끝점과 세션에서 받은 S7F25의 GemResult(GemOutcome.FormattedQueryReceived)입니다.

참고

  • ArgumentNullException 예외: result가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 result가 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나, GEM 통신이 수립되지 않았거나, result가 프로그램 요청이 아니면 PdcommStatus.InvalidState입니다. result가 다른 끝점이나 세션에 속하거나 수신한 요청이 아니면 PdcommStatus.StaleToken입니다. 전송이 응답을 큐에 넣을 수 없으면 PdcommStatus.Backpressure입니다.

RespondTransfer

메서드

수신한 S7F23에 S7F24(Formatted Process Program Acknowledge)로 응답합니다.

public void RespondTransfer(GemResult result, byte acknowledgement)

장비 전용입니다. 로컬 저장소는 바뀌지 않습니다. 프로그램을 저장하려면 GemFormattedPrograms.RespondTransferAndStore를 사용합니다. 응답을 보낸 뒤 같은 응답을 반복하면 다시 보내지 않고 성공합니다.

매개변수

이름설명
result이 끝점과 세션에서 받은 S7F23의 GemResult(GemOutcome.FormattedTransferReceived)입니다.
acknowledgement확인 코드(ACKC7)이며 0~7입니다. 0은 프로그램을 수락합니다.

참고

  • ArgumentNullException 예외: result가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 result가 해제되었습니다.
  • PdcommException 예외: acknowledgement가 7보다 크면 PdcommStatus.InvalidArgument입니다. 호스트에서 호출했거나, GEM 통신이 수립되지 않았거나, result가 송신이 아니면 PdcommStatus.InvalidState입니다. result가 다른 끝점이나 세션에 속하거나, 수신한 요청이 아니거나, 이미 다르게 응답했으면 PdcommStatus.StaleToken입니다. 전송이 응답을 큐에 넣을 수 없으면 PdcommStatus.Backpressure입니다.

RespondTransferAndStore

메서드

수신한 S7F23에 S7F24로 응답하고, 같은 단계에서 수신한 프로그램을 로컬 저장소에 씁니다.

public void RespondTransferAndStore(GemResult result, byte acknowledgement, GemFormattedProgramStoreAction action)

장비 전용입니다. 확인 코드가 동작을 선택하지 않습니다. 저장소 동작이 지정되면 프로그램은 항상 기록됩니다. 저장소 쓰기는 응답을 큐에 넣기 전에 예약되고 그 뒤에 확정됩니다. 예약이 대기 중인 동안에는 다른 저장소 변경이 실패합니다. PdcommStatus.Backpressure 후에는 같은 인수로 다시 호출합니다. 응답을 보낸 뒤 같은 응답을 반복하면 다시 보내지 않고 성공합니다.

매개변수

이름설명
result이 끝점과 세션에서 받은 S7F23의 GemResult(GemOutcome.FormattedTransferReceived)입니다.
acknowledgement확인 코드(ACKC7)이며 0~7입니다. 0은 프로그램을 수락합니다.
action프로그램을 저장소에 쓰는 방식입니다. GemFormattedProgramStoreAction.RespondOnly는 쓰지 않고 응답만 합니다.

참고

  • ArgumentNullException 예외: result가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 result가 해제되었습니다.
  • PdcommException 예외: acknowledgement가 7보다 크거나 action이 정의되지 않았으면 PdcommStatus.InvalidArgument입니다. 호스트에서 호출했거나, GEM 통신이 수립되지 않았거나, result가 송신이 아니거나, 저장소를 소유한 조회 서비스가 구성되어 있지 않거나, 저장소가 동작을 거부하면 PdcommStatus.InvalidState입니다. result가 다른 끝점이나 세션에 속하거나, 수신한 요청이 아니거나, 이미 다른 코드나 동작으로 응답했으면 PdcommStatus.StaleToken입니다. 전송이 응답을 큐에 넣을 수 없으면 PdcommStatus.Backpressure입니다. 프로그램이 저장소 한도를 초과하면 PdcommStatus.LimitExceeded입니다.

RespondVerification

메서드

수신한 S7F29에 S7F30(Process Program Verification Grant)으로 응답합니다.

public void RespondVerification(GemResult result, byte grant)

호스트 전용입니다. 응답을 보낸 뒤 같은 응답을 반복하면 다시 보내지 않고 성공합니다. 응답을 큐에 넣을 수 없으면 허가가 유지됩니다. 같은 허가로 다시 호출하거나 GemFormattedPrograms.RetryVerificationResponse를 호출합니다. 허가 응답을 받으면 장비가 S7F27 보고서를 보낼 수 있으며, 호스트는 GemFormattedPrograms.ConfigureVerificationReports로 구성한 서비스를 통해 이를 받습니다.

매개변수

이름설명
result이 끝점과 세션에서 받은 S7F29의 GemResult(GemOutcome.FormattedVerificationInquireReceived)입니다.
grant허가 코드(PPGNT)이며 0~63입니다. 0은 검증 송신을 허가합니다.

참고

  • ArgumentNullException 예외: result가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 result가 해제되었습니다.
  • PdcommException 예외: grant가 63보다 크면 PdcommStatus.InvalidArgument입니다. 장비에서 호출했거나, GEM 통신이 수립되지 않았거나, result가 검증 문의가 아니면 PdcommStatus.InvalidState입니다. result가 다른 끝점이나 세션에 속하거나, 수신한 요청이 아니거나, 다른 허가가 이미 준비되었거나 전송되었으면 PdcommStatus.StaleToken입니다. 전송이 응답을 큐에 넣을 수 없으면 PdcommStatus.Backpressure입니다.

RespondVerificationReport

메서드

수신한 S7F27 검증 보고서에 S7F28(Process Program Verification Acknowledge)로 응답합니다.

public void RespondVerificationReport(GemResult result)

호스트 전용입니다. S7F28에는 본문이 없습니다. PdcommStatus.Backpressure 후에는 준비된 응답이 유지되므로 다시 호출할 수 있습니다. 응답을 보낸 뒤에 호출하면 다시 보내지 않고 반환합니다.

매개변수

이름설명
result이 끝점과 세션에서 받은 S7F27의 GemResult(GemOutcome.FormattedVerificationReportReceived)입니다.

참고

  • ArgumentNullException 예외: result가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 result가 해제되었습니다.
  • PdcommException 예외: 장비에서 호출했거나, GEM 통신이 수립되지 않았거나, result가 검증 보고서가 아니면 PdcommStatus.InvalidState입니다. result가 다른 끝점이나 세션에 속하거나 수신한 요청이 아니면 PdcommStatus.StaleToken입니다. 전송이 응답을 큐에 넣을 수 없으면 PdcommStatus.Backpressure입니다.

RespondVerificationRequest

메서드

수신한 S7F31에 S7F32(Verification Request Acknowledge)로 응답합니다.

public void RespondVerificationRequest(GemResult result, byte acknowledgement)

장비 전용입니다. 응답을 보낸 뒤 같은 응답을 반복하면 다시 보내지 않고 성공합니다.

매개변수

이름설명
result이 끝점과 세션에서 받은 S7F31의 GemResult(GemOutcome.FormattedVerificationRequestReceived)입니다.
acknowledgement확인 코드(ACKC7)이며 0~7입니다. 0은 요청을 수락합니다.

참고

  • ArgumentNullException 예외: result가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 result가 해제되었습니다.
  • PdcommException 예외: acknowledgement가 7보다 크면 PdcommStatus.InvalidArgument입니다. 호스트에서 호출했거나, GEM 통신이 수립되지 않았거나, result가 검증 요청이 아니면 PdcommStatus.InvalidState입니다. result가 다른 끝점이나 세션에 속하거나, 수신한 요청이 아니거나, 이미 다른 코드로 응답했으면 PdcommStatus.StaleToken입니다. 전송이 응답을 큐에 넣을 수 없으면 PdcommStatus.Backpressure입니다.

RetryVerification

메서드

허가 후 자동 송신이 실패했을 때, 허가된 검증 협상의 S7F27을 보냅니다.

public HsmsToken RetryVerification(GemResult result)

장비 전용입니다. S7F28 응답은 GemOutcome.FormattedVerificationNegotiationAck인 GemResult로 도착합니다.

매개변수

이름설명
result이 끝점과 세션의 준비된 협상 GemResult이거나, 그 S7F30 허가를 보고한 결과입니다.

반환값

수락된 S7F27 요청의 전송 토큰입니다.

참고

  • ArgumentNullException 예외: result가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 result가 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나, GEM 통신이 수립되지 않았거나, result가 협상 결과가 아니면 PdcommStatus.InvalidState입니다. result가 다른 끝점이나 세션에 속하거나 수신한 요청이면 PdcommStatus.StaleToken입니다. 대기 요청 테이블이나 전송이 가득 찼으면 PdcommStatus.Backpressure입니다. 협상이 허가되지 않았거나 S7F27을 이미 보냈으면 PdcommStatus.LimitExceeded 같은 다른 상태입니다.

RetryVerificationResponse

메서드

앞선 GemFormattedPrograms.RespondVerification이 큐에 넣지 못한 S7F30 응답을 다시 보냅니다.

public void RetryVerificationResponse(GemResult result)

호스트 전용입니다.

매개변수

이름설명
result응답을 아직 보내지 않은, 수신한 S7F29의 GemResult(GemOutcome.FormattedVerificationInquireReceived)입니다.

참고

  • ArgumentNullException 예외: result가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 result가 해제되었습니다.
  • PdcommException 예외: 장비에서 호출했거나, GEM 통신이 수립되지 않았거나, result가 검증 문의가 아니면 PdcommStatus.InvalidState입니다. result가 다른 끝점이나 세션에 속하거나, 수신한 요청이 아니거나, 이미 응답했으면 PdcommStatus.StaleToken입니다. 전송이 응답을 큐에 넣을 수 없으면 PdcommStatus.Backpressure입니다. 준비된 허가가 없으면 다른 상태입니다.

SeedQuery

메서드

장비의 로컬 정형 프로그램 저장소에 프로그램을 추가하거나, PPID가 같은 저장된 프로그램을 교체합니다.

public void SeedQuery(GemFormattedProgramPayload payload)

장비 전용입니다. GemFormattedProgramStoreAction.Upsert를 사용하는 GemFormattedPrograms.PutProgram의 별칭이며, 프로그램이 S7F26 응답에 들어가는지도 검사합니다. 저장소는 S7F25 요청에 응답하고 선택과 실행에 프로그램을 제공합니다. 입력은 호출 중에 복사됩니다.

매개변수

이름설명
payload저장할 프로그램입니다. 각 필드의 규칙은 GemFormattedProgramPayload에서 설명합니다.

참고

  • ArgumentNullException 예외: payload, 그 ID, 모델, 소프트웨어 리비전 또는 명령 목록, 또는 명령, 그 코드, 매개변수 목록이나 매개변수 중 하나가 null입니다.
  • ArgumentException 예외: 문자열에 잘못된 UTF-16 서로게이트 시퀀스가 있습니다.
  • ObjectDisposedException 예외: 끝점 또는 payload의 아이템이 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다. payload의 필드가 잘못되었으면 PdcommStatus.InvalidArgument입니다. 프로그램이 GemFormattedProgramQueryOptions, 저장소 한도 또는 아이템 한도를 초과하면 PdcommStatus.LimitExceeded입니다. 대기 중인 송신 응답이 저장소를 잠그고 있으면 다른 상태입니다.

SelectProgram

메서드

시험 실행과 실행에 사용할 저장된 프로그램을 선택합니다.

public GemFormattedProgramSelectionToken SelectProgram(SecsItem id)

장비 전용입니다. 선택은 로컬 상태이며 물리적 실행을 수행하지 않습니다. 새 선택은 이전 선택을 대체합니다. 바뀌지 않은 같은 프로그램을 다시 선택하면 같은 토큰을 반환합니다. 프로그램이 바뀌거나 제거되거나, HSMS 세션이 바뀌거나, 연결이 끊어지면 선택이 무효화됩니다.

매개변수

이름설명
id로컬 저장소에 있는 프로그램의 프로세스 프로그램 ID(PPID)입니다. ASCII 아이템 또는 Binary 아이템입니다.

반환값

이 선택을 식별하는 토큰입니다.

참고

  • ArgumentNullException 예외: id가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 id가 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나, 조회 서비스가 구성되어 있지 않거나, 저장소에 해당 PPID의 프로그램이 없으면 PdcommStatus.InvalidState입니다. id가 유효한 PPID 아이템이 아니면 PdcommStatus.InvalidArgument입니다. 프로그램이 너무 커서 기록할 수 없으면 PdcommStatus.LimitExceeded입니다.

StartExecution

메서드

선택된 정형 프로그램의 실행 추적을 시작하고 첫 번째 동작인 시작 동작을 반환합니다.

public GemFormattedProgramExecutionStart StartExecution(GemFormattedProgramSelectionToken selection, GemFormattedProgramDryRunReport report)

장비 전용입니다. 메시지를 보내지 않으며 장비를 구동하지도 않습니다. 애플리케이션이 동작을 수행하고 GemFormattedPrograms.SubmitActionResult로 결과를 보고합니다. 실행이 종료 상태에 도달하지 않은 동안 같은 선택과 보고서로 다시 호출하면 대기 중인 시작 동작을 다시 반환합니다. 종료 상태 이후에 시작하면 이전 실행을 대체합니다.

매개변수

이름설명
selectionGemFormattedPrograms.SelectProgram이 반환한 토큰입니다. 여전히 현재 선택과 일치해야 합니다.
reportGemFormattedPrograms.DryRun으로 같은 선택에 대해 현재 기능 카탈로그 리비전 기준으로 만든 시험 실행 보고서입니다. 결과가 GemFormattedProgramDryRunOutcome.Reject인 보고서는 거부됩니다.

반환값

실행 토큰과 시작 동작입니다. 호출자가 반환된 객체를 소유하며 해제해야 합니다.

참고

  • ArgumentNullException 예외: selection 또는 report가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 report가 해제되었습니다.
  • PdcommException 예외: selection이 더 이상 현재 선택과 일치하지 않거나, report가 선택, 끝점 또는 현재 기능 카탈로그 리비전과 일치하지 않으면 PdcommStatus.StaleToken입니다. 호스트에서 호출했거나, 조회 서비스가 구성되어 있지 않거나, 선택된 HSMS 세션이 없거나, 보고서 결과가 GemFormattedProgramDryRunOutcome.Reject이거나, 다른 실행이 종료 상태에 도달하지 않았으면 PdcommStatus.InvalidState입니다. 프로그램이 조회 옵션에서 파생된 실행 한도를 초과하면 PdcommStatus.LimitExceeded입니다.

StepExecution

메서드

실행 중인 실행의 다음 명령을 단계 동작으로 요청합니다.

public GemFormattedProgramExecutionAction StepExecution(GemFormattedProgramExecutionToken token)

장비 전용입니다. 단계가 대기 중인 동안 다시 호출하면 같은 대기 동작을 반환합니다. 결과는 GemFormattedPrograms.SubmitActionResult로 보고합니다.

매개변수

이름설명
tokenGemFormattedProgramExecutionStart.Token에서 가져온 실행 토큰입니다.

반환값

명령 인덱스, 코드, 매개변수를 담은 단계 동작입니다. 호출자가 소유하며 해제해야 합니다.

참고

  • ArgumentNullException 예외: token이 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: token이 현재 실행을 식별하지 않으면 PdcommStatus.StaleToken입니다. 호스트에서 호출했거나, 조회 서비스가 구성되어 있지 않거나, 실행이 GemFormattedProgramExecutionState.Running이 아니거나, 모든 명령이 이미 적용되었으면 PdcommStatus.InvalidState입니다.

SubmitActionResult

메서드

대기 중인 시작, 단계 또는 취소 동작에 대한 애플리케이션의 결과를 보고합니다.

public void SubmitActionResult(GemFormattedProgramExecutionActionToken token, GemFormattedProgramActionResult result)

장비 전용입니다. 이미 처리된 동작에 같은 결과를 다시 제출하면 변경 없이 성공합니다.

매개변수

이름설명
token대기 중인 동작에 대해 GemFormattedPrograms.GetActionToken에서 가져온 동작 토큰입니다.
result결과입니다. GemFormattedProgramActionResult에서 설명한 대로 동작 종류에 맞아야 합니다.

참고

  • ArgumentNullException 예외: token이 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: result가 정의된 값이 아니거나 동작 종류에 맞지 않으면 PdcommStatus.InvalidArgument입니다. token이 현재 실행의 대기 동작을 식별하지 않거나, 동작이 이미 다른 결과로 처리되었으면 PdcommStatus.StaleToken입니다. 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다.

SubmitCapabilityQuery

메서드

장비에 S7F21(Process Capabilities Request)을 보냅니다.

public HsmsToken SubmitCapabilityQuery()

호스트 전용입니다. S7F22 응답은 GemOutcome.FormattedCapabilityResult인 GemResult로 도착하며, GemResult.GetFormattedProgramCapabilityInfo와 관련 접근자로 읽습니다.

반환값

수락된 요청의 전송 토큰입니다.

참고

  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 장비에서 호출했거나, 서비스가 구성되어 있지 않거나, GEM 통신이 수립되지 않았으면 PdcommStatus.InvalidState입니다. 대기 요청 테이블이나 전송이 가득 찼으면 PdcommStatus.Backpressure입니다. 서비스의 대기 용량을 다 사용했으면 PdcommStatus.LimitExceeded입니다.

SubmitPreparedVerification

메서드

준비된 검증 보고서의 S7F29(Process Program Verification Inquire)를 보냅니다.

public HsmsToken SubmitPreparedVerification(GemResult prepared)

장비 전용입니다. S7F30 응답은 GemOutcome.FormattedVerificationGrantReceived인 GemResult로 도착합니다. PPGNT가 허가(0)이면 끝점이 준비된 S7F27을 스스로 보내며, 그 S7F28 응답은 GemOutcome.FormattedVerificationNegotiationAck로 도착합니다. 다른 PPGNT이면 협상이 끝납니다.

매개변수

이름설명
prepared이 끝점과 세션에서 GemFormattedPrograms.PrepareVerification이 반환한 GemResult입니다.

반환값

수락된 S7F29 요청의 전송 토큰입니다.

참고

  • ArgumentNullException 예외: prepared가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 prepared가 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나, GEM 통신이 수립되지 않았거나, prepared가 협상 결과가 아니면 PdcommStatus.InvalidState입니다. prepared가 다른 끝점이나 세션에 속하거나 수신한 요청이면 PdcommStatus.StaleToken입니다. 대기 요청 테이블이나 전송이 가득 찼으면 PdcommStatus.Backpressure입니다. 대기 용량을 다 사용했거나 보고서를 이미 제출했으면 PdcommStatus.LimitExceeded 같은 다른 상태입니다.

SubmitQuery

메서드

장비에 S7F25(Formatted Process Program Request)를 보냅니다.

public HsmsToken SubmitQuery(SecsItem id)

호스트 전용입니다. S7F26 응답은 GemOutcome.FormattedQueryResult인 GemResult로 도착합니다. 장비가 프로그램을 반환했는지 빈 응답을 반환했는지는 GemResult.GetFormattedProgramQueryInfo로 알 수 있습니다.

매개변수

이름설명
id요청할 프로세스 프로그램 ID(PPID)입니다. 비어 있지 않은 최대 120바이트의 ASCII 아이템 또는 Binary 아이템입니다.

반환값

수락된 요청의 전송 토큰입니다.

참고

  • ArgumentNullException 예외: id가 null입니다.
  • ObjectDisposedException 예외: 끝점 또는 id가 해제되었습니다.
  • PdcommException 예외: 장비에서 호출했거나, 서비스가 구성되어 있지 않거나, GEM 통신이 수립되지 않았으면 PdcommStatus.InvalidState입니다. id가 ASCII 아이템도 Binary 아이템도 아니면 PdcommStatus.InvalidArgument입니다. 대기 요청 테이블이나 전송이 가득 찼으면 PdcommStatus.Backpressure입니다. PPID가 너무 길거나 서비스의 대기 용량을 다 사용했으면 PdcommStatus.LimitExceeded 같은 다른 상태입니다.

SubmitTransfer

메서드

장비에 S7F23(Formatted Process Program Send)을 보냅니다.

public HsmsToken SubmitTransfer(GemFormattedProgramPayload payload)

호스트 전용입니다. 입력은 호출이 반환되기 전에 복사됩니다. S7F24 응답은 GemOutcome.FormattedTransferAck인 GemResult로 도착하며, ACKC7은 GemResult.GetFormattedProgramTransferInfo가 반환하는 GemFormattedProgramTransferInfo.Acknowledgement에 들어 있습니다.

매개변수

이름설명
payload보낼 프로그램입니다. 각 필드의 규칙은 GemFormattedProgramPayload에서 설명합니다.

반환값

수락된 요청의 전송 토큰입니다.

참고

  • ArgumentNullException 예외: payload, 그 ID, 모델, 소프트웨어 리비전 또는 명령 목록, 또는 명령, 그 코드, 매개변수 목록이나 매개변수 중 하나가 null입니다.
  • ArgumentException 예외: 문자열에 잘못된 UTF-16 서로게이트 시퀀스가 있습니다.
  • ObjectDisposedException 예외: 끝점 또는 payload의 아이템이 해제되었습니다.
  • PdcommException 예외: 장비에서 호출했거나, 서비스가 구성되어 있지 않거나, GEM 통신이 수립되지 않았으면 PdcommStatus.InvalidState입니다. payload의 필드가 잘못되었으면 PdcommStatus.InvalidArgument입니다. 대기 요청 테이블이나 전송이 가득 찼으면 PdcommStatus.Backpressure입니다. 프로그램이 GemFormattedProgramTransferOptions를 초과하거나 아이템이나 메시지가 아이템 한도를 초과하면 PdcommStatus.LimitExceeded입니다.

SubmitVerificationReport

메서드

호스트에 S7F27(Process Program Verification Send) 보고서를 보냅니다.

public HsmsToken SubmitVerificationReport(SecsItem id, IReadOnlyList<GemFormattedProgramIssue> issues)

장비 전용입니다. 입력은 S7F27이 큐에 들어가기 전에 복사됩니다. S7F28 응답은 GemOutcome.FormattedVerificationReportAck인 GemResult로 도착합니다.

매개변수

이름설명
id프로세스 프로그램 ID(PPID)입니다. 비어 있지 않은 최대 120바이트의 ASCII 아이템 또는 Binary 아이템입니다.
issues전송 순서대로 나열한 검증 문제입니다. 빈 목록을 전달하면 빈 문제 목록을 보냅니다.

반환값

수락된 요청의 전송 토큰입니다.

참고

  • ArgumentNullException 예외: id, issues, 문제 또는 그 텍스트가 null입니다.
  • ArgumentException 예외: 문제 텍스트에 잘못된 UTF-16 서로게이트 시퀀스가 있습니다.
  • ObjectDisposedException 예외: 끝점 또는 id가 해제되었습니다.
  • PdcommException 예외: 호스트에서 호출했거나, 서비스가 구성되어 있지 않거나, GEM 통신이 수립되지 않았으면 PdcommStatus.InvalidState입니다. PPID나 문제가 잘못되었거나 문제가 GemFormattedProgramOptions를 초과하면 PdcommStatus.InvalidArgument입니다. 대기 요청 테이블이나 전송이 가득 찼으면 PdcommStatus.Backpressure입니다. 서비스의 대기 용량을 다 사용했거나 메시지가 아이템 한도를 초과하면 PdcommStatus.LimitExceeded입니다.

SubmitVerificationRequest

메서드

장비에 S7F31(Verification Request Send)을 보냅니다.

public HsmsToken SubmitVerificationRequest(GemFormattedProgramPayload payload)

호스트 전용입니다. 입력은 호출이 반환되기 전에 복사됩니다. S7F32 응답은 GemOutcome.FormattedVerificationRequestAck인 GemResult로 도착하며, ACKC7은 GemFormattedProgramVerificationRequestInfo.Acknowledgement에 들어 있습니다.

매개변수

이름설명
payload검증할 프로그램입니다. 각 필드의 규칙은 GemFormattedProgramPayload에서 설명합니다.

반환값

수락된 요청의 전송 토큰입니다.

참고

  • ArgumentNullException 예외: payload, 그 ID, 모델, 소프트웨어 리비전 또는 명령 목록, 또는 명령, 그 코드, 매개변수 목록이나 매개변수 중 하나가 null입니다.
  • ArgumentException 예외: 문자열에 잘못된 UTF-16 서로게이트 시퀀스가 있습니다.
  • ObjectDisposedException 예외: 끝점 또는 payload의 아이템이 해제되었습니다.
  • PdcommException 예외: 장비에서 호출했거나, 서비스가 구성되어 있지 않거나, GEM 통신이 수립되지 않았으면 PdcommStatus.InvalidState입니다. payload의 필드가 잘못되었으면 PdcommStatus.InvalidArgument입니다. 대기 요청 테이블이나 전송이 가득 찼으면 PdcommStatus.Backpressure입니다. 프로그램이 GemFormattedProgramVerificationRequestOptions를 초과하거나 아이템이나 메시지가 아이템 한도를 초과하면 PdcommStatus.LimitExceeded입니다.

ValidateSelection

메서드

선택이 실행에 여전히 유효한지 검사하고 선택된 프로그램의 스냅샷을 반환합니다.

public GemFormattedProgramSelectionSnapshot ValidateSelection(GemFormattedProgramSelectionToken token)

장비 전용입니다. 호출이 PdcommStatus.StaleToken으로 실패하면 예외의 Exception.Data에 네이티브 무효화 이유가 "StaleReason" 키의 UInt32 값으로 들어 있습니다. 1은 저장소 항목이 삭제됨, 2는 항목이 바뀜, 3은 연결 세대가 바뀜, 4는 연결이 끊김, 5는 선택이 해제됨, 6은 token이 현재 선택과 일치하지 않음입니다.

매개변수

이름설명
tokenGemFormattedPrograms.SelectProgram에서 가져온 현재 선택의 토큰입니다.

반환값

준비된 선택의 스냅샷입니다. 호출자가 소유하며 해제해야 합니다.

참고

  • ArgumentNullException 예외: token이 null입니다.
  • ObjectDisposedException 예외: 끝점이 해제되었습니다.
  • PdcommException 예외: 선택이 지워졌거나, token이 선택과 일치하지 않거나, 선택이 무효화되었으면 PdcommStatus.StaleToken이고, 호스트에서 호출했거나 조회 서비스가 구성되어 있지 않으면 PdcommStatus.InvalidState입니다.