Пример #1
0
/* 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);
}
Пример #2
0
/* 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;
	}