pdcomm_gem_equipment_configure_event_directory
함수
장비의 이벤트 디렉터리 전체를 설치하거나 교체합니다.
PdcommStatus pdcomm_gem_equipment_configure_event_directory(PdcommTcpEndpoint *endpoint, const PdcommGemDirectoryOptions *options, const PdcommGemEventDefinition *definitions, size_t count)디렉터리의 이벤트 ID는 보고서 저장소의 수집 이벤트(collection event)와 정확히 일치해야 하며, 모든 VID는 기존 데이터 변수에 명시적으로 바인딩되어 있어야 합니다. 이벤트 ID가 중복되거나 엔트리 하나 안에서 VID가 중복되면 유효하지 않습니다. 실패하면 이전 디렉터리와 카운터가 유지됩니다.
매개변수
| 이름 | 설명 |
|---|---|
endpoint | 장비 엔드포인트입니다. TCP 엔드포인트가 Stopped 상태여야 합니다. |
options | 디렉터리 한도입니다. version은 #PDCOMM_GEM_DIRECTORY_OPTIONS_VERSION, reserved는 0이어야 합니다. |
definitions | count개의 엔트리 배열입니다. count가 0이면 NULL일 수 있으며, 이때 빈 디렉터리를 구성합니다. |
count | 엔트리 개수입니다. 최대 options->max_events입니다. |
반환값
성공하면 #PDCOMM_OK를 반환합니다. endpoint 또는 options가 NULL이거나, 옵션이 유효하지 않거나, 길이가 0이 아닌데 포인터가 NULL이거나, 이름이 ASCII가 아니거나, ID가 중복되거나, 이벤트 ID가 보고서 저장소와 일치하지 않거나, VID가 데이터 변수에 바인딩되어 있지 않으면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 엔트리, VID, 이름 한도를 넘으면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 준비된 TCP 이벤트(staged event)가 있으면 #PDCOMM_BACKPRESSURE를 반환합니다. 엔드포인트가 Stopped 상태가 아니거나, 장비가 아니거나, GEM 통신이 활성 상태이면 #PDCOMM_INVALID_STATE를 반환합니다. 그 밖에 #PDCOMM_ALLOCATION_FAILED 또는 #PDCOMM_POISONED를 반환합니다.