#include <stdbool.h>
#include <unistd.h>
#include <glib.h>
+#include <stdint.h>
+
#ifdef __cplusplus
extern "C" {
} bluetooth_device_pin_code_t;
/**
+ * This is data for battery usage monitoring
+ */
+
+typedef struct {
+ time_t session_start_time;
+ time_t session_end_time;
+ uint16_t session_connected_time;
+ uint16_t session_scan_time;
+ GSList *atm_list;
+} bt_battery_data;
+
+typedef struct {
+ uid_t uid;
+ pid_t pid;
+ uint16_t rx_bytes;
+ uint16_t tx_bytes;
+ uint time;
+} bt_battery_app_data;
+
+/**
* Adapter state
*/
typedef enum {
BLUETOOTH_EVENT_ENABLED, /**< Bluetooth event adpater enabled */
BLUETOOTH_EVENT_DISABLED, /**< Bluetooth event adpater disabled */
+ BLUETOOTH_EVENT_DISABLED_BATTERY_DATA, /**< Bluetooth event adapter disabled battery data*/
BLUETOOTH_EVENT_LE_ENABLED, /**< Bluetooth event adpater enabled */
BLUETOOTH_EVENT_LE_DISABLED, /**< Bluetooth event adpater disabled */
BLUETOOTH_EVENT_LOCAL_NAME_CHANGED, /**< Bluetooth event local name changed*/
BLUETOOTH_EVENT_GATT_DISCONNECTED, /**<Gatt Disconnected event */
#endif
BLUETOOTH_EVENT_GATT_ATT_MTU_CHANGED, /**<Attribute protocol MTU changed event */
+ BLUETOOTH_EVENT_GATT_SERVER_ATT_MTU_CHANGED, /**<Attribute protocol Server MTU changed event */
BLUETOOTH_EVENT_GATT_SERVER_CHARACTERISTIC_VALUE_CHANGED, /**<Gatt Char write callback event */
BLUETOOTH_EVENT_GATT_SERVER_READ_REQUESTED, /** <GATT Characteristic/Descriptor Read Request event */
BLUETOOTH_EVENT_GATT_SERVER_VALUE_CHANGED, /** <GATT Characteristic/Descriptor Value change event */
@endcode
*/
int bluetooth_disable_adapter(void);
+int bluetooth_read_battery_data(bt_battery_data *latest);
+int bluetooth_set_battery_monitor_state(bool state);
+int bluetooth_get_battery_monitor_state(void);
int bluetooth_recover_adapter(void);
int bluetooth_check_adapter_le(void);
int bluetooth_enable_adapter_le(void);
*/
gboolean bluetooth_is_le_scanning(void);
-gboolean bluetooth_is_scan_filter_supported(void);
+int bluetooth_is_scan_filter_supported(gboolean *is_supported);
/**
* @fn int bluetooth_force_hcidump(int timeout)
int bluetooth_force_hcidump(int timeout);
/**
- * @fn int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter, int *slot_id)
+ * @fn int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter)
* @brief Register scan filter.
*
* This function registers the scan filter.
* @return BLUETOOTH_ERROR_NONE - Success \n
*
* @param[in] filter scan filter to register
- * @param[out] slot_id the slot ID of scan filter
- *
- * @remark None
- */
-int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter, int *slot_id);
-
-/**
- * @fn int bluetooth_unregister_scan_filter(int slot_id)
- * @brief Register scan filter.
- *
- * This function unregisters the scan filter.
- *
- * This function is a synchronous call.
- *
- * @return BLUETOOTH_ERROR_NONE - Success \n
- *
- * @param[in] slot_id the slot ID of scan filter
- *
- * @remark None
- */
-int bluetooth_unregister_scan_filter(int slot_id);
-
-/**
- * @fn int bluetooth_unregister_all_scan_filters(void)
- * @brief Register scan filter.
- *
- * This function usregisters all scan filters.
- *
- * This function is a synchronous call.
- *
- * @return BLUETOOTH_ERROR_NONE - Success \n
*
* @remark None
*/
-int bluetooth_unregister_all_scan_filters(void);
+int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter);
/**
* @fn int bluetooth_enable_rssi(const bluetooth_device_address_t *remote_address,