#ifndef JQCHECKER_H_
#define JQCHECKER_H_
#include "base/define.h"
#include "basechecker.h"




extern Checker_RunCfg_st checker_runcfg;




extern CheckerTask jqtaskArray[CHECKER_MAXID_COUNT];


/*
brief 准备测试用电压
@param 设置电压值，最多支持10个参数
*/
void JQ_Test_PowerPrapare(void);

/*
@brief 统计模块的上电充能，具有电压设置功能,采集档位 R10_0p1mA_1p6mA_UC
@param1 总线电压
@param2 充电结束时的AD值
@rtv1   返回总线电流低于设置AD值的时间
*/
void JQ_Test_PowerOn(void);
/*
@brief 扫描总线上的电子模块 1发
@param0 使能或失能通信反码信息采集
@param1 1 uid数据全0验证  其他不验证
*/
void JQ_Test_ScanUID(void);
/*
@brief 设置总线电压
@param1 总线电压
@rtv1   总线电压
*/
void JQ_Test_SetBusV(void);
/*
@brief 测量总线基本电压
@rtv1 返回总线电流 单位0.01uA
*/
void JQ_Test_BaseCur(void);
/*
@brief 读取芯片码
@rtv 芯片代码2字节
*/
void JQ_Test_ReadChipID(void);
/*
@brief OTP全0检测
@param0 UID区和密码区验证标志 1不验证 0 验证
@param1 延时区和保留区验证 1不严重 0验证，错误标记区
@param2 用户存储区
*/

void JQ_Test_OTPCheck(void);
/*
@brief 工厂成测标志检测
*/
void JQ_Test_FTCheck(void);
/*
@brief 读芯片状态
@param0 比较掩码，状态与掩码与等于掩码返回正常
*/
void JQ_Test_ReadState(void);
/*
@brief 写入OTP数据
@param0 2字节OTP数据
@param1 2字节OTP数据
*/
void JQ_Test_WriteUserInfo(void);
/*
@brief 充能统计
@param0 充电电流判线值,AD值
@param1 充电末电流结束值，单位0.1uA
@param2 充电最长时间,单位100ms
@param3 充电高压保持时间，单位0.1s
@rtv0 充能值 单位0.1ms
@rtv1 充末电流 单位0.1uA
@rtv2 充电最大电流 单位0.1Ma
@rtv3 充电抖动幅值 adv
*/

void JQ_Test_ChgEnergy(void);
/*
@brief DAC检测
@param  DAC检测的起始值
@param  DAC检测的结束值
*/
void JQ_Test_CheckDAC(void);
/*
@brief 延时
@pram1 延时时间 0.1S
@param 使能总线电流监控
@rtv1  波动AD值
*/
void JQ_Test_WaitDelay(void);
/*
@brief 写延时
@param 延时时间
*/
void JQ_Test_SetDelay(void);
/*
@brief 读延时
@param 延时时间
*/
void JQ_Test_ReadDelay(void);
/*
@brief 校准
@param1 校准周期
@param2 脉冲个数
*/
void JQ_Test_ClkTrim(void);
/*
@brief 放电
*/

void JQ_Test_Discharge(void);
/*
@brief 复位
*/
void JQ_Test_Reset(void);
/*
@brief 起爆使能
*/
void JQ_Test_BootEn(void);
/*
@brief 起爆充能
@param1 启动电流 adc
@param2 脉冲个数
@param3 延迟采集充能
@param4 使能电压波动监控
@rtv1 起爆后充电能量
@rtv2 起爆脉冲波动
@rtv3 起爆后充电电流
@rtv4 起爆后充电电流波动
*/

void JQ_Test_BoomEnergy(void);
/*
@brief 使能通讯末电流采样
*/
void JQ_Test_EnCommEndCur(void);
/*
@brief 获取通讯末电流采样，关闭电流采样
@rtv   返回上次采集的通讯末电流
*/
void JQ_Test_GetCommEndCur(void);
/*
@brief 关总线
*/
void JQ_Test_PowerOff(void);
/*
@brief 密码验证
@param0 密码源码验证使能
*/
void JQ_Test_PWCheck(void);
/*
@brief 写入OTP数据
@param0 OTP 地址
@param1 写入数据长度
@param2 2Bytes OTP数据
@param3 2Bytes OTP数据
@param4 2Bytes OTP数据
@param5 2Bytes OTP数据
*/
void JQ_Test_WriteOTP(void);
/*
@brief 读OTP
@param0 OTP地址
@param1 OTP 数量
*/

void JQ_Test_ReadOTP(void);
/*
@brief 清除起爆命令
*/
void JQ_Test_ClearBoom(void);
/*
@brief 缓存数据写入OTP数据
@param0 OTP 地址
@param1 缓存区起始
@param2 写入数据长度
*/
void JQ_Test_WriteBuf2OTP(void);
/*
@brief 写入三码数据
*/
void JQ_UID_PWD_Bind(void);
/*
@brief UID PWD 验证
*/
void JQ_Verify_UID_PWD(void);
/*
@breif 测量电容电压差
@param0 两次测量间隔 0.1s
@rtv0   电压差值
*/
void JQ_Test_CapVoltage(void);
/*
@breif OTP 读写使能
*/

void JQ_Test_EnOTPW(void);
/*
@brief 获取版本号

*/
void JQ_Test_ReadVersion(void);
/* 
@breif  写模块版本 前提是要使能OTP (ENWOTP)
@param0 模块版本号
*/
void JQ_Test_WriteVersion(void);
/*
@brief 写入OTP数据
@param0 OTP起始地址
@param1 缓存首地址
@param2 写入长度
*/
void JQ_Test_WriteFacBuff(void);
/*
@brief 验证OTP内部与缓存比较
@param0 OTP起始地址
@param1 缓存首地址
@param2 验证长度
*/
void JQ_Test_VerifyFacBuff(void);
#endif
