pdcomm_gem_equipment_report_at
함수
로컬 보고서 저장소의 보고서 정의 하나를 위치로 지정해 복사합니다.
PdcommStatus pdcomm_gem_equipment_report_at(PdcommTcpEndpoint *endpoint, size_t index, uint32_t *out_id, uint32_t *variable_ids, size_t capacity, size_t *required)보고서는 저장된 순서대로 0부터 report_count - 1까지 열거됩니다. *out_id와 *required는 다른 어떤 검사보다 먼저 0으로 설정됩니다. 인덱스가 유효하면 배열이 너무 짧아도 *out_id는 RPTID를, *required는 VID 개수를 받습니다. 짧은 배열은 변경하지 않습니다.
매개변수
| 이름 | 설명 |
|---|---|
endpoint | 보고서 저장소가 있는 장비 엔드포인트입니다. |
index | 0부터 시작하는 보고서 위치입니다. |
out_id | RPTID를 받습니다(실패하면 0). NULL이 아니어야 합니다. |
variable_ids | VID를 받을 대상 버퍼입니다. capacity가 0일 때만 NULL일 수 있으며, 이때는 개수를 조회합니다. |
capacity | variable_ids에 있는 uint32_t 요소의 개수입니다. |
required | VID 개수를 받습니다(실패하면 0). NULL이 아니어야 합니다. |
반환값
모든 VID를 복사하면 #PDCOMM_OK를 반환합니다. capacity가 *required보다 작으면 #PDCOMM_BUFFER_TOO_SMALL을 반환합니다. endpoint, out_id 또는 required가 NULL이거나, capacity가 0이 아닌데 variable_ids가 NULL이거나, 출력 영역이 겹치면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. index가 보고서 개수보다 작지 않으면 #PDCOMM_OUT_OF_RANGE를 반환합니다. 그 밖에 #PDCOMM_BACKPRESSURE, #PDCOMM_INVALID_STATE(장비가 아니거나 보고서 저장소가 없음), #PDCOMM_POISONED를 반환합니다.
참고
- 출력은 유효하고 정렬되어 있어야 하며 서로 겹치면 안 됩니다.