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_GENERIC_MODEL_H_ 8 #define _BTC_BLE_MESH_GENERIC_MODEL_H_ 9 10 #include "btc/btc_manage.h" 11 #include "esp_ble_mesh_generic_model_api.h" 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 typedef enum { 18 BTC_BLE_MESH_ACT_GENERIC_CLIENT_GET_STATE, 19 BTC_BLE_MESH_ACT_GENERIC_CLIENT_SET_STATE, 20 BTC_BLE_MESH_ACT_GENERIC_CLIENT_MAX, 21 } btc_ble_mesh_generic_client_act_t; 22 23 typedef union { 24 struct ble_mesh_generic_client_get_state_reg_args { 25 esp_ble_mesh_client_common_param_t *params; 26 esp_ble_mesh_generic_client_get_state_t *get_state; 27 } generic_client_get_state; 28 struct ble_mesh_generic_client_set_state_reg_args { 29 esp_ble_mesh_client_common_param_t *params; 30 esp_ble_mesh_generic_client_set_state_t *set_state; 31 } generic_client_set_state; 32 } btc_ble_mesh_generic_client_args_t; 33 34 typedef enum { 35 BTC_BLE_MESH_EVT_GENERIC_CLIENT_GET_STATE, 36 BTC_BLE_MESH_EVT_GENERIC_CLIENT_SET_STATE, 37 BTC_BLE_MESH_EVT_GENERIC_CLIENT_PUBLISH, 38 BTC_BLE_MESH_EVT_GENERIC_CLIENT_TIMEOUT, 39 BTC_BLE_MESH_EVT_GENERIC_CLIENT_MAX, 40 } btc_ble_mesh_generic_client_evt_t; 41 42 void btc_ble_mesh_generic_client_call_handler(btc_msg_t *msg); 43 44 void btc_ble_mesh_generic_client_cb_handler(btc_msg_t *msg); 45 46 void btc_ble_mesh_generic_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src); 47 48 void btc_ble_mesh_generic_client_arg_deep_free(btc_msg_t *msg); 49 50 void btc_ble_mesh_generic_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_generic_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_GENERIC_SERVER_STATE_CHANGE, 61 BTC_BLE_MESH_EVT_GENERIC_SERVER_RECV_GET_MSG, 62 BTC_BLE_MESH_EVT_GENERIC_SERVER_RECV_SET_MSG, 63 BTC_BLE_MESH_EVT_GENERIC_SERVER_MAX, 64 } btc_ble_mesh_generic_server_evt_t; 65 66 void bt_mesh_generic_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model, 67 struct bt_mesh_msg_ctx *ctx, 68 const uint8_t *val, size_t len); 69 70 void btc_ble_mesh_generic_server_cb_handler(btc_msg_t *msg); 71 72 #ifdef __cplusplus 73 } 74 #endif 75 76 #endif /* _BTC_BLE_MESH_GENERIC_MODEL_H_ */ 77