123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- /*
- * Copyright 2016, yichip Semiconductor(shenzhen office)
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
- * the contents of this file may not be disclosed to third parties, copied
- * or duplicated in any form, in whole or in part, without the prior
- * written permission of Yichip Semiconductor.
- */
-
- /**
- *@file yc11xx_bt_interface
- *@brief bt support for application.
- */
- #ifndef _YC_BT_INTERFACE_H
- #define _YC_BT_INTERFACE_H
- #include "yc11xx.h"
- #include "ipc.h"
- #include "ycdef.h"
- #include <stdbool.h>
- #include <string.h>
- #define MAX_MTU_SIZE 200
- #define MIN_MTU_SIZE 23
- #define LE_ADV_DATA_MAX_LENGTH 31
- #define LE_SCAN_RSP_MAX_LENGTH 31
- #define LE_MAX_PATCKET_LENGTH HREAD(mem_mtu_size)
- #define Adv_Type_Flags 0x01
- #define Adv_Type_CompleteLocalName 0x09
- typedef struct
- {
- uint8_t topState;
- uint8_t secondState;
- uint8_t thirdlyState;
- }BR_STATE;
- //ble state enumration
- typedef enum
- {
- BLE_STATE_INVALID,
- BLE_IDLE,
- BLE_ADV,
- BLE_CONNECTING,
- BLE_CONNECTED,
- BLE_PAIRED,
- BLE_FAST_PAIRED,
- BLE_DIRECT_ADV,
- }BLE_STATE_TYPE;
- typedef struct
- {
- uint8_t topState;
- uint8_t secondState;
- }BLE_STATE;
- //adv type enumration
- typedef enum {
- ADV_TYPE_NOMAL,
- ADV_TYPE_DIRECT,
- ADV_TYPE_NOCONNECT,
- SCAN_REQ,
- SCAN_RSP,
- CONNECT_REQ,
- ADV_TYPE_SCAN,
- }advType;
- //scan type enumration
- typedef enum {
- SCAN_TYPE_PASSIVE,
- SCAN_TYPE_ACTIVE,
- }scanType;
- //adv state enumration
- typedef enum
- {
- ADV_DISABLE=0x00,
- ADV_ENABLE=0x01,
- }ADV_STATE;
- typedef struct
- {
- uint16_t min_interval; /*Defines minimum value for the conntection event interval in the following manner.
- *min_interval range: 6 to 800.
- *Time = min_interval * 1.25ms;
- *min_interval shall be less than or equal to max_interval.
- */
- uint16_t max_interval; /* maximum value for the conntection event interval.
- *max_interval range: 6 to 800.
- *Time = max_interval * 1.25ms;
- *max_interval shall be greater than or equal to min_interval.
- */
- uint16_t latency; /* slave latency for the conntection in number of connection events.
- *range: 0 to 499.
- */
- uint16_t timeout; /* Supervision timeout for the LE link.
- *range: 10 to 3200.
- *Time = timeout * 10 ms.
- *timeout >( (1+latency) * max_interval ).
- */
- }BLE_Conn_param;
- void Bt_SndCmdSppStartDiscovery(void);
- void Bt_SndCmdSppStopDiscovery(void);
- void Bt_GetSppMac(uint8_t *adr);
- void Bt_SetSppAddr(uint8_t *adr);
- bool Bt_SetSppName(uint8_t *name,int len);
- bool Bt_SndSppData(uint8_t *data,uint8_t len);
- void Bt_SndCmdLeStartAdv(void);
- void Bt_SndCmdLeStopAdv(void);
- void Bt_SndCmdLeStartDirectAdv(void);
- void Bt_SndCmdLeStopDirectAdv(void);
- void Bt_SndCmdLeStartScanAdv(void);
- void Bt_SndCmdLeDisconnect(void);
- void Bt_SndCmdLeUpdateConn(BLE_Conn_param* param);
- void Bt_SetLocalMtuSize(uint16_t size);
- void Bt_SndCmdLeUpdateAttMTU(void);
- void Bt_GetLeMac(uint8_t *adr);
- void Bt_SetLeMac(uint8_t *adr);
- uint8_t Bt_Re_LeAdvName(uint8_t *name,uint8_t len);
- void Bt_Re_LeDeivcename(uint8_t *name,uint8_t len);
- bool Bt_Renew_Le_AdvData(uint8_t *data,uint8_t len);
- bool Bt_Renew_Le_ScanRsp(uint8_t *data,uint8_t len);
- void Bt_SetLeAdvType(advType Type);
- void Bt_SetLeScanRspType(scanType Type);
- void Bt_SetLeAdvInterval(uint16_t gap);
- bool Bt_SndBleData(uint16_t BLE_WRITE_HANDLE, uint8_t *data, uint8_t len);
- void Bt_SndCmdStartScan(void);
- void Bt_SndCmdStopScan(void);
- void Bt_SndCmdPwroff(void);
- #endif
|