nRF5 SDK for Mesh v5.0.0
generic_dtt_client.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 GENERIC_DTT_CLIENT_H__
39 #define GENERIC_DTT_CLIENT_H__
40 
41 
42 
43 #include <stdint.h>
44 #include "access.h"
45 #include "access_reliable.h"
46 #include "generic_dtt_common.h"
47 #include "generic_dtt_messages.h"
48 
49 
57 #define GENERIC_DTT_CLIENT_MODEL_ID 0x1005
58 
59 /* Forward declaration */
60 typedef struct __generic_dtt_client_t generic_dtt_client_t;
61 
69 typedef void (*generic_dtt_state_status_cb_t)(const generic_dtt_client_t * p_self,
70  const access_message_rx_meta_t * p_meta,
71  const generic_dtt_status_params_t * p_in);
72 
73 typedef struct
74 {
77 
83 
87 typedef struct
88 {
92  uint32_t timeout;
99 
103 
105 typedef union
106 {
109 
112 {
117  /* Acknowledged message context variable */
118  access_reliable_t access_message;
119 
122 };
123 
143 uint32_t generic_dtt_client_init(generic_dtt_client_t * p_client, uint8_t element_index);
144 
163 uint32_t generic_dtt_client_set(generic_dtt_client_t * p_client, const generic_dtt_set_params_t * p_params);
164 
187 uint32_t generic_dtt_client_set_unack(generic_dtt_client_t * p_client, const generic_dtt_set_params_t * p_params,
188  uint8_t repeats);
189 
206 uint32_t generic_dtt_client_get(generic_dtt_client_t * p_client);
207 
209 #endif /* GENERIC_DTT_CLIENT_H__ */
uint16_t access_model_handle_t
Access layer handle type.
Definition: access.h:162
generic_dtt_client_msg_data_t msg_pkt
Holds the raw message packet data for transactions.
Unpacked message structure typedefs are used for API interfaces and for implementing model code...
Packed message structure typedefs are used for packing and unpacking byte stream. ...
generic_dtt_state_status_cb_t dtt_status_cb
Client model response message callback.
void(* access_publish_timeout_cb_t)(access_model_handle_t handle, void *p_args)
Access layer publish timeout event callback.
Definition: access.h:170
Parameters for the Default Transition Time Status message.
access_model_handle_t model_handle
Model handle assigned to this instance.
access_publish_timeout_cb_t periodic_publish_cb
callback called at the end of the each period for the publishing
access_reliable_cb_t ack_transaction_status_cb
Callback to call after the acknowledged transaction has ended.
nrf_mesh_transmic_size_t transmic_size
TransMIC size used by the outgoing server messages.
uint32_t timeout
Reliable message timeout in microseconds.
const generic_dtt_client_callbacks_t * p_callbacks
Callback list.
Metadata for received messages.
Definition: access.h:196
void(* generic_dtt_state_status_cb_t)(const generic_dtt_client_t *p_self, const access_message_rx_meta_t *p_meta, const generic_dtt_status_params_t *p_in)
Callback type for Default Transition Time state related transactions.
uint32_t generic_dtt_client_set(generic_dtt_client_t *p_client, const generic_dtt_set_params_t *p_params)
Sends a Set message to the server.
uint32_t generic_dtt_client_init(generic_dtt_client_t *p_client, uint8_t element_index)
Initializes Generic Default Transition Time client.
User provided settings and callbacks for the model instance.
Access layer acknowledged publish parameter structure.
generic_dtt_client_settings_t settings
Model settings and callbacks for this instance.
bool force_segmented
If server should force outgoing messages as segmented messages.
uint32_t generic_dtt_client_set_unack(generic_dtt_client_t *p_client, const generic_dtt_set_params_t *p_params, uint8_t repeats)
Sends a Set Unacknowledged message to the server.
nrf_mesh_transmic_size_t
Message MIC size selection.
Definition: nrf_mesh.h:385
uint32_t generic_dtt_client_get(generic_dtt_client_t *p_client)
Sends a Get message to the server.
void(* access_reliable_cb_t)(access_model_handle_t model_handle, void *p_args, access_reliable_status_t status)
Access layer acknowledged message callback type.
Union for holding current message packet.

Documentation feedback | Developer Zone | Subscribe | Updated