#ifndef __APP_WIRELESS_PAIR_H__
#define __APP_WIRELESS_PAIR_H__

#ifdef __cplusplus
extern "C" {
#endif

/*Includes ------------------------------------------------------*/
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
#include "sdk_common.h"
#include "SEGGER_RTT.h"
#include "usr_config.h"

/*Private macro ------------------------------------------------------------------------------------------------------------------------------------*/
/*Struction ----------------------------------------------------*/
//定义事件的枚举类型
typedef enum _app_wireless_pair_event
{
	APP_WIRELESS_PAIR_EVENT_CHARGING_INSERTING,																																		//充电插入
	APP_WIRELESS_PAIR_EVENT_CHARGING_UNPLUG,																																			//充电拔出
	APP_WIRELESS_PAIR_EVENT_RSSI_MEETS_REQUIREMENTS,                                            									//rssi符合要求
	APP_WIRELESS_PAIR_EVENT_RSSI_DOES_NOT_MEETS_REQUIREMENTS, 																										//rssi不符合要求
	APP_WIRELESS_PAIR_EVENT_PAIR_DONE,																																						//配对完成																
}App_Wireless_Pair_Event_e;

//定义状态数据的枚举类型
typedef enum _app_wireless_pair_state
{
	APP_WIRELESS_PAIR_STATE_PAIRING_STANDBY,																																			//配对待机状态
	APP_WIRELESS_PAIR_STATE_PAIRING_PREPARATION,																																	//配对准备中状态
	APP_WIRELESS_PAIR_STATE_PAIRING_IN_PROGRESS,																																	//配对进行中状态
	APP_WIRELESS_PAIR_STATE_END_OF_PAIRING,																																				//配对结束状态
}App_Wireless_Pair_State_e;

typedef int (*App_Wireless_Pair_Set_Scan_Cb)(int on_off);

typedef int (*App_Wireless_Pair_Set_Adv_Cb)(int on_off);
/*API -------------------------------------------------------*/
/**
	@brief 		初始化无线配对应用
	@param 		无
	@return 	错误代码					- [out]	-1失败，0成功
*/
int	app_wireless_pair_Init(void);

/**
	@brief 		无线配对注册扫描设置
	@param 		cb								-	[in]	注册的回调
	@return 	错误代码					- [out]	-1失败，0成功
*/
int	app_wireless_pair_Regist_SetScan(App_Wireless_Pair_Set_Scan_Cb cb);

/**
	@brief 		无线配对注册广播设置
	@param 		cb								-	[in]	注册的回调
	@return 	错误代码					- [out]	-1失败，0成功
*/
int	app_wireless_pair_Regist_SetAdv(App_Wireless_Pair_Set_Adv_Cb cb);

/**
	@brief 		无线配对扫描请求
	@param 		rssi							-	[in]	天线信号强度
	@param 		addr							-	[in]	MAC地址缓冲区指针
	@return 	错误代码					- [out]	-1失败，0成功
*/
int	app_wireless_pair_Scan_Req(int rssi, uint8_t *addr);

/**
	@brief 		无线配对扫描回复
	@param 		rssi							-	[in]	天线信号强度
	@param 		addr							-	[in]	MAC地址缓冲区指针
	@return 	错误代码					- [out]	-1失败，0成功
*/
int	app_wireless_pair_Scan_Rsp(int rssi, uint8_t *addr);

/**
	@brief 		无线配对亮灯
	@param 		无
	@return 	错误代码					- [out]	-1失败，0成功
*/
int	app_wireless_pair_start_led(void);

/**
	@brief 		无线配对灭灯
	@param 		无
	@return 	错误代码					- [out]	-1失败，0成功
*/
int	app_wireless_pair_stop_led(void);

/**
	@brief 		无线配对事件处理
	@param 		event							-	[in]	事件
	@return 	错误代码					- [out]	-1失败，0成功
*/
int	app_wireless_pair_EventHandle(App_Wireless_Pair_Event_e  event);

App_Wireless_Pair_State_e app_wireless_pair_get_curstate(void);

#ifdef __cplusplus
}
#endif

#endif








