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

pdcomm_gem_formatted_program_store_put

함수

로컬 저장소에 정형 공정 프로그램(formatted process program)을 추가하거나 교체합니다.

PdcommStatus pdcomm_gem_formatted_program_store_put(PdcommTcpEndpoint *endpoint, const PdcommSecsItem *id, const char *model, size_t model_length, const char *software_revision, size_t software_revision_length, const PdcommGemFormattedProgramStoreCommand *commands, size_t command_count, uint32_t action)

선언 위치: #include <pdcomm_gem_formatted_program_store.h>

장비 전용입니다. 프로그램을 검증하고 복사한 뒤 action에 따라 저장합니다. 기존 엔트리와 같은 내용을 저장하면 저장소 리비전은 바뀌지 않습니다. 저장소 한도와 명령 및 매개변수 한도는 pdcomm_gem_configure_formatted_program_queries()에서 정합니다.

매개변수

이름설명
endpoint정형 프로그램 조회 서비스가 구성된 장비 엔드포인트입니다.
idPPID: 최대 120바이트이며 비어 있지 않은 ASCII 또는 Binary 항목입니다.
modelMDLN 바이트: 최대 20바이트의 ASCII입니다. model_length가 0이면 NULL일 수 있습니다.
model_lengthmodel의 길이(바이트)입니다.
software_revisionSOFTREV 바이트: 최대 20바이트의 ASCII입니다. software_revision_length가 0이면 NULL일 수 있습니다.
software_revision_lengthsoftware_revision의 길이(바이트)입니다.
commandscommand_count개의 공정 명령 배열입니다. command_count가 0이면 NULL일 수 있습니다.
command_count명령 개수입니다.
action#PDCOMM_GEM_FORMATTED_PROGRAM_CREATE_ONLY, #PDCOMM_GEM_FORMATTED_PROGRAM_REPLACE_ONLY, #PDCOMM_GEM_FORMATTED_PROGRAM_UPSERT 중 하나입니다.

반환값

저장소에 프로그램이 들어 있으면 #PDCOMM_OK를 반환합니다. endpoint 또는 id가 NULL이거나, 필요한 배열 또는 항목 포인터가 NULL이거나, action이 저장(put) 동작이 아니거나, PPID, MDLN, SOFTREV 또는 CCODE가 유효하지 않으면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 엔드포인트가 장비가 아니거나, 조회 서비스가 구성되지 않았거나, action이 CREATE_ONLY인데 PPID가 있거나, action이 REPLACE_ONLY인데 PPID가 없거나, 전송 응답이 저장소를 갱신하는 중이면 #PDCOMM_INVALID_STATE를 반환합니다. 프로그램이 조회 서비스의 명령 또는 매개변수 한도를 넘거나, 항목이나 인코딩한 프로그램이 엔드포인트의 SECS-II 한도를 넘거나, 저장소 한도를 넘게 되거나, 리비전 카운터가 소진되면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 준비된 TCP 이벤트(staged event)를 먼저 비워야 하면 #PDCOMM_BACKPRESSURE를 반환합니다. #PDCOMM_ALLOCATION_FAILED를 반환할 수도 있습니다. 엔드포인트가 오염(poisoned) 상태이면 #PDCOMM_POISONED를 반환합니다.

참고

  • 소유권: 모든 입력은 호출자가 계속 소유합니다.
  • 스레드 안전성: endpoint에 대한 다른 모든 호출과 직렬화합니다.