1dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie/****************************************************************************** 2dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * 3dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * Copyright (C) 1999-2012 Broadcom Corporation 4dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * 5dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * Licensed under the Apache License, Version 2.0 (the "License"); 6dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * you may not use this file except in compliance with the License. 7dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * You may obtain a copy of the License at: 8dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * 9dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * http://www.apache.org/licenses/LICENSE-2.0 10dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * 11dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * Unless required by applicable law or agreed to in writing, software 12dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * distributed under the License is distributed on an "AS IS" BASIS, 13dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * See the License for the specific language governing permissions and 15dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * limitations under the License. 16dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie * 17dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie ******************************************************************************/ 182e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 192e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#ifndef SRVC_BATTERY_INT_H 202e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define SRVC_BATTERY_INT_H 212e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 222e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#include "bt_target.h" 232e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#include "gatt_api.h" 24911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#include "srvc_api.h" 252e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 262e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#ifndef BA_MAX_INT_NUM 27911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BA_MAX_INT_NUM 4 282e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#endif 292e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 30911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BATTERY_LEVEL_SIZE 1 312e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 32911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef struct { 33911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint8_t app_id; 34911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t ba_level_hdl; 35911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t clt_cfg_hdl; 36911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t rpt_ref_hdl; 37911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t pres_fmt_hdl; 382e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 39911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tBA_CBACK* p_cback; 402e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 41911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t pending_handle; 42911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint8_t pending_clcb_idx; 43911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint8_t pending_evt; 442e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 45911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson} tBA_INST; 462e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 47911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef struct { 48911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tBA_INST battery_inst[BA_MAX_INT_NUM]; 49911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint8_t inst_id; 50911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson bool enabled; 512e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 52911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson} tBATTERY_CB; 532e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 542e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach/* Global GATT data */ 5524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBATTERY_CB battery_cb; 562e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 57911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern bool battery_valid_handle_range(uint16_t handle); 582e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 59911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint8_t battery_s_write_attr_value(uint8_t clcb_idx, 60911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tGATT_WRITE_REQ* p_value, 61911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tGATT_STATUS* p_status); 62911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint8_t battery_s_read_attr_value(uint8_t clcb_idx, uint16_t handle, 63911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tGATT_VALUE* p_value, bool is_long, 64911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tGATT_STATUS* p_status); 652e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach 662e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#endif 67