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

pdcomm_gem_formatted_program_verification_request_respond

함수

수신한 S7F31에 대해 S7F32 확인 응답을 보냅니다.

PdcommStatus pdcomm_gem_formatted_program_verification_request_respond(PdcommTcpEndpoint *endpoint, PdcommGemResult *result, uint8_t acknowledgement)

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

장비 전용입니다. 성공하면 결과 유형이 #PDCOMM_GEM_REPLIED가 되고 reply_sent가 1이 됩니다. 큐에 넣지 못하면 준비된 응답을 유지하므로, #PDCOMM_BACKPRESSURE를 반환한 호출은 같은 코드로 다시 할 수 있습니다. 응답을 보낸 뒤 같은 코드로 다시 호출하면 다시 보내지 않고 #PDCOMM_OK를 반환하며, 다른 코드로 호출하면 #PDCOMM_STALE_TOKEN을 반환합니다.

매개변수

이름설명
endpointGEM COMMUNICATING 상태인 장비 엔드포인트입니다.
result결과 유형이 #PDCOMM_GEM_FORMATTED_PROGRAM_VERIFICATION_REQUEST_RECEIVED인 결과입니다.
acknowledgement0부터 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를 읽지 않습니다.