/* START FUNCTION DESCRIPTION ******************************************** zcl_comm_restart_device <zcl_commissioning.c> SYNTAX: int zcl_comm_restart_device( wpan_envelope_t FAR *envelope, const zcl_comm_restart_device_cmd_t *parameters) DESCRIPTION: Send a "Restart Device" command to the ZCL Commissioning Cluster. PARAMETER1: envelope - Partial envelope used to send the request. Caller must set dev, ieee_address, network_address, profile_id, source_endpoint, dest_endpoint and (optionally) options. On return, payload and length are cleared, and cluster_id is set to ZCL_CLUST_COMMISSIONING. If source_endpoint is 0, function will search the endpoint table for a Commissioning Client Cluster and set the envelope's source_endpoint and profile_id. PARAMETER2: parameters - Parameters for the Restart Device command or NULL for default settings (save changes and restart without delay/jitter). RETURNS: 0 - request sent -EINVAL - couldn't find source endpoint in endpoint table, or some other error in parameter passed to function !0 error trying to send request **************************************************************************/ int zcl_comm_restart_device( wpan_envelope_t FAR *envelope, const zcl_comm_restart_device_cmd_t *parameters) { struct { zcl_header_nomfg_t header; zcl_comm_restart_device_cmd_t parameters; } request; int retval; retval = _zcl_comm_command_build( envelope, &request.header); if (retval != 0) { return retval; } request.header.command = ZCL_COMM_CMD_RESTART_DEVICE; if (parameters == NULL) { memset( &request.parameters, 0, sizeof(request.parameters)); } else { request.parameters = *parameters; } envelope->length = sizeof request; return _zcl_comm_command_send( envelope); }
/* START FUNCTION DESCRIPTION ******************************************** zcl_comm_reset_parameters <zcl_commissioning.c> SYNTAX: int zcl_comm_reset_parameters( wpan_envelope_t FAR *envelope, const zcl_comm_reset_startup_param_t *parameters) DESCRIPTION: Send a "Reset Startup Parameters" command to the ZCL Commissioning Cluster. PARAMETER1: envelope - Partial envelope used to send the request. Caller must set dev, ieee_address, network_address, profile_id, source_endpoint, dest_endpoint and (optionally) options. On return, payload and length are cleared, and cluster_id is set to ZCL_CLUST_COMMISSIONING. If source_endpoint is 0, function will search the endpoint table for a Commissioning Client Cluster and set the envelope's source_endpoint and profile_id. PARAMETER2: parameters - Parameters for the Reset Startup Parameters command or NULL for default settings (reset current parameters only). RETURNS: 0 - request sent -EINVAL - couldn't find source endpoint in endpoint table, or some other error in parameter passed to function !0 error trying to send request **************************************************************************/ int zcl_comm_reset_parameters( wpan_envelope_t FAR *envelope, const zcl_comm_reset_startup_param_t *parameters) { struct { zcl_header_nomfg_t header; zcl_comm_reset_startup_param_t parameters; } request; int retval; retval = _zcl_comm_command_build( envelope, &request.header); if (retval != 0) { return retval; } request.header.command = ZCL_COMM_CMD_RESET_STARTUP_PARAM; if (parameters == NULL) { request.parameters.options = ZCL_COMM_RESET_OPT_CURRENT; request.parameters.index = 0; } else { request.parameters = *parameters; } envelope->length = sizeof request; return _zcl_comm_command_send( envelope); }
@retval 0 request sent @retval -EINVAL couldn't find source endpoint in endpoint table, or some other error in parameter passed to function @retval !0 error trying to send request */ int zcl_comm_restart_device( wpan_envelope_t FAR *envelope, const zcl_comm_restart_device_cmd_t *parameters) { PACKED_STRUCT { zcl_header_nomfg_t header; zcl_comm_restart_device_cmd_t parameters; } request; int retval; retval = _zcl_comm_command_build( envelope, &request.header); if (retval != 0) { return retval; } request.header.command = ZCL_COMM_CMD_RESTART_DEVICE; if (parameters == NULL) { memset( &request.parameters, 0, sizeof(request.parameters)); } else { request.parameters = *parameters; }