nRF5 SDK for Mesh v5.0.0
scene_setup_server.h
1 /* Copyright (c) 2010 - 2020, Nordic Semiconductor ASA
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification,
5  * are permitted provided that the following conditions are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright notice, this
8  * list of conditions and the following disclaimer.
9  *
10  * 2. Redistributions in binary form, except as embedded into a Nordic
11  * Semiconductor ASA integrated circuit in a product or a software update for
12  * such product, must reproduce the above copyright notice, this list of
13  * conditions and the following disclaimer in the documentation and/or other
14  * materials provided with the distribution.
15  *
16  * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
17  * contributors may be used to endorse or promote products derived from this
18  * software without specific prior written permission.
19  *
20  * 4. This software, with or without modification, must only be used with a
21  * Nordic Semiconductor ASA integrated circuit.
22  *
23  * 5. Any software provided in binary form under this license must not be reverse
24  * engineered, decompiled, modified and/or disassembled.
25  *
26  * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
27  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
28  * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
29  * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
30  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
32  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
35  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  */
37 
38 #ifndef SCENE_SETUP_SERVER_H__
39 #define SCENE_SETUP_SERVER_H__
40 
41 #include <stdint.h>
42 #include "scene_common.h"
43 #include "scene_messages.h"
44 #include "generic_dtt_server.h"
45 
54 #define SCENE_SERVER_MODEL_ID 0x1203
55 
57 #define SCENE_SETUP_SERVER_MODEL_ID 0x1204
58 
59 /* Forward declaration */
60 typedef struct __scene_server_t scene_server_t;
61 
62 /* Forward declaration */
63 typedef struct __scene_setup_server_t scene_setup_server_t;
64 
75 typedef void (*scene_state_store_cb_t)(const scene_setup_server_t * p_self,
76  const access_message_rx_meta_t * p_meta,
77  const scene_store_params_t * p_in,
79 
92 typedef void (*scene_state_delete_cb_t)(const scene_setup_server_t * p_self,
93  const access_message_rx_meta_t * p_meta,
94  const scene_delete_params_t * p_in,
96 
104 typedef void (*scene_state_get_cb_t)(const scene_setup_server_t * p_self,
105  const access_message_rx_meta_t * p_meta,
106  scene_status_params_t * p_out);
107 
115 typedef void (*scene_state_register_get_cb_t)(const scene_setup_server_t * p_self,
116  const access_message_rx_meta_t * p_meta,
118 
131 typedef void (*scene_state_recall_cb_t)(const scene_setup_server_t * p_self,
132  const access_message_rx_meta_t * p_meta,
133  const scene_recall_params_t * p_in,
134  const model_transition_t * p_in_transition,
135  scene_status_params_t * p_out);
136 
140 typedef struct scene_setup_server
141 {
148 
152 typedef struct
153 {
160 
161  /* There are no callbacks for the state for this model, these
162  * callbacks are defined for the setup server. */
164 
167 {
170 
173 
176 };
177 
198 uint32_t scene_server_status_publish(const scene_server_t * p_server,
199  const scene_status_params_t * p_params);
200 
204 typedef struct
205 {
209 
213 typedef struct
214 {
216  uint8_t element_index;
223 
227 
229 {
232 
234  scene_server_t scene_srv;
235 
237  generic_dtt_server_t * p_gen_dtt_server;
238 
241 
243  uint8_t state_handle;
244 };
245 
267 uint32_t scene_setup_server_init(scene_setup_server_t * p_s_server, uint8_t element_index);
268 
270 #endif /* SCENE_SETUP_SERVER_H__ */
uint8_t state_handle
State handle for this instance.
uint16_t access_model_handle_t
Access layer handle type.
Definition: access.h:162
Parameters for the Scene Register Status message.
Definition: scene_common.h:126
generic_dtt_server_t * p_gen_dtt_server
Default transition time server context pointer.
void(* scene_state_delete_cb_t)(const scene_setup_server_t *p_self, const access_message_rx_meta_t *p_meta, const scene_delete_params_t *p_in, scene_register_status_params_t *p_out)
Callback type for Scene Delete/Delete Unacknowledged message.
Structure for tracking TID expiry for the models.
Definition: model_common.h:169
tid_tracker_t tid_tracker
Tid tracker structure.
Parameters for the Scene Recall message.
Definition: scene_common.h:110
const scene_setup_server_callbacks_t * p_callbacks
Callback list.
User provided settings and callbacks for the model instance.
Parameters for the Scene Delete message.
Definition: scene_common.h:134
scene_state_register_get_cb_t register_get_cb
Callback for the Scene Register Get message.
scene_state_get_cb_t get_cb
Callback for the Scene Get message.
Transaction callbacks for the Scene states.
nrf_mesh_transmic_size_t transmic_size
TransMIC size used by the outgoing server messages.
uint32_t scene_server_status_publish(const scene_server_t *p_server, const scene_status_params_t *p_params)
Publishes unsolicited Status message.
scene_server_t scene_srv
Parent model context for - Scene server.
bool force_segmented
If server should force outgoing messages as segmented messages.
void(* scene_state_get_cb_t)(const scene_setup_server_t *p_self, const access_message_rx_meta_t *p_meta, scene_status_params_t *p_out)
Callback type for Scene Get message.
Parameters for the Scene Store message.
Definition: scene_common.h:103
bool force_segmented
If server should force outgoing messages as segmented messages.
access_model_handle_t model_handle
Model handle assigned to this instance.
uint8_t element_index
Element Index.
void(* scene_state_store_cb_t)(const scene_setup_server_t *p_self, const access_message_rx_meta_t *p_meta, const scene_store_params_t *p_in, scene_register_status_params_t *p_out)
Callback type for Scene Store/Store Unacknowledged message.
Metadata for received messages.
Definition: access.h:196
scene_state_store_cb_t store_cb
Callback for the Scene Store message.
nrf_mesh_transmic_size_t transmic_size
TransMIC size used by the outgoing server messages.
void(* scene_state_register_get_cb_t)(const scene_setup_server_t *p_self, const access_message_rx_meta_t *p_meta, scene_register_status_params_t *p_out)
Callback type for Scene Register Get message.
Scene server callback list.
nrf_mesh_transmic_size_t
Message MIC size selection.
Definition: nrf_mesh.h:385
scene_setup_server_state_cbs_t scene_cbs
Transaction callbacks for the Scene states.
scene_state_delete_cb_t delete_cb
Callback for the Scene Delete message.
void(* scene_state_recall_cb_t)(const scene_setup_server_t *p_self, const access_message_rx_meta_t *p_meta, const scene_recall_params_t *p_in, const model_transition_t *p_in_transition, scene_status_params_t *p_out)
Callback type for Scene Recall/Recall Unacknowledged message.
scene_setup_server_settings_t settings
Model settings and callbacks for this instance.
scene_state_recall_cb_t recall_cb
Callback for the Scene Recall message.
access_model_handle_t model_handle
Model handle assigned to this instance.
Parameters for the Scene Status message.
Definition: scene_common.h:117
scene_server_settings_t settings
Settings and callbacks for this instance.
User provided settings and callbacks for the model instance.
Generic Transition parameters for the model messages.
Definition: model_common.h:162
uint32_t scene_setup_server_init(scene_setup_server_t *p_s_server, uint8_t element_index)
Initializes Scene Setup server.

Documentation feedback | Developer Zone | Subscribe | Updated