pdcomm_gem_equipment_configure_report_bindings
함수
장비의 명시적 보고서 바인딩 저장소를 설치하거나 교체합니다.
PdcommStatus pdcomm_gem_equipment_configure_report_bindings(PdcommTcpEndpoint *endpoint, const PdcommGemBindingOptions *options, const PdcommGemReportBinding *bindings, size_t count)STATUS 바인딩과 DATA 바인딩은 source_id를 사용하며 constant_id가 NULL이어야 합니다. CONSTANT 바인딩은 source_id가 0이어야 하고 스칼라 ASCII 또는 정수 상수 ID가 필요합니다. 서로 다른 VID가 같은 출처를 가리킬 수 있지만, VID가 중복되면 실패합니다. 모든 출처가 존재해야 하고, 기존 보고서가 쓰는 모든 VID가 바인딩되어야 하며, 모든 이벤트 디렉터리 VID는 계속 데이터 변수에 바인딩되어 있어야 합니다. count가 0이면 상태 변수로 돌아가는 대체 해석이 없는 명시적 빈 저장소를 설치합니다. 기존 해석 방식으로 돌아가려면 pdcomm_gem_equipment_clear_report_bindings()를 사용합니다.
매개변수
| 이름 | 설명 |
|---|---|
endpoint | 장비 엔드포인트입니다. TCP 엔드포인트가 Stopped 상태여야 합니다. |
options | 저장소 한도입니다. version은 #PDCOMM_GEM_BINDING_OPTIONS_VERSION, reserved는 0이어야 합니다. |
bindings | count개의 바인딩 배열입니다. count가 0이면 NULL일 수 있습니다. |
count | 바인딩 개수입니다. 최대 options->max_bindings입니다. |
반환값
성공하면 #PDCOMM_OK를 반환합니다. endpoint 또는 options가 NULL이거나, 옵션이 유효하지 않거나, 바인딩의 종류를 알 수 없거나 출처 필드가 유효하지 않거나, VID가 중복되거나, 출처가 없거나, 기존 보고서 또는 디렉터리 VID의 바인딩이 사라지게 되면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 바인딩 또는 식별자 한도를 넘으면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 준비된 TCP 이벤트(staged event)가 있으면 #PDCOMM_BACKPRESSURE를 반환합니다. 엔드포인트가 Stopped 상태가 아니거나, 장비가 아니거나, GEM 통신이 활성 상태이면 #PDCOMM_INVALID_STATE를 반환합니다. 그 밖에 #PDCOMM_ALLOCATION_FAILED 또는 #PDCOMM_POISONED를 반환합니다.