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_HEALTH_MODEL_H_ 8 #define _BTC_BLE_MESH_HEALTH_MODEL_H_ 9 10 #include "btc/btc_manage.h" 11 #include "esp_ble_mesh_health_model_api.h" 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 typedef enum { 18 BTC_BLE_MESH_ACT_HEALTH_CLIENT_GET_STATE, 19 BTC_BLE_MESH_ACT_HEALTH_CLIENT_SET_STATE, 20 BTC_BLE_MESH_ACT_HEALTH_CLIENT_MAX, 21 } btc_ble_mesh_health_client_act_t; 22 23 typedef union { 24 struct ble_mesh_health_client_get_state_reg_args { 25 esp_ble_mesh_client_common_param_t *params; 26 esp_ble_mesh_health_client_get_state_t *get_state; 27 } health_client_get_state; 28 struct ble_mesh_health_client_set_state_reg_args { 29 esp_ble_mesh_client_common_param_t *params; 30 esp_ble_mesh_health_client_set_state_t *set_state; 31 } health_client_set_state; 32 } btc_ble_mesh_health_client_args_t; 33 34 typedef enum { 35 BTC_BLE_MESH_EVT_HEALTH_CLIENT_GET_STATE, 36 BTC_BLE_MESH_EVT_HEALTH_CLIENT_SET_STATE, 37 BTC_BLE_MESH_EVT_HEALTH_CLIENT_PUBLISH, 38 BTC_BLE_MESH_EVT_HEALTH_CLIENT_TIMEOUT, 39 BTC_BLE_MESH_EVT_HEALTH_CLIENT_MAX, 40 } btc_ble_mesh_health_client_evt_t; 41 42 void btc_ble_mesh_health_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src); 43 44 void btc_ble_mesh_health_client_arg_deep_free(btc_msg_t *msg); 45 46 void btc_ble_mesh_health_client_call_handler(btc_msg_t *msg); 47 48 void btc_ble_mesh_health_client_cb_handler(btc_msg_t *msg); 49 50 void btc_ble_mesh_health_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_health_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, uint16_t len); 58 59 typedef enum { 60 BTC_BLE_MESH_ACT_HEALTH_SERVER_FAULT_UPDATE, 61 BTC_BLE_MESH_ACT_HEALTH_SERVER_MAX, 62 } btc_ble_mesh_health_server_act_t; 63 64 typedef union { 65 struct ble_mesh_health_server_fault_update_args { 66 esp_ble_mesh_elem_t *element; 67 } health_fault_update; 68 } btc_ble_mesh_health_server_args_t; 69 70 void btc_ble_mesh_health_server_call_handler(btc_msg_t *msg); 71 72 void btc_ble_mesh_health_server_cb_handler(btc_msg_t *msg); 73 74 void btc_ble_mesh_health_server_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src); 75 76 void btc_ble_mesh_health_server_fault_clear(struct bt_mesh_model *model, uint16_t company_id); 77 78 void btc_ble_mesh_health_server_fault_test(struct bt_mesh_model *model, 79 uint8_t test_id, uint16_t company_id); 80 81 void btc_ble_mesh_health_server_attention_on(struct bt_mesh_model *model, uint8_t time); 82 83 void btc_ble_mesh_health_server_attention_off(struct bt_mesh_model *model); 84 85 #ifdef __cplusplus 86 } 87 #endif 88 89 #endif /* _BTC_BLE_MESH_HEALTH_MODEL_H_ */ 90