pdcomm_gem_formatted_program_verification_respond
Function
Answers a received S7F29 inquiry with S7F30.
PdcommStatus pdcomm_gem_formatted_program_verification_respond(PdcommTcpEndpoint *endpoint, PdcommGemResult *received, uint8_t pp_gnt)Host only. On success the result's outcome becomes #PDCOMM_GEM_REPLIED, reply_sent becomes 1, the state becomes RESPONDED, and the negotiation terminal becomes GRANTED (PPGNT 0) or DENIED. Calling again after success with the same pp_gnt returns #PDCOMM_OK without sending; another code returns #PDCOMM_STALE_TOKEN. When the send fails, the reply stays staged: call this function again with the same pp_gnt or call pdcomm_gem_formatted_program_verification_retry_response().
Parameters
| Name | Description |
|---|---|
endpoint | Communicating GEM host endpoint that produced received. |
received | Result with outcome #PDCOMM_GEM_FORMATTED_PROGRAM_VERIFICATION_NEGOTIATION_RECEIVED. |
pp_gnt | PPGNT grant code from 0 to 63: 0 grants permission; nonzero codes deny it with the SEMI E5 reason (for example 1 already have, 2 no space, 4 busy, 5 will not accept). |
Returns
#PDCOMM_OK when S7F30 was queued or had already been sent with pp_gnt; #PDCOMM_INVALID_ARGUMENT when endpoint or received is NULL or pp_gnt is above 63; #PDCOMM_INVALID_STATE when the endpoint is not a communicating GEM host, the service is not configured, or received is not a negotiation result; #PDCOMM_STALE_TOKEN when received is not a host-side inquiry of this endpoint and session, or the inquiry already finished; #PDCOMM_STALE_TOKEN also when a different pp_gnt was already staged or sent for this inquiry; #PDCOMM_BACKPRESSURE when the endpoint holds a staged TCP event or the send queue is full (retry later); other TCP statuses such as #PDCOMM_IO_ERROR; #PDCOMM_POISONED.