//*************************************************************************************************
//  Copyright (c) 	深圳市赛元微电子有限公司
//	文件名称	:  SensorMethod.h
//	作者		: 
//	模块功能	:  触控算法头文件
// 	版本	    :
// 	更改记录	:
//	注意事项	:    
//************************************************************************************************
#ifndef	_SENSORMETHOD_C_H
#define	_SENSORMETHOD_C_H
			
			


typedef	enum
{
	Circle = 0,		//滑轮
	Bar = 1			//滑条
}TKSlideModuleType;

typedef struct
{
	TKSlideModuleType	TypeFlag;				//(需修改)		滑动块类型,bar:为滑条，Circle:为滑轮
	unsigned 	char  	TKChannel[16];	 		//(需修改)		按照滑动顺序，依次将使用到的滑条按键通道存入数组6->5->4->3滑动值逐渐变大
	unsigned 	char 	UsingTKChannelNumber;	//(需修改)		当前滑动模块使用的TK通道数量
	unsigned 	int 	SideLevel;	            //(需修改)		滑动输出的档位最大级数（从1算起）

	
	int 				SUBData;		        //(可修改)		DDiffer值<SUB_DATA该Differ值无效，会设置为0，屏蔽干扰（修改灵敏度）  该值建议默认 
	int 				LIBData;		        //Differ值>LIB_DATA表示有键（修改灵敏度）该值建议设置为阈值的四分之一到三分之一
	

	unsigned 	char 	TKOrderChannel[16];		//(无需修改)		存放内部TK通道排序都的index
	unsigned 	char 	MAXUpdateCount;			//(无需修改)		扫描多少轮无滑条按键即更新基线，默认10   可修改
	unsigned 	char    LastOutValue;			//(无需修改)		记录上一次输出的值
	unsigned 	int 	OutValue;				//(无需修改)		滑动输出值，通过该值获取输出结果
	unsigned 	int  	UpdateBaseLineNumber;	//(无需修改)		基线更新计数
	unsigned	int		CouplingValue;			//(无需修改)		耦合参数范围(100~200)，参数过小会出现出值缺失,例如滑动出值OutValue为1->2->3->5->6->7,参数过大会出现出值重叠,例如滑动出值OutValue为1->2->3->4->3->4->5->6->7
	unsigned	int		DebugCouplingValue;		//(无需修改)		耦合参数，DeBug值,用于调试，调试时输出该值，滑动滑动模块取输出的最小值，根据最小值调节CouplingValue耦合参数
	unsigned	int	    TriggerFlagCount;		//(无需修改)		滑动模块触发计数标志
	
}TKSlideModulePCB;
	


//外部变量
extern	unsigned	char	xdata	SOCAPI_TouchKeyStatus;			//API?ó?ú×′ì?￡obit7-ò???é¨?èíê3é±ê??	
extern 	unsigned 	char	xdata	ConfirmTouchCnt;														
extern 	unsigned 	int		xdata 	RawData[];			 				
extern 	unsigned 	int		xdata	BaseLine[];	
extern	unsigned  	int	 	xdata  	FilterData[];	
extern	unsigned 	int 	xdata 	CurrentSensorKey;		 				
extern 	unsigned	char  	xdata 	RestAreaCnt[]; 					 
extern 	unsigned	char  	xdata 	TouchCnt[];
extern 	unsigned	char  	xdata 	NoTouchCnt[];  				 			  
extern  unsigned	char 	xdata 	CurrentChannel[];
extern  unsigned    char    xdata   LowFingerDataCnt[]; 			 
extern 				int     xdata 	DifferAccum[];
extern  unsigned	char  	xdata	FloatAreaCnt[]; 
extern 				char	xdata	SetNoiseThreshold;
extern  unsigned 	char	xdata	MultipleDealTpye;	
extern  unsigned 	char    xdata   ICHG_RawData_Ratio;
extern  unsigned 	char 	xdata  	IsInNosicValue;
extern  unsigned 	char 	xdata  	BigNosicCount; 					    //大数据干扰计数
extern 	TKSlideModulePCB  TKSlideModulePCBArray[];


//外部调用函数
extern	void  TouchKeyInit(void);									//触摸按键初始化
extern	void  TouchKeyRestart(void);								//启动下一轮触摸扫描

extern	unsigned long int  TouchKeyScan(void);					    	//触摸按键数据处理				

#endif 
