added CC2541 8051 example
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
#ifndef SIMPLEBLE_H
|
||||
#define SIMPLEBLE_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
//#define RELEASE_VER //定义版本发布用
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------------------
|
||||
#define NPI_TIMEOUT_EVT 0x0008
|
||||
|
||||
|
||||
#define VERSION "v1.3"
|
||||
|
||||
|
||||
// How often to perform periodic event
|
||||
#define SBP_PERIODIC_EVT_PERIOD 100//必须是100ms
|
||||
|
||||
#define MAX_PERIPHERAL_MAC_ADDR 5//最大记录的从机地址
|
||||
|
||||
#define MAC_ADDR_CHAR_LEN 12//mac地址的字符长度 (一个字节等于两个字符)
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
PARA_ALL_FACTORY = 0, //全部恢复出厂设置
|
||||
PARA_PARI_FACTORY = 1, //配对信息恢复出厂设置-相当于清除配对信息
|
||||
}PARA_SET_FACTORY;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
BLE_ROLE_PERIPHERAL = 0, //从机角色
|
||||
BLE_ROLE_CENTRAL = 1, //主机角色
|
||||
}BLE_ROLE;
|
||||
|
||||
// Application states
|
||||
enum
|
||||
{
|
||||
BLE_STATE_IDLE, //无连接-空闲状态
|
||||
BLE_STATE_CONNECTING, //连接中...
|
||||
BLE_STATE_CONNECTED, //已连接上
|
||||
BLE_STATE_DISCONNECTING, //断开连接中
|
||||
BLE_STATE_ADVERTISING //从机广播中
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
BLE_MODE_SERIAL, // 串口透传模式 【默认】
|
||||
BLE_MODE_DRIVER, // 直驱模式
|
||||
BLE_MODE_iBeacon, // iBeacon 广播模式
|
||||
BLE_MODE_MAX,
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/*
|
||||
0---------9600
|
||||
1---------19200
|
||||
2---------38400
|
||||
3---------57600
|
||||
4---------115200
|
||||
*/
|
||||
uint8 baudrate; // 波特率
|
||||
uint8 parity; //校验位
|
||||
uint8 stopbit; //停止位
|
||||
uint8 mode; //工作模式 0:透传 , 1: 直驱 , 2: iBeacon
|
||||
uint8 name[12]; //设备名称
|
||||
|
||||
BLE_ROLE role; //主从模式 0: 从机 1: 主机
|
||||
|
||||
uint8 pass[7]; //密码
|
||||
|
||||
/*
|
||||
Para: 0 ~ 1
|
||||
0: 连接不需要密码
|
||||
1: 连接需要密码
|
||||
*/
|
||||
uint8 type; //鉴权模式
|
||||
|
||||
|
||||
uint8 mac_addr[13]; //本机mac地址
|
||||
|
||||
uint8 connl_status; //连接最后一次的状态
|
||||
uint8 connect_mac_status; //连接指定地址的返回状态
|
||||
uint8 connect_mac_addr[13]; //指定去连接的mac地址
|
||||
|
||||
//曾经成功连接过的从机地址
|
||||
uint8 ever_connect_mac_status[MAX_PERIPHERAL_MAC_ADDR][13];
|
||||
|
||||
uint8 verion[5]; //版本信息 v1.0 ~ v9.9
|
||||
|
||||
/*
|
||||
Para: 000000~009999
|
||||
000000 代表持续连接,其
|
||||
余代表尝试的毫秒数
|
||||
Default:001000
|
||||
*/
|
||||
uint16 try_connect_time_ms; // 尝试连接时间
|
||||
int8 rssi; // RSSI 信号值
|
||||
uint8 rxGain; // 接收增益强度
|
||||
uint8 txPower; // 发射信号强度
|
||||
uint16 ibeacon_adver_time_ms; // 广播间隔
|
||||
uint8 workMode; // 模块工作类型 0: 立即工作, 1: 等待AT+CON 或 AT+CONNL 命令
|
||||
}SYS_CONFIG;
|
||||
extern SYS_CONFIG sys_config;
|
||||
|
||||
|
||||
extern void Serial_Delay(int times);
|
||||
|
||||
//flag: PARA_ALL_FACTORY: 全部恢复出厂设置
|
||||
//flag: PARA_PARI_FACTORY: 清除配对信息
|
||||
extern void simpleBLE_SetAllParaDefault(PARA_SET_FACTORY flag);
|
||||
extern void simpleBLE_SaveAllDataToFlash();
|
||||
|
||||
extern void PrintAllPara(void);
|
||||
extern bool simpleBLE_AT_CMD_Handle(uint8 *pBuffer, uint16 length);
|
||||
|
||||
extern void simpleBLE_NPI_init(void);
|
||||
|
||||
extern void UpdateRxGain(void);
|
||||
extern void UpdateTxPower(void);
|
||||
|
||||
extern void LedSetState(uint8 onoff);
|
||||
extern void simpleBle_SetRssi(int8 rssi);
|
||||
|
||||
|
||||
extern BLE_ROLE GetBleRole();
|
||||
|
||||
extern uint32 str2Num(uint8* numStr, uint8 iLength);
|
||||
|
||||
extern void simpleBle_PrintPassword();
|
||||
|
||||
extern uint8* GetAttDeviceName();
|
||||
extern void performPeriodicTask( void );
|
||||
|
||||
extern char *bdAddr2Str ( uint8 *pAddr );
|
||||
extern void CheckKeyForSetAllParaDefault(void);
|
||||
|
||||
extern bool CheckIfUse_iBeacon();
|
||||
extern bool simpleBle_GetIfNeedPassword();
|
||||
|
||||
extern void simpleBLE_SetToConnectFlag(bool bToConnect);
|
||||
extern bool simpleBLE_GetToConnectFlag(uint8 *Addr);
|
||||
|
||||
|
||||
extern uint32 Get_iBeaconAdvertisingInterral();
|
||||
extern void simpleBLE_SetPeripheralMacAddr(uint8 *pAddr);
|
||||
extern bool simpleBLE_GetPeripheralMacAddr(uint8 *pAddr);
|
||||
|
||||
|
||||
|
||||
extern uint8 simpleBLEState;
|
||||
extern uint16 simpleBLECharHdl;
|
||||
extern uint16 simpleBLECharHd6;
|
||||
extern bool simpleBLEChar6DoWrite;
|
||||
extern bool simpleBLEChar6DoWrite2;
|
||||
|
||||
|
||||
#if defined (RELEASE_VER)
|
||||
#define LCD_WRITE_STRING(str, option)
|
||||
#define LCD_WRITE_SCREEN(line1, line2)
|
||||
#define LCD_WRITE_STRING_VALUE(title, value, format, line)
|
||||
|
||||
#if defined (HAL_LCD)
|
||||
#undef HAL_LCD
|
||||
#define HAL_LCD FALSE
|
||||
#endif
|
||||
|
||||
#else
|
||||
// LCD macros
|
||||
#if HAL_LCD == TRUE
|
||||
#define LCD_WRITE_STRING(str, option) HalLcdWriteString( (str), (option))
|
||||
#define LCD_WRITE_SCREEN(line1, line2) HalLcdWriteScreen( (line1), (line2) )
|
||||
#define LCD_WRITE_STRING_VALUE(title, value, format, line) HalLcdWriteStringValue( (title), (value), (format), (line) )
|
||||
#else
|
||||
#define LCD_WRITE_STRING(str, option)
|
||||
#define LCD_WRITE_SCREEN(line1, line2)
|
||||
#define LCD_WRITE_STRING_VALUE(title, value, format, line)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
extern uint8 simpleBLETaskId; // 主机任务
|
||||
extern uint8 simpleBLEState;
|
||||
extern uint16 simpleBLECharHdl;
|
||||
extern uint16 simpleBLECharHd6;
|
||||
extern bool simpleBLECentralCanSend;
|
||||
extern bool simpleBLEChar6DoWrite;
|
||||
extern uint8 simpleBLEPeripheral_TaskID; // 从机任务
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* SIMPLEBLE_H */
|
||||
Reference in New Issue
Block a user