TS1060_main

2017-03-23  本文已影响23人  13aaec9fb31b

#ifndef _MAIN_H_

#define _MAIN_H_

#define int16 short

#define uint8 unsigned char

#define uint16 unsigned short

#define uint32 unsigned int

#define int32 int

#define uchar unsigned char

#ifdef __cplusplus

extern "C" {

#endif

/*****************以下extern声明函数需lib库调用者实现*******************************/

typedef struct{

/*

功能描述: SPI片选线拉低

*/

void (*Spi_CS_Set_Low)(void);

/*

功能描述: SPI片选线拉高

*/

void (*Spi_CS_Set_High)(void);

/*

功能描述: SPI传输函数,注意此函数不得操作SPI片选线CS的翻转

参数1:  入口参数,填入本次SPI传输master端发送数据,允许out=NULL,驱动自动发送0xff

参数2:  出口参数,用户返回本次SPI传输slave端返回的数据,允许in=NULL,底层不需要返回数据

参数3:  本次SPI传输的字节数

*/

int16 (*spi_transfer)(uint8 *out,uint8 *in,uint16 len);

/*

功能描述: 微秒延时函数

参数1:  入口参数,超时时间

*/

void (*us_delay)(uint32 time);

/*

功能描述: 合并应用层寄存器设置,一次性发往底层执行的专用接口

参数1: 执行动作的命令集

参数2: 执行动作的个数

*/

void (*TS_SpiCmdBuffToDriv)(uchar *pCmdStruct,uint16 uwLen);

/*

功能描述: Android导给LIB库,用来做DEBUG用

*/

void (*print_liblog)(char *pstr);

}FgpFuncImport_t;

/*****************以下函数为LIB库导出****************************************************************/

/*

系统初始化的时候调用即可,用于载入算法库

参数:      无

返回:      TA_SUCCESS

*/

int16 TS10xx_LibInit(FgpFuncImport_t *pFgpFuncImport);

/*

抓取一副指纹图像,并将图像存在LIB缓冲区里面

参数1:      入口参数,最大超时,以帧数计

返回:

TA_SUCCESS[抓取成功] TA_IMAGE_ERROR[指纹传感器硬件错误]

TA_TIME_OUT[超时] TA_RECAP_IMAGE[手指已存在]

*/

int16 TS10xx_CaptureImage(uint32 time_ov);

/*

迅速抓取一副指纹图像,并将图像存在LIB缓冲区里面

参数:      无

返回:

TA_SUCCESS[抓取成功] TA_IMAGE_ERROR[指纹传感器硬件错误]

*/

int16 TS1060_CaptureImgFast(void);

/*

每次进入注册流程,需要重新调用此函数,用来初始化算法资源

参数:      无

返回:      TA_SUCCESS

*/

int16 TS10xx_EnrollStart(void);

/*

注册时,每次按压调用此函数用于提取特征值,注意,特征值会留在后面一次性返回

返回:      TA_SUCCESS[成功注册一次]

EM_EMPTY_IMAGE[图像不合格,重采]

EM_FUNCTION_FAILED[程序调用顺序错误,仅调试]

*/

int16 TS10xx_EnrollImages(void);

/*

注册时,每次TS10xx_EnrollImages后调用此函数以判断信息录入的丰富程度,当>=100时表示注册到了足够信息

参数1:      出口参数,用于返回最后一次Enroll进去的图像和已录入图像的重叠率,0-100计,越大重叠率越高

返回:      EM_FUNCTION_FAILED[程序调用顺序错误,仅调试]

>=0 信息丰富程度

*/

int16 TS10xx_GetEnrollProcess(uint16 *puwMapped);

/*

当TS10xx_GetEnrollProcess的返回值>=100时,表面注册信息足够,方可调用此函数用于返回最终特征值占用的空间大小

返回:

EM_FUNCTION_FAILED[程序调用顺序错误,仅调试]

TA_INFO_NOT_ENOUGH[TS10x/*x_GetEnrollProcess返回小于100,请继续TS10xx_EnrollImages,仅调试]

TA_REENROLL[注册失败,需要重新注册]

其他[注册成功,可调用Finish函数获取最终的特征值]

*/

功能描述: SPI片选线拉低/*

功能描述: SPI片选线拉低

*/

*/

int32 TS10xx_GetEnrollFeaSize(void);

/*

当TS10xx_GetEnrollFeaSize的返回值>=10000时,表面注册成功

/*参数1:  入口+出口参数,应用层读取的已注册特征值缓冲区,返回添加后的特征值

参数2:  入口参数,应用层读取的已注册特征值长度

返回:

EM_FUNCTION_FAILED[程序调用顺序错误,仅调试]

TA_INFO_NOT_ENOUGH[TS10xx_GetEnrollProcess返回小于100,请继续TS10xx_EnrollImages,仅调试]

TA_SUCCESS[获取成功]

*/

功能描述: SPI片选线拉低

*/

int16 TS10xx_StoreEnrollFea(uint8 *fea,uint32 uiFeaLen);

/*

将最后一次抓取的图像和所有用户比对

参数1:  入口参数,应用层读取的已注册特征值缓冲区

参数2:  入口参数,应用层读取的已注册特征值长度

返回:

EM_FUNCTION_FAILED[程序调用顺序错误,仅调试]

EM_EMPTY_IMAGE[最后一次获取的图像质量不合格,重新采集]

>=800[比对成功] 注意,比对成功后可回写fea文件,以达到自学习目的,自学习后fea的长度不变。

0-799[失败,重新采集]

*/

int16 TS10xx_MatchAll(uint8 *fea,uint32 uiFeaLen);

/*

删除特征值数据库中指定用户

参数1:  入口+出口参数,特征值文件输入,删除成功后返回删除了指定用户之后的特征值

参数2:  入口+出口参数,特征值文件长度输入,删除成功后返回删除了指定用户之后的特征值长度

参数3:  入口参数,输入用户编号,从1开始计

返回值: TA_SUCCESS[成功] TA_FAIL[失败]

*/

int16 TS10xx_DeleteUser(uint8 *fea,uint32 *puiFeaLen,uint32 uiIndx);

/*

提取最后一次capture成功后留存的原始图像

参数1:  出口参数,用于返回获取图像的数据

参数2:  出口参数,用于返回获取图像的宽度值

参数3:  出口参数,用于返回获取图像的高度值

返回值: TA_SUCCESS[成功]

*/

int16 TS10xx_GetLastRawImage(uint8 *pucImg,uint16 *puwWidth,uint16 *puwHeight);

/*

功能描述: 在调用TS10xx_CaptureImage等待用户输入指纹的过程中,异步的让TS10xx_CaptureImage退出

*/

void TS10xx_SetBreakFlag(void);

/*

功能描述: 在调用TS1060_read_image前初始化传感器,让传感器自校准

*/

/*int16 TS1060_read_image_init(void);

功能描述: SPI片选线拉低

*/

/*

功能描述:  获取当前图像

参数1:      入口参数,图像缓冲区

返回:      0则调用成功,其他失败

示例:

result=TS1060_read_image_init();

if(result!=0)

报错,返回

while(1)

{

if(TS1060_read_image(IMG_ADDR)==0)

显示图像

}

*/

int16 TS1060_read_image(uint8 *buff);

/*抓图显示*/

int16 TS1060_capture_image_for_display(uint8 *buff,uint32 uiTimeOut);

/*功能描述: SPI通讯测试函数,TS1060_Test返回0表示传感器已经连上,否则表示通讯不上*/

int16 TS1060_Test(void);

/*

功能描述: 进入睡眠模式,同时启动手指判断,手指检测到后会在RESET上检测到一个上升沿跳变

返回:  TA_SUCCESS 设置成功,其他失败

*/

int16 TS1060_SetDeepSleep(void);

/*

功能描述: 系统在进入休眠探测后,如果RESET上升沿调高,那么需要调用TS1060_ExitSleep退出当前探测状态

返回:  TA_SUCCESS 退出成功,其他失败

*/

int16 TS1060_ExitSleep(void);

/*

功能描述: 校准传感器

参数1:  出口参数,用于返回校准数据,大小建议设置为4KByte

返回:  TA_SUCCESS 校准成功,其他失败

*/

int16 A083_Static_Calibrate(uint8 *ucCliData);

/*

功能描述: 每次调用前加载校准数据

参数1:  入口参数,用于给驱动加载校准数据

返回:  TA_SUCCESS 加载成功,其他失败

*/

int16 Load_A083_Static_CalibrateData(uint8 *ucCliData);

//调用出厂调用获取校验的数据A083_Static_Calibrate,每次采图时都要调用Load_A083_Static_CalibrateData

#ifdef __cplusplus

}

#endif

#endif

上一篇下一篇

猜你喜欢

热点阅读