1 /* 2 * SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef _BTC_BLE_MESH_LIGHTING_MODEL_H_ 8 #define _BTC_BLE_MESH_LIGHTING_MODEL_H_ 9 10 #include "btc/btc_manage.h" 11 #include "esp_ble_mesh_lighting_model_api.h" 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 typedef enum { 18 BTC_BLE_MESH_ACT_LIGHTING_CLIENT_GET_STATE, 19 BTC_BLE_MESH_ACT_LIGHTING_CLIENT_SET_STATE, 20 BTC_BLE_MESH_ACT_LIGHTING_CLIENT_MAX, 21 } btc_ble_mesh_lighting_client_act_t; 22 23 typedef union { 24 struct ble_mesh_light_client_get_state_reg_args { 25 esp_ble_mesh_client_common_param_t *params; 26 esp_ble_mesh_light_client_get_state_t *get_state; 27 } light_client_get_state; 28 struct ble_mesh_light_client_set_state_reg_args { 29 esp_ble_mesh_client_common_param_t *params; 30 esp_ble_mesh_light_client_set_state_t *set_state; 31 } light_client_set_state; 32 } btc_ble_mesh_lighting_client_args_t; 33 34 typedef enum { 35 BTC_BLE_MESH_EVT_LIGHTING_CLIENT_GET_STATE, 36 BTC_BLE_MESH_EVT_LIGHTING_CLIENT_SET_STATE, 37 BTC_BLE_MESH_EVT_LIGHTING_CLIENT_PUBLISH, 38 BTC_BLE_MESH_EVT_LIGHTING_CLIENT_TIMEOUT, 39 BTC_BLE_MESH_EVT_LIGHTING_CLIENT_MAX, 40 } btc_ble_mesh_lighting_client_evt_t; 41 42 void btc_ble_mesh_lighting_client_call_handler(btc_msg_t *msg); 43 44 void btc_ble_mesh_lighting_client_cb_handler(btc_msg_t *msg); 45 46 void btc_ble_mesh_lighting_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src); 47 48 void btc_ble_mesh_lighting_client_arg_deep_free(btc_msg_t *msg); 49 50 void btc_ble_mesh_lighting_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model, 51 struct bt_mesh_msg_ctx *ctx, 52 struct net_buf_simple *buf); 53 54 void bt_mesh_lighting_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type, 55 struct bt_mesh_model *model, 56 struct bt_mesh_msg_ctx *ctx, 57 const uint8_t *val, size_t len); 58 59 typedef enum { 60 BTC_BLE_MESH_EVT_LIGHTING_SERVER_STATE_CHANGE, 61 BTC_BLE_MESH_EVT_LIGHTING_SERVER_RECV_GET_MSG, 62 BTC_BLE_MESH_EVT_LIGHTING_SERVER_RECV_SET_MSG, 63 BTC_BLE_MESH_EVT_LIGHTING_SERVER_RECV_STATUS_MSG, 64 BTC_BLE_MESH_EVT_LIGHTING_SERVER_MAX, 65 } btc_ble_mesh_lighting_server_evt_t; 66 67 void bt_mesh_lighting_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model, 68 struct bt_mesh_msg_ctx *ctx, 69 const uint8_t *val, size_t len); 70 71 void btc_ble_mesh_lighting_server_cb_handler(btc_msg_t *msg); 72 73 #ifdef __cplusplus 74 } 75 #endif 76 77 #endif /* _BTC_BLE_MESH_LIGHTING_MODEL_H_ */ 78