xref: /btstack/src/mesh/mesh_generic_on_off_client.h (revision 39018edacb8c4b6820105969f65c1ca9e8b19376)
1*39018edaSMilanka Ringwald /*
2*39018edaSMilanka Ringwald  * Copyright (C) 2019 BlueKitchen GmbH
3*39018edaSMilanka Ringwald  *
4*39018edaSMilanka Ringwald  * Redistribution and use in source and binary forms, with or without
5*39018edaSMilanka Ringwald  * modification, are permitted provided that the following conditions
6*39018edaSMilanka Ringwald  * are met:
7*39018edaSMilanka Ringwald  *
8*39018edaSMilanka Ringwald  * 1. Redistributions of source code must retain the above copyright
9*39018edaSMilanka Ringwald  *    notice, this list of conditions and the following disclaimer.
10*39018edaSMilanka Ringwald  * 2. Redistributions in binary form must reproduce the above copyright
11*39018edaSMilanka Ringwald  *    notice, this list of conditions and the following disclaimer in the
12*39018edaSMilanka Ringwald  *    documentation and/or other materials provided with the distribution.
13*39018edaSMilanka Ringwald  * 3. Neither the name of the copyright holders nor the names of
14*39018edaSMilanka Ringwald  *    contributors may be used to endorse or promote products derived
15*39018edaSMilanka Ringwald  *    from this software without specific prior written permission.
16*39018edaSMilanka Ringwald  * 4. Any redistribution, use, or modification is done solely for
17*39018edaSMilanka Ringwald  *    personal benefit and not for any commercial purpose or for
18*39018edaSMilanka Ringwald  *    monetary gain.
19*39018edaSMilanka Ringwald  *
20*39018edaSMilanka Ringwald  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
21*39018edaSMilanka Ringwald  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22*39018edaSMilanka Ringwald  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23*39018edaSMilanka Ringwald  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
24*39018edaSMilanka Ringwald  * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25*39018edaSMilanka Ringwald  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26*39018edaSMilanka Ringwald  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
27*39018edaSMilanka Ringwald  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28*39018edaSMilanka Ringwald  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29*39018edaSMilanka Ringwald  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
30*39018edaSMilanka Ringwald  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31*39018edaSMilanka Ringwald  * SUCH DAMAGE.
32*39018edaSMilanka Ringwald  *
33*39018edaSMilanka Ringwald  * Please inquire about commercial licensing options at
34*39018edaSMilanka Ringwald  * [email protected]
35*39018edaSMilanka Ringwald  *
36*39018edaSMilanka Ringwald  */
37*39018edaSMilanka Ringwald 
38*39018edaSMilanka Ringwald #ifndef __MESH_GENERIC_ON_OFF_CLIENT_H
39*39018edaSMilanka Ringwald #define __MESH_GENERIC_ON_OFF_CLIENT_H
40*39018edaSMilanka Ringwald 
41*39018edaSMilanka Ringwald #include <stdint.h>
42*39018edaSMilanka Ringwald 
43*39018edaSMilanka Ringwald #include "mesh/mesh_access.h"
44*39018edaSMilanka Ringwald 
45*39018edaSMilanka Ringwald #ifdef __cplusplus
46*39018edaSMilanka Ringwald extern "C"
47*39018edaSMilanka Ringwald {
48*39018edaSMilanka Ringwald #endif
49*39018edaSMilanka Ringwald 
50*39018edaSMilanka Ringwald const mesh_operation_t * mesh_generic_on_off_client_get_operations(void);
51*39018edaSMilanka Ringwald /**
52*39018edaSMilanka Ringwald  * @brief Register packet handler
53*39018edaSMilanka Ringwald  * @param generic_on_off_client_model
54*39018edaSMilanka Ringwald  * @param events_packet_handler
55*39018edaSMilanka Ringwald  */
56*39018edaSMilanka Ringwald void mesh_generic_on_off_client_register_packet_handler(mesh_model_t *mesh_model, btstack_packet_handler_t events_packet_handler);
57*39018edaSMilanka Ringwald 
58*39018edaSMilanka Ringwald /**
59*39018edaSMilanka Ringwald  * @brief Set ON/OFF value acknowledged
60*39018edaSMilanka Ringwald  * @param mesh_model
61*39018edaSMilanka Ringwald  * @param dest
62*39018edaSMilanka Ringwald  * @param netkey_index
63*39018edaSMilanka Ringwald  * @param appkey_index
64*39018edaSMilanka Ringwald  * @param on_off_value
65*39018edaSMilanka Ringwald  * @param transition_time_gdtt
66*39018edaSMilanka Ringwald  * @param delay_time_gdtt
67*39018edaSMilanka Ringwald  * @param transaction_id
68*39018edaSMilanka Ringwald  * @return status    0 if successful
69*39018edaSMilanka Ringwald  */
70*39018edaSMilanka Ringwald  uint8_t mesh_generic_on_off_client_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index,
71*39018edaSMilanka Ringwald     uint8_t on_off_value, uint8_t transition_time_gdtt, uint8_t delay_time_gdtt, uint8_t transaction_id);
72*39018edaSMilanka Ringwald 
73*39018edaSMilanka Ringwald /**
74*39018edaSMilanka Ringwald  * @brief Set ON/OFF value unacknowledged
75*39018edaSMilanka Ringwald  * @param  mesh_model
76*39018edaSMilanka Ringwald  * @param dest
77*39018edaSMilanka Ringwald  * @param netkey_index
78*39018edaSMilanka Ringwald  * @param appkey_index
79*39018edaSMilanka Ringwald  * @param on_off_value
80*39018edaSMilanka Ringwald  * @param transition_time_gdtt
81*39018edaSMilanka Ringwald  * @param delay_time_gdtt
82*39018edaSMilanka Ringwald  * @param transaction_id
83*39018edaSMilanka Ringwald  * @return status    0 if successful
84*39018edaSMilanka Ringwald  */
85*39018edaSMilanka Ringwald uint8_t mesh_generic_on_off_client_set_unacknowledged(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index,
86*39018edaSMilanka Ringwald     uint8_t on_off_value, uint8_t transition_time_gdtt, uint8_t delay_time_gdtt, uint8_t transaction_id);
87*39018edaSMilanka Ringwald 
88*39018edaSMilanka Ringwald /**
89*39018edaSMilanka Ringwald  * @brief  Get present ON/OFF value
90*39018edaSMilanka Ringwald  * @param  mesh_model
91*39018edaSMilanka Ringwald  * @param dest
92*39018edaSMilanka Ringwald  * @param netkey_index
93*39018edaSMilanka Ringwald  * @param appkey_index
94*39018edaSMilanka Ringwald  * @return status    0 if successful
95*39018edaSMilanka Ringwald  */
96*39018edaSMilanka Ringwald uint8_t mesh_generic_on_off_client_get(mesh_model_t *mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index);
97*39018edaSMilanka Ringwald 
98*39018edaSMilanka Ringwald /**
99*39018edaSMilanka Ringwald  * @brief Publish on_off value by sending an unacknowledged set message to the publish destination
100*39018edaSMilanka Ringwald  * @param mesh_model
101*39018edaSMilanka Ringwald  * @param on_off_value
102*39018edaSMilanka Ringwald  * @param transaction_id
103*39018edaSMilanka Ringwald  * @return status    0 if successful
104*39018edaSMilanka Ringwald  */
105*39018edaSMilanka Ringwald uint8_t mesh_generic_on_off_client_publish(mesh_model_t * mesh_model, uint8_t on_off_value, uint8_t transaction_id);
106*39018edaSMilanka Ringwald 
107*39018edaSMilanka Ringwald #ifdef __cplusplus
108*39018edaSMilanka Ringwald } /* end of extern "C" */
109*39018edaSMilanka Ringwald #endif
110*39018edaSMilanka Ringwald 
111*39018edaSMilanka Ringwald #endif
112