xref: /btstack/src/mesh/mesh_generic_on_off_server.h (revision 2fca4dad957cd7b88f4657ed51e89c12615dda72)
139018edaSMilanka Ringwald /*
239018edaSMilanka Ringwald  * Copyright (C) 2019 BlueKitchen GmbH
339018edaSMilanka Ringwald  *
439018edaSMilanka Ringwald  * Redistribution and use in source and binary forms, with or without
539018edaSMilanka Ringwald  * modification, are permitted provided that the following conditions
639018edaSMilanka Ringwald  * are met:
739018edaSMilanka Ringwald  *
839018edaSMilanka Ringwald  * 1. Redistributions of source code must retain the above copyright
939018edaSMilanka Ringwald  *    notice, this list of conditions and the following disclaimer.
1039018edaSMilanka Ringwald  * 2. Redistributions in binary form must reproduce the above copyright
1139018edaSMilanka Ringwald  *    notice, this list of conditions and the following disclaimer in the
1239018edaSMilanka Ringwald  *    documentation and/or other materials provided with the distribution.
1339018edaSMilanka Ringwald  * 3. Neither the name of the copyright holders nor the names of
1439018edaSMilanka Ringwald  *    contributors may be used to endorse or promote products derived
1539018edaSMilanka Ringwald  *    from this software without specific prior written permission.
1639018edaSMilanka Ringwald  * 4. Any redistribution, use, or modification is done solely for
1739018edaSMilanka Ringwald  *    personal benefit and not for any commercial purpose or for
1839018edaSMilanka Ringwald  *    monetary gain.
1939018edaSMilanka Ringwald  *
2039018edaSMilanka Ringwald  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
2139018edaSMilanka Ringwald  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2239018edaSMilanka Ringwald  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23*2fca4dadSMilanka Ringwald  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BLUEKITCHEN
24*2fca4dadSMilanka Ringwald  * GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
2539018edaSMilanka Ringwald  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
2639018edaSMilanka Ringwald  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
2739018edaSMilanka Ringwald  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
2839018edaSMilanka Ringwald  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
2939018edaSMilanka Ringwald  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
3039018edaSMilanka Ringwald  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3139018edaSMilanka Ringwald  * SUCH DAMAGE.
3239018edaSMilanka Ringwald  *
3339018edaSMilanka Ringwald  * Please inquire about commercial licensing options at
3439018edaSMilanka Ringwald  * [email protected]
3539018edaSMilanka Ringwald  *
3639018edaSMilanka Ringwald  */
3739018edaSMilanka Ringwald 
3839018edaSMilanka Ringwald #ifndef __MESH_GENERIC_ON_OFF_SERVER_H
3939018edaSMilanka Ringwald #define __MESH_GENERIC_ON_OFF_SERVER_H
4039018edaSMilanka Ringwald 
4139018edaSMilanka Ringwald #include <stdint.h>
4239018edaSMilanka Ringwald 
4339018edaSMilanka Ringwald #include "mesh/mesh_access.h"
4439018edaSMilanka Ringwald 
4539018edaSMilanka Ringwald #ifdef __cplusplus
4639018edaSMilanka Ringwald extern "C"
4739018edaSMilanka Ringwald {
4839018edaSMilanka Ringwald #endif
4939018edaSMilanka Ringwald 
5039018edaSMilanka Ringwald const mesh_operation_t * mesh_generic_on_off_server_get_operations(void);
5139018edaSMilanka Ringwald /**
5239018edaSMilanka Ringwald  * @brief Register packet handler
5339018edaSMilanka Ringwald  * @param generic_on_off_server_model
5439018edaSMilanka Ringwald  * @param transition_events_packet_handler
5539018edaSMilanka Ringwald  */
5639018edaSMilanka Ringwald void mesh_generic_on_off_server_register_packet_handler(mesh_model_t *generic_on_off_server_model, btstack_packet_handler_t transition_events_packet_handler);
5739018edaSMilanka Ringwald 
5839018edaSMilanka Ringwald /**
5939018edaSMilanka Ringwald  * @brief Set publication model
6039018edaSMilanka Ringwald  * @param generic_on_off_server_model
6139018edaSMilanka Ringwald  * @param publication_model
6239018edaSMilanka Ringwald  */
6339018edaSMilanka Ringwald void mesh_generic_on_off_server_set_publication_model(mesh_model_t *generic_on_off_server_model, mesh_publication_model_t * publication_model);
6439018edaSMilanka Ringwald 
6539018edaSMilanka Ringwald /**
6639018edaSMilanka Ringwald  * @brief Set ON/OFF value
6739018edaSMilanka Ringwald  * @param generic_on_off_server_model
6839018edaSMilanka Ringwald  * @param on_off_value
6939018edaSMilanka Ringwald  * @param transition_time_gdtt
7039018edaSMilanka Ringwald  * @param delay_time_gdtt
7139018edaSMilanka Ringwald  */
7239018edaSMilanka Ringwald void mesh_generic_on_off_server_set(mesh_model_t *generic_on_off_server_model, uint8_t on_off_value, uint8_t transition_time_gdtt, uint8_t delay_time_gdtt);
7339018edaSMilanka Ringwald 
7439018edaSMilanka Ringwald /**
7539018edaSMilanka Ringwald  * @brief  Get present ON/OFF value
7639018edaSMilanka Ringwald  * @param  generic_on_off_server_model
7739018edaSMilanka Ringwald  * @return on_off_value
7839018edaSMilanka Ringwald  */
7939018edaSMilanka Ringwald uint8_t mesh_generic_on_off_server_get(mesh_model_t *generic_on_off_server_model);
8039018edaSMilanka Ringwald 
8139018edaSMilanka Ringwald 
8239018edaSMilanka Ringwald #ifdef __cplusplus
8339018edaSMilanka Ringwald } /* end of extern "C" */
8439018edaSMilanka Ringwald #endif
8539018edaSMilanka Ringwald 
8639018edaSMilanka Ringwald #endif
87