/****************************************************************************************
 * 文件名:kf8ts27_touch_s.h
 * 版 本:   V3.0
 * 日 期:   2016-1-1
 * 作 者:  上海芯旺微电子技术有限公司
 * 说明：    电容触摸库函数头文件
 ****************************************************************************************/

#ifndef KF8TS27_TOUCH_S_H_
#define KF8TS27_TOUCH_S_H_

#include "main.h"

#define MX_CH  			18	// 所有开通触摸通道数的个数
#define SLIDE_CH 		2	//	滑条组数
/********************************************************************************************/
//声明给触摸库使用
/********************************************************************************************/
extern unsigned char const 	CHS_AMOUNT; //最大通道号
extern unsigned char const 	SLIDE_AMOUNT;//最大滑条组数
extern unsigned char const 	TCS_AMOUNT;//普通单键按下延时
extern unsigned char const 	TCS_Slide_AMOUNT;//滑条组识别延时
extern unsigned int const 	_KF8_Disturb_Protect_Circle_;//异常保护时间
extern unsigned int const 	_KF8_DoubleKey_Compages_Limitable_Circle_;//允许双键进入时间限定
extern unsigned int  const 	_KF8_Key_Max_Pressed_Limitable_Circle_;//最长按键有效时间
extern signed char const 	_KF8_BaseLine_Update_Circle_Count_For_UP_;    //向上更新计数到采样IIR滤波
extern signed char const 	_KF8_BaseLine_Update_Circle_Count_For_Down_; 	 //向下更新计数

//同时变化通道数属于异变，主要用于向下,最小值2，最大值根据通道数量
extern signed char const  	_KF8_Define_Disturb_Channels_Amount_;

//量化定义向上/向下变化率多于x属于突变，突变计数，多于一定数量属于异变
extern signed char const 	_KF8_BasicLine_UP_Noise_Threshold_;
extern signed char const 	_KF8_BasicLine_Down_Noise_Threshold_;
extern signed char const 	_KF8_Data_Steady_Threshold_Set_;  //上下次波动
//量化参考通道变化率多于x属于电源波动
extern signed char const _KF8_Inside_Reference_Channel_Disturb_Threshold_Set_;  //仅用于参考通道

extern unsigned long 		_KF8_LIBi_channel_flag_;		 //普通单键标志，按下置对应bit为1
extern unsigned char		_KF8_LIBi_Slide_Press_Flag;	//滑条组标志，按下置对应bit为1
extern unsigned int  		_KF8_LIBi_Slide_channel_out_[SLIDE_CH];//滑条组 输出当前分辨率
extern signed int  			_KF8_LIBi_Slide_distance_out_[SLIDE_CH];//滑条组 输出滑动距离
extern unsigned char 		_KF8_LIBc_channel_; //采集了新数据的通道号
extern unsigned char const 	_KF8_Inside_Reference_Channel_Declare_;//引入基准通道的通道号值


extern unsigned char const 	_KF8_TOUCH_CH_EN[MX_CH]; //逻辑化通道扫描的顺序
extern unsigned char const 	_SLIDE_DISTRIBUTION[SLIDE_CH];//滑条通道分组
extern unsigned int const 	_SLIDE_RESOLUTION[SLIDE_CH];//滑条最大输出分辨率设置
extern unsigned char const 	_SLIDE_SINGLE_RESOLUTION[SLIDE_CH];//滑条单通道承担分辨率设置
extern unsigned char const 	_SLIDE_OFFSET[SLIDE_CH];
extern signed int const 	_KF8_Config_Finger_Threshold[MX_CH];//手指阈值设置
extern signed int const 	_KF8_Config_Finger_Threshold_In_Disturb_[MX_CH];//扰动下手指阈值设置

extern signed int  			_KF8_LIBi_Date_Change_[MX_CH];		//当前变化率
extern signed char 			_KF8_LIBc_baseline_count_[MX_CH];  //用作基准线计数值
extern unsigned int  		_KF8_LIBi_buff_hit_[MX_CH];      //保存采样值
extern unsigned int  		_KF8_LIBi_buff_baseline_[MX_CH]; //保存基准线
extern unsigned char 		_KF8_LIBc_touch_count_[MX_CH];	  //按键识别计数，按键滤波
extern unsigned char 		_KF8_lib_Slide_Finded_MAX_I_T27_SW_[SLIDE_CH];//滑条组变化率最大通道号
extern signed int			_KF8_lib_Slide_Finded_MAX_I_Buf_T27_SW_[SLIDE_CH];//滑条组变化率最大备份
extern signed char  		_KF8_LIBi_Slide_round_count_[SLIDE_CH];//滑条组滑过圈数统计
extern unsigned int   		_KF8_LIBi_Slide_channel_back_[SLIDE_CH];//滑条组初始值备份
/********************************************************************************************/
//声明给触摸库使用结束
/********************************************************************************************/
//-------------------------------------------------------------------------------------------//
/********************************************************************************************/
//触摸库函数声明
/********************************************************************************************/
unsigned char 	_KF8TS27_Get_Ver_Slide_W_();				//获取当前库的版本号
void 			_KF8TS27_Init_Touch_Slide_W_();			//初始化电容触摸
void 			_KF8TS27_Touch_Process_Slide_W_();		//电容触摸通道处理
void 			_KF8TS27_Touch_TEST_Slide_W_();           //简化接收开启函数，仅调试曲线时用
// 参数更换   0：默认，选用T4同步计数 支持A02版本	   1：采用T3自身计数 支持A03及以上版本
void 			_KF8TS27_Lib_Set_Slide_W_Parameter(unsigned char parameterin);
#endif /*  KF8_LIB_TOUCH_H_ */
