text: /** @file
   *  @brief Bluetooth Mesh Health Client Model APIs.
   */
  
  /*
   * Copyright (c) 2017 Intel Corporation
   * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD
   *
   * SPDX-License-Identifier: Apache-2.0
   */
  #ifndef _BLE_MESH_HEALTH_CLI_H_
  #define _BLE_MESH_HEALTH_CLI_H_
  
  #include "client_common.h"
  
  /**
   * @brief Bluetooth Mesh
   * @defgroup bt_mesh_health_cli Bluetooth Mesh Health Client Model
   * @ingroup bt_mesh
   * @{
   */
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /* Health client model common structure */
  typedef bt_mesh_client_user_data_t      bt_mesh_health_client_t;
  typedef bt_mesh_client_internal_data_t  health_internal_data_t;
  
  extern const struct bt_mesh_model_op bt_mesh_health_cli_op[];
  extern const struct bt_mesh_model_cb bt_mesh_health_cli_cb;
  
  #define BLE_MESH_MODEL_HEALTH_CLI(cli_data)             \
          BLE_MESH_MODEL_CB(BLE_MESH_MODEL_ID_HEALTH_CLI,    \
              bt_mesh_health_cli_op, NULL, cli_data, &bt_mesh_health_cli_cb)
  
  int bt_mesh_health_fault_get(bt_mesh_client_common_param_t *param, u16_t cid);
  
  int bt_mesh_health_fault_clear(bt_mesh_client_common_param_t *param,
                                 u16_t cid, bool need_ack);
  
  int bt_mesh_health_fault_test(bt_mesh_client_common_param_t *param,
                                u16_t cid, u8_t test_id, bool need_ack);
  
  int bt_mesh_health_period_get(bt_mesh_client_common_param_t *param);
  
  int bt_mesh_health_period_set(bt_mesh_client_common_param_t *param,
                                u8_t divisor, bool need_ack);
  
  int bt_mesh_health_attention_get(bt_mesh_client_common_param_t *param);
  
  int bt_mesh_health_attention_set(bt_mesh_client_common_param_t *param,
                                   u8_t attention, bool need_ack);
  
  /* Health Client Status Message Context */
  
  struct bt_mesh_health_current_status {
      u8_t  test_id;
      u16_t cid;
      struct net_buf_simple *fault_array;
  };
  
  struct bt_mesh_health_fault_status {
      u8_t  test_id;
      u16_t cid;
      struct net_buf_simple *fault_array;
  };
  
  #ifdef __cplusplus
  }
  #endif
  
  /**
   * @}
   */
  
  #endif /* __BLE_MESH_HEALTH_CLI_H */
  