pdcomm_gem_formatted_program_verification_request_respond
함수
수신한 S7F31에 대해 S7F32 확인 응답을 보냅니다.
PdcommStatus pdcomm_gem_formatted_program_verification_request_respond(PdcommTcpEndpoint *endpoint, PdcommGemResult *result, uint8_t acknowledgement)장비 전용입니다. 성공하면 결과 유형이 #PDCOMM_GEM_REPLIED가 되고 reply_sent가 1이 됩니다. 큐에 넣지 못하면 준비된 응답을 유지하므로, #PDCOMM_BACKPRESSURE를 반환한 호출은 같은 코드로 다시 할 수 있습니다. 응답을 보낸 뒤 같은 코드로 다시 호출하면 다시 보내지 않고 #PDCOMM_OK를 반환하며, 다른 코드로 호출하면 #PDCOMM_STALE_TOKEN을 반환합니다.
매개변수
| 이름 | 설명 |
|---|---|
endpoint | GEM COMMUNICATING 상태인 장비 엔드포인트입니다. |
result | 결과 유형이 #PDCOMM_GEM_FORMATTED_PROGRAM_VERIFICATION_REQUEST_RECEIVED인 결과입니다. |
acknowledgement | 0부터 7까지의 ACKC7 코드입니다. |
반환값
S7F32를 큐에 넣었거나 acknowledgement로 이미 보냈으면 #PDCOMM_OK를 반환합니다. endpoint 또는 result가 NULL이거나 acknowledgement가 7보다 크면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 엔드포인트가 COMMUNICATING 상태의 장비가 아니거나, 서비스가 구성되지 않았거나, result가 검증 요청 결과가 아니면 #PDCOMM_INVALID_STATE를 반환합니다. result가 수신한 S7F31이 아니거나, 다른 엔드포인트, 이전 HSMS 세션 또는 이전 선택(selection)에서 왔거나, 이전 시도에서 다른 코드를 준비했거나 보냈으면 #PDCOMM_STALE_TOKEN을 반환합니다. 준비된 TCP 이벤트를 먼저 비워야 하거나 TCP 전송 큐가 가득 찼으면 #PDCOMM_BACKPRESSURE를 반환합니다(나중에 재시도합니다). 응답을 큐에 넣을 수 없으면 다른 TCP 상태 코드를 반환합니다. 엔드포인트가 오염(poisoned) 상태이면 #PDCOMM_POISONED를 반환합니다.
참고
- 스레드 안전성:
endpoint에 대한 다른 모든 호출과 직렬화하며, 이 호출 중에는 다른 스레드에서result를 읽지 않습니다.