blob: 169c59a6bc07de8e91d9e5c90595964005439fcd [file] [log] [blame]
/*
* Copyright (c) 2022 ASR Microelectronics (Shanghai) Co., Ltd. All rights reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
****************************************************************************************
*
* @file \app_custom_svc.h
*
* @brief custom service db
*
****************************************************************************************
*/
#ifndef _APP_CUSTOM_SVC_H_
#define _APP_CUSTOM_SVC_H_
/*
* INCLUDE FILES
****************************************************************************************
*/
#include <platform/DeviceInstanceInfoProvider.h>
#ifdef __cplusplus
extern "C" {
#endif
#include "sonata_ble_api.h"
#include "sonata_gatt_api.h"
/*
* MACRO DEFINES
****************************************************************************************
*/
/*
* ENUM DEFINITIONS
****************************************************************************************
*/
enum csvc_att_db_handles
{
CSVC_IDX_SVC,
CSVC_IDX_RX_CHAR,
CSVC_IDX_RX_VAL,
CSVC_IDX_TX_CHAR,
CSVC_IDX_TX_VAL,
CSVC_IDX_TX_CFG,
#if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING
CSVC_IDX_C3_CHAR,
CSVC_IDX_C3_VAL,
#endif
CSVC_IDX_NB,
};
enum _matter_event_states
{
MATTER_EVENT_DONE_CONTINUE,
MATTER_EVENT_DONE_FINISHED,
};
/*
* GLOBAL VARIABLE DECLARATIONS
****************************************************************************************
*/
/*
* FUNCTION DEFINITIONS
****************************************************************************************
*/
void matter_ble_add_service();
uint16_t matter_ble_complete_event_handler(int opt_id, uint8_t status, uint16_t param, uint32_t dwparam);
void matter_ble_stop_adv();
void matter_ble_start_adv(bool fast);
void matter_set_connection_id(uint8_t conId);
void matter_close_connection(uint8_t conId);
void matter_tx_CCCD_write_cb(uint8_t * data, uint16_t size);
void matter_rx_char_write_cb(uint8_t * data, uint16_t size);
void matter_tx_CCCD_read_cb(uint8_t * data, uint16_t * size);
#if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING
void matter_c3_char_read_cb(uint8_t * data, uint16_t * size);
#endif
void matter_tx_char_send_indication(uint8_t conId, uint16_t size, uint8_t * data);
void matter_init_callback(void);
void matter_ble_stack_open(void);
#ifdef __cplusplus
}
#endif
#endif // BLE_SOC_APP_CUSTOM_SVC_H