pdcomm_gem_host_enhanced_remote_command
Function
Sends S2F49 Enhanced Remote Command (W=1) from a Host.
PdcommStatus pdcomm_gem_host_enhanced_remote_command(PdcommTcpEndpoint *endpoint, uint32_t data_id, const PdcommSecsItem *object, const PdcommSecsItem *name, const PdcommGemCommandParameter *parameters, size_t count, PdcommTcpToken *out_token)The body is L[DATAID, OBJSPEC, RCMD, L[L[CPNAME, CEPVAL], ...]], with DATAID sent as U4. The request uses one of the 32 native GEM pending slots. The object, name, and parameter items are copied into a bounded wire snapshot before the call returns. Success means the request was queued, not that the command ran: pdcomm_gem_handle_event() later yields a RESPONSE result with outcome #PDCOMM_GEM_ENHANCED_COMMAND_ACK.
Parameters
| Name | Description |
|---|---|
endpoint | Endpoint with a configured GEM Host. |
data_id | DATAID to send. |
object | OBJSPEC: an ASCII item. |
name | RCMD item: nonempty ASCII or an integer scalar from -128 to 255. |
parameters | Array of count CPNAME/CEPVAL pairs. May be NULL when count is 0. |
count | Number of parameters; must be less than the Host item_count limit. |
out_token | Receives the transaction token; zero after every failure. |
Returns
#PDCOMM_OK when the request was queued (queue acceptance only); #PDCOMM_INVALID_ARGUMENT when endpoint, object, name, or out_token is NULL, parameters is NULL with a nonzero count, a pair contains a NULL item, object is not an ASCII item, a name is not a valid RCMD or CPNAME, or a value contains a JIS-8 item; #PDCOMM_LIMIT_EXCEEDED when a value or the message would exceed the Host item limits; #PDCOMM_INVALID_STATE when the endpoint has no GEM Host, communication is not COMMUNICATING, or the HSMS session is not selected; #PDCOMM_BACKPRESSURE when a TCP event is staged, all 32 pending slots are busy, or the TCP queue is full or stopping; #PDCOMM_ALLOCATION_FAILED; #PDCOMM_POISONED when the endpoint is poisoned or a panic was contained; or another TCP submission status, as for pdcomm_tcp_request().