Header for the service function module.
License#
Copyright 2021 Silicon Laboratories Inc. www.silabs.com
The licensor of this software is Silicon Laboratories Inc. Your use of this software is governed by the terms of Silicon Labs Master Software License Agreement (MSLA) available at www.silabs.com/about-us/legal/master-software-license-agreement. This software is distributed to you in Source Code format and is governed by the sections of the MSLA applicable to Source Code.
/***************************************************************************/
#ifndef __SL_SERVICE_FUNCTION__
#define __SL_SERVICE_FUNCTION__ 1
#include <stdint.h>
#include <stdbool.h>
#if !defined(DOXYGEN_SHOULD_SKIP_THIS)
#define NOT_MFG_SPECIFIC 0xFFFF
#define SL_CLUSTER_SERVICE_SIDE_SERVER ZCL_DIRECTION_CLIENT_TO_SERVER
#define SL_CLUSTER_SERVICE_SIDE_CLIENT ZCL_DIRECTION_SERVER_TO_CLIENT
#endif // DOXYGEN_SHOULD_SKIP_THIS
// ========== Types.
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum sl_service_opcode_t
#else
typedef uint8_t sl_service_opcode_t;
enum
#endif
{
SL_SERVICE_FUNCTION_TYPE_ZCL_COMMAND = 0x00,
};
#if !defined(DOXYGEN_SHOULD_SKIP_THIS)
typedef uint32_t sl_service_key_t;
#endif // DOXYGEN_SHOULD_SKIP_THIS
typedef union _sl_service_function_context_t {
void *data;
} sl_service_function_context_t;
typedef uint32_t (*sl_service_function_t)(sl_service_opcode_t, sl_service_function_context_t*);
#if !defined(DOXYGEN_SHOULD_SKIP_THIS)
typedef struct {
sl_service_opcode_t type;
sl_service_key_t key;
sl_service_key_t subkey;
sl_service_function_t function;
} sl_service_function_entry_t;
typedef struct _sl_service_function_block_t {
uint16_t count;
sl_service_function_entry_t *entries;
struct _sl_service_function_block_t *next;
} sl_service_function_block_t;
void sl_service_function_register_block(sl_service_function_block_t *block);
uint16_t sl_service_function_entry_count(void);
sl_service_function_entry_t *sl_service_function_get_first_entry(void);
sl_service_function_entry_t *sl_service_function_get_next_entry(sl_service_function_entry_t *current_entry);
#endif // DOXYGEN_SHOULD_SKIP_THIS
#endif // __SL_SERVICE_FUNCTION__
Modules#
_sl_service_function_context_t
Enumerations#
Operation code: provide the context in which the service function is being called.
Typedefs#
Context that is passed to service function. Depends on actual op code which actual part is used.
Service function signature.
Enumeration Documentation#
sl_service_opcode_t#
sl_service_opcode_t
Operation code: provide the context in which the service function is being called.
Enumerator | |
---|---|
SL_SERVICE_FUNCTION_TYPE_ZCL_COMMAND |
38
of file app/framework/service-function/sl_service_function.h
Typedef Documentation#
sl_service_function_context_t#
typedef union _sl_service_function_context_t sl_service_function_context_t
Context that is passed to service function. Depends on actual op code which actual part is used.
59
of file app/framework/service-function/sl_service_function.h
sl_service_function_t#
typedef uint32_t(* sl_service_function_t) (sl_service_opcode_t, sl_service_function_context_t *) )(sl_service_opcode_t, sl_service_function_context_t *)
Service function signature.
63
of file app/framework/service-function/sl_service_function.h