添加web

This commit is contained in:
andy
2024-01-14 22:38:04 +08:00
parent e44d5716cb
commit 5b3786dd36
154 changed files with 28778 additions and 0 deletions

View File

@@ -0,0 +1,126 @@
var ChecekerCurECharts_View_ID = -1;
var CheckerCurEcharts = null;
var CheckerCurOption = {
animation: false,
grid: {
top: 40,
left: 50,
right: 40,
bottom: 50
},
xAxis: {
name: '轮次',
minorTick: {
show: true
},
minorSplitLine: {
show: true
}
},
yAxis: {
name: '电流0.1uA',
minorTick: {
show: true
},
minorSplitLine: {
show: true
}
},
dataZoom: [
{
show: true,
type: 'inside',
filterMode: 'none',
xAxisIndex: [0],
},{
show: true,
type: 'slider',
filterMode: 'none',
xAxisIndex: [0],
},
{
show: true,
type: 'inside',
filterMode: 'none',
yAxisIndex: [0],
},{
show: true,
type: 'slider',
filterMode: 'none',
yAxisIndex: [0],
}
],
tooltip: {
trigger: 'axis'
},
series: [
{
type: 'line',
showSymbol: false,
clip: true,
smooth: true,
data: [],
}
],
};
var CheckerCurData = [];
function CheckerShowCurEcharts(cur)
{
if(ChecekerCurECharts_View_ID < 0)
{
CheckerCurData = [[1,cur]];
CheckerCurOption.series.data = CheckerCurData;
//CheckerCurEcharts.setOption(CheckerCurOption);
ChecekerCurECharts_View_ID = layer.open({
title:'电流趋势',
type: 1,
shade: false, // 不显示遮罩
content: $('#checker_Curgraph_Mes'), // 捕获的元素
area: 'auto',
end: function(){
ChecekerCurECharts_View_ID = -1
},
success:function(){
if(CheckerCurEcharts == null)
{
var CheckerCurEcharts_dom = document.getElementById('checker_cur_echarts');
CheckerCurEcharts = echarts.init(CheckerCurEcharts_dom, "walden");
}else{
CheckerCurEcharts.clear();
}
CheckerCurOption.series.data = CheckerCurData;
CheckerCurEcharts.setOption(CheckerCurOption);
CheckerCurEcharts.resize();
},
resizing:function(){
if(CheckerCurEcharts != null)
{
CheckerCurEcharts.resize();
}
},
});
}else{
var item = [CheckerCurData.length+1,cur];
CheckerCurData.push(item);
CheckerCurEcharts.setOption({
series: [
{
data: CheckerCurData,
}
]
});
}
}

View File

@@ -0,0 +1,480 @@
var EWCheckerTaskInfo=[
{
TaskID:0,
TaskName:"电源准备",
TaskBrief:"检测前校准检测过程中需要使用的电压便于检测过程中快速输出电压。电压范围55~270",
ParamInfo:["预设电压1","预设电压2","预设电压3","预设电压4","预设电压5","预设电压6","预设电压7","预设电压8","预设电压9","预设电压10",],
ReturnInfo:[],
CommTestCmd:"PowerPrapare",
},
{
TaskID:1,
TaskName:"延时等待",
TaskBrief:"延时流程,同时可以启动总线电流监测 设置单位0.1S。波动DAC换算 Vad/4096*3.3/100/11",
ParamInfo:["延时时间0.1s","使1/失0电流监控"],
ReturnInfo:["电流波动DAC"],
CommTestCmd:"WaitDelay",
},
{
TaskID:2,
TaskName:"桥丝电阻测试",
TaskBrief:"测量桥丝阻值。可配置测量模式 0 4线制 1 2线1-4通2 2线2-3通",
ParamInfo:["测量模式"],
ReturnInfo:["电阻0.01Ω"],
CommTestCmd:"ResistorSample",
},
{
TaskID:3,
TaskName:"上电充能",
TaskBrief:"统计模块的上电充能,具有电压设置功能,采集档位 R10_0p1mA_1p6mA_UC",
ParamInfo:["总线电压0.1V","超时时间 0.1ms","充电结束时的AD值"],
ReturnInfo:["总线电压0.1V","总线电流低于设置AD值的时间"],
CommTestCmd:"ResistorSample",
},
{
TaskID:4,
TaskName:"设置总线电压",
TaskBrief:"设置总线电压",
ParamInfo:["总线电压"],
ReturnInfo:["总线电压"],
CommTestCmd:"ResistorSample",
},
{
TaskID:5,
TaskName:"获取总线电流",
TaskBrief:"测量总线基本电流",
ParamInfo:[],
ReturnInfo:["总线正电流 0.1uA","总线反电流 0.1uA"],
CommTestCmd:"ResistorSample",
},
{
TaskID:6,
TaskName:"使能MTP",
TaskBrief:"使能MTP擦写0失能/1使能",
ParamInfo:["是否使能"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:7,
TaskName:"扫描UID",
TaskBrief:"扫描总线上的电子模块",
ParamInfo:["UID长度","是否使能UID对比","是否使能反馈监控"],
ReturnInfo:["最大反馈电流","最大反馈时间","最小反馈电流","最小反馈时间","UID 0~1","UID 2~3","UID 4~5","UID 6~7"],
CommTestCmd:"ResistorSample",
},
{
TaskID:8,
TaskName:"写配置参数",
TaskBrief:"写模块运行时的配置参数",
ParamInfo:["起爆MOS选择 0内部/1外部","通信信号源 0:rxh 1:rxl 2:rx","通信模式 1:差分 2:单端","起爆日志标记周期 0:不标记 1:5ms 2:10ms 3:20ms 4:50ms 5:10ms 6:150ms 7:200ms","UID长度","密码长度","模块版本"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:9,
TaskName:"检测配置参数",
TaskBrief:"检测模块运行时的配置参数",
ParamInfo:["起爆MOS选择 0内部/1外部","通信信号源 0:rxh 1:rxl 2:rx","通信模式 1:差分 2:单端","起爆日志标记周期 0:不标记 1:5ms 2:10ms 3:20ms 4:50ms 5:10ms 6:150ms 7:200ms","UID长度","密码长度","模块版本"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:10,
TaskName:"验证配置",
TaskBrief:"验证配置",
ParamInfo:["掩码低2byte","掩码高2byte","比较低2byte","比较高2byte"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:11,
TaskName:"模拟注码",
TaskBrief:"写入测试用的UID和密码此任务之前要先写配置参数",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:12,
TaskName:"模拟注码验证",
TaskBrief:"写入测试用的UID和密码此任务之前要先写三码数据",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:13,
TaskName:"芯片自检",
TaskBrief:"芯片自检",
ParamInfo:["自检模式","自检时间ms"],
ReturnInfo:["自检模式0x08的回读数据"],
CommTestCmd:"ResistorSample",
},
{
TaskID:14,
TaskName:"状态检测",
TaskBrief:"状态码比较",
ParamInfo:["掩码参数","比较结果值"],
ReturnInfo:["状态值低2byte","状态值高2byte"],
CommTestCmd:"ResistorSample",
},
{
TaskID:15,
TaskName:"充电",
TaskBrief:"充电",
ParamInfo:["充电模式","充电分组"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:16,
TaskName:"放电",
TaskBrief:"放电",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:17,
TaskName:"写延时",
TaskBrief:"写延时",
ParamInfo:["延时ms"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:18,
TaskName:"读延时",
TaskBrief:"读延时",
ParamInfo:[],
ReturnInfo:["延时值ms"],
CommTestCmd:"ResistorSample",
},
{
TaskID:19,
TaskName:"时钟校准",
TaskBrief:"时钟校准",
ParamInfo:["校准周期ms","校准脉冲数"],
ReturnInfo:["校准值真实值的4倍"],
CommTestCmd:"ResistorSample",
},
{
TaskID:20,
TaskName:"设置通信地址",
TaskBrief:"设置通信地址",
ParamInfo:["通信地址","设置模式 0:系统 1:UID配置地址 2:快速配置","延时"],
ReturnInfo:["延时"],
CommTestCmd:"ResistorSample",
},
{
TaskID:21,
TaskName:"状态巡检",
TaskBrief:"测试系统只能巡检一个地址起始地址应该大于1结束地址小于1024,两个地址差值应该小于256",
ParamInfo:["起始地址","结束地址","状态码"],
ReturnInfo:["地址结果"],
CommTestCmd:"ResistorSample",
},
{
TaskID:22,
TaskName:"起爆使能",
TaskBrief:"起爆使能",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:23,
TaskName:"起爆检测",
TaskBrief:"起爆",
ParamInfo:["采样超时0.01ms","起爆电流AD","延迟采样ms"],
ReturnInfo:["等待时间 0.01ms"],
CommTestCmd:"ResistorSample",
},
{
TaskID:24,
TaskName:"写入缓存数据",
TaskBrief:"写入缓存数据",
ParamInfo:["MTP地址","缓存地址","写入字节数"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:25,
TaskName:"验证缓存数据",
TaskBrief:"验证缓存数据",
ParamInfo:["MTP地址","缓存地址","写入字节数"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:26,
TaskName:"关总线",
TaskBrief:"关总线",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:27,
TaskName:"升级",
TaskBrief:"EW模块升级 升级模式 0:无app时升级 1:无条件升级",
ParamInfo:["充电时间 ms","app启动时间 ms","总线关断时间 ms","升级模式"],
ReturnInfo:["错误代码"],
CommTestCmd:"ResistorSample",
},
{
TaskID:28,
TaskName:"充能统计",
TaskBrief:"充能统计",
ParamInfo:["充电挡位","充电超时0.1us","充电电流判线 AD值","充末电流结束值 0.1uA","充电最长时间 0.1s","充电高压保持时间 0.1s"],
ReturnInfo:["充能值 0.1ms","充末电流 0.1uA","充电最大电流 0.1mA","充电抖动幅值 adv"],
CommTestCmd:"ResistorSample",
},
{
TaskID:29,
TaskName:"异常判定",
TaskBrief:"对已检项目进行异常判定,如果异常判定结果不在过滤范围内,则此任务失败",
ParamInfo:["过滤值1","过滤值2","过滤值3","过滤值4","过滤值5","过滤值6","过滤值7","过滤值8","过滤值9","过滤值10",],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:30,
TaskName:"重新执行任务",
TaskBrief:"重新执行指定序号的任务,本次执行会覆盖之前的结果",
ParamInfo:["需要重新执行的任务序号"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:31,
TaskName:"写三码数据",
TaskBrief:"写入缓存的三码数据,此任务之前要先写配置参数",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:32,
TaskName:"校验三码数据",
TaskBrief:"验证写入的三码数据,此任务之前要先写三码数据",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:33,
TaskName:"配置三码数据到小板",
TaskBrief:"先把三码数据写入小板缓存,然后才能使用三码绑定任务",
ParamInfo:["uid,pwd长度","数据0,1","数据2,3","数据4,5","数据6,7","数据8,9","数据10,11","数据12,13","数据14,15","数据16,17",],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:34,
TaskName:"任务插槽",
TaskBrief:"程序可以动态添加要执行的任务,此任务将执行所有序号匹配的动态任务",
ParamInfo:["插槽序号"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:35,
TaskName:"读取MTP",
TaskBrief:"从指定mtp地址读取数据",
ParamInfo:["mtp地址(4byte寻址)","读取长度(byte)",],
ReturnInfo:["数据0,1","数据2,3","数据4,5","数据6,7","数据8,9","数据10,11","数据12,13","数据14,15",],
CommTestCmd:"ResistorSample",
},
{
TaskID:36,
TaskName:"写入MTP",
TaskBrief:"写入数据到指定mtp地址",
ParamInfo:["mtp地址(4byte寻址)","写入长度(byte)","数据0,1","数据2,3","数据4,5","数据6,7","数据8,9","数据10,11","数据12,13","数据14,15",],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:37,
TaskName:"设置电阻校准值",
TaskBrief:"电阻测量的校准值,不建议将此任务添加进方案中",
ParamInfo:["电阻校准值"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:38,
TaskName:"读取流水号",
TaskBrief:"读取27bit的流水号数据对比失败则此任务失败",
ParamInfo:["要校验的流水号低2字节","要校验的流水号高2字节"],
ReturnInfo:["读取的流水号低2字节","读取的流水号高2字节"],
CommTestCmd:"ResistorSample",
},
{
TaskID:39,
TaskName:"写入流水号",
TaskBrief:"采用读改写的方式写入27bit的流水号数据",
ParamInfo:["要写入的流水号低2字节","要写入的流水号高2字节"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:40,
TaskName:"写固定延时",
TaskBrief:"写入延时并掉电保存,需要复位后刷新",
ParamInfo:["延时值ms"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
{
TaskID:41,
TaskName:"复位",
TaskBrief:"0复位至bootloader1复位至app",
ParamInfo:["复位类型"],
ReturnInfo:[],
CommTestCmd:"ResistorSample",
},
];
EW_ErrorInfo={
//错误描述
//主错误段
MajorErrInfo:[
{Info:"执行成功",MajorErrCode:0,SubErrCode:[]},
{Info:"检测器异常",MajorErrCode:1,SubErrCode:[21,23,254]},
{Info:"主电容异常",MajorErrCode:2,SubErrCode:[30,31,32,33,34,35,42]},
{Info:"接触异常",MajorErrCode:3,SubErrCode:[27]},
{Info:"桥丝阻值异常",MajorErrCode:4,SubErrCode:[30,41,42,51]},
{Info:"芯片异常",MajorErrCode:5,SubErrCode:[22,24,25,26,27,28,29,30,32,33,35,36,37,38,39,40,41,42,43,44,45,52,53,54]},
{Info:"判定任务缺失",MajorErrCode:6,SubErrCode:[212]},
{Info:"过流",MajorErrCode:7,SubErrCode:[]},
{Info:"短路",MajorErrCode:8,SubErrCode:[]},
{Info:"未执行槽任务",MajorErrCode:9,SubErrCode:[]},
{Info:"槽任务参数错误",MajorErrCode:10,SubErrCode:[]},
{Info:"其他异常",MajorErrCode:20,SubErrCode:[255,208,209,210,211,212,213]},
],//需要根据返回参数进行判断]
SubErrInfo:[
//详细错误段
{Info:"无异常",ErrCode:0,
ErrFac:["当检测任务不产生异常时使用此错误码"]},
{Info:"预设电压异常",ErrCode:21,
ErrFac:["1.检测小板电压调节失效,存在无法设置的电压"]},
{Info:"上电充能错误",ErrCode:22,
ErrFac:["1.检测器输出电压异常","2.模块上电容性负载大","3.模块基本电路异常"],
},
{Info:"电压设置异常",ErrCode:23,
ErrFac:["1.检测小板输出电压异常","2.外部短路,导致过流保护"]
},
{Info:"UID扫描错误",ErrCode:24,
ErrFac:["1.芯片通信异常","2.OTP中UID非0(启用了UID全0检测)"]},
{Info:"OTP错误",ErrCode:25,
ErrFac:["1.OTP数据非全0(启用了全0检测)"]
},
{Info:"通讯电流错误",ErrCode:26,
ErrFac:["1.芯片反码电流异常"]
},
{Info:"基本电流错误",ErrCode:27,
ErrFac:["1.芯片的静态功耗异常","2.检测器输出电压异常"]
},
{Info:"读取芯片ID错误",ErrCode:28,
ErrFac:["1.通信错误"]
},
{Info:"密码验证错误",ErrCode:29,
ErrFac:["1.芯片异常,内部密码与严重密码不一致"]
},
{Info:"DAC比较错误",ErrCode:30,
ErrFac:["1.芯片异常检测DAC不准","2.电容端电压异常,不符合检测要求","3.高压或充电降压通信异常","4.芯片充电漏流偏大"]
},
{Info:"高压充能错误",ErrCode:31,
ErrFac:["1.电容漏流","2.电容容值偏低或偏大","3.芯片充电漏流,充电回路或起爆回路","4.芯片高压基本电流偏大","5.芯片异常,充电电流偏小"]
},
{Info:"充电电流错误",ErrCode:32,
ErrFac:["1.芯片异常,充电电流符合指标"]
},
{Info:"高压充末电流错误",ErrCode:33,
ErrFac:["1.电容漏流","2.芯片充电回路漏流或起爆回路漏流","3.芯片高压基本电流偏大"],
},
{Info:"低压充电能量错误",ErrCode:34,
ErrFac:["1.电容漏流","2.电容容值偏低或偏大","3.芯片充电漏流,充电回路或起爆回路","4.芯片低压基本电流偏大","5.芯片异常,充电电流偏小","6.高压充电后不能放电"],
},
{Info:"低压充末电流错误",ErrCode:35,
ErrFac:["1.电容漏流","2.芯片充电回路漏流或起爆回路漏流","3.芯片基本功耗偏大"],
},
{Info:"写延时错误",ErrCode:36,
ErrFac:["1.芯片设置延时功能异常","2.通信异常"]
},
{Info:"读延时错误",ErrCode:37,
ErrFac:["1.芯片读延时功能异常","2.通信异常"]
},
{Info:"芯片程测错误",ErrCode:38,
ErrFac:["1.芯片成测标记错误非全FFFF","2.通信异常"]
},
{Info:"时钟校准错误",ErrCode:39,
ErrFac:["1.检测器命令执行异常"],
},
{Info:"写工厂信息错误",ErrCode:40,
ErrFac:["1.OTP数据写入出错","2.通信异常"]
},
{Info:"模拟起爆错误",ErrCode:41,
ErrFac:["1.发送起爆指令后无应答"]},
{Info:"芯片状态码异常",ErrCode:42,
ErrFac:["1.状态码与设置的掩码不匹配","2.通讯异常"]
},
{Info:"通信电流错误",ErrCode:43,
ErrFac:["1.芯片异常","2.检测器异常"],
},
{Info:"反码时长错误",ErrCode:44,
ErrFac:["1.芯片异常,通讯无反码","2.通讯反码电流低,不能识别"]
},
{Info:"复位放电错误",ErrCode:45,
ErrFac:["1.高压充电后降压通讯异常","2.芯片复位不能正常放电","3.芯片异常,指令不执行"],
},
{Info:"桥丝阻值异常",ErrCode:51,
ErrFac:["1.桥丝电阻不符合标准","2.测试设备校准偏差"],
},
{Info:"三码绑定失败",ErrCode:52,
ErrFac:["1.模块已注过码","2.芯片异常,无法注码"],
},
{Info:"三码验证失败",ErrCode:53,
ErrFac:["1.芯片异常,注码后验证失败"],
},
{Info:"升级失败",ErrCode:54,
ErrFac:["1.芯片异常","2.通信异常","3.模块程序执行异常"],
},
{Info:"通信超时",ErrCode:208,
ErrFac:["1.小板状态异常,不响应通信指令","2.小板与主板之间通信异常"],
},
{Info:"脚本执行失败",ErrCode:209,
ErrFac:["1.脚本功能异常","2.配置文件配置为不使用脚本"],
},
{Info:"数据长度与方案不符",ErrCode:210,
ErrFac:["1.小板和主板使用的方案不同,更新方案即可","2.脚本功能异常"],
},
{Info:"方案ID不符",ErrCode:211,
ErrFac:["1.使用的方案和脚本适配的方案不适配,更换相应的脚本或者方案即可"],
},
{Info:"检测项目不足",ErrCode:212,
ErrFac:["1.方案中未执行异常判定所需的任务,无法判定异常","2.脚本功能异常"],
},
{Info:"数据不合规",ErrCode:213,
ErrFac:["1.用于判定的数据不具有正常的电性能检测规律,模块检测时不应出现此错误","2.脚本功能异常",
"3.方案中相关异常判定参数设置不合理","4.小板和主板使用的方案不同但数据返回长度相同,导致错误解释了返回数据的含义"],
},
{Info:"检测器执行异常",ErrCode:254,
ErrFac:["广播类命令执行错误"],
},
{Info:"返回参数判断",ErrCode:255,
ErrFac:[],
},//需要通过指标判断
],
};
var EW_Product_Names=["EJ01","EJ03","EJ04","EJ05","EJ06","EJ09","EJ10","EQ09"];

View File

@@ -0,0 +1,490 @@
var JQCheckerTaskInfo=[
{
TaskID: 0,
TaskName: "电源准备",
TaskBrief: "检测前校准检测过程中需要使用的电压便于检测过程中快速输出电压。电压范围55~270",
ParamInfo: ["预设电压1", "预设电压2", "预设电压3", "预设电压4", "预设电压5", "预设电压6", "预设电压7", "预设电压8", "预设电压9", "预设电压10",],
ReturnInfo: [],
CommTestCmd: "PowerPrapare",
}, {
TaskID: 1,
TaskName: "上电充能",
TaskBrief: "统计上电瞬间,模块功耗。电流计数方式 A = 3.3*ADC/4096/510/11",
ParamInfo: ["总线电压", "采样超时0.1ms", "计时启停ADC"],
ReturnInfo: ["总线电压", "大于启停的时间"],
CommTestCmd: "PowerOn",
}, {
TaskID: 2,
TaskName: "设置总线电压",
TaskBrief: "设置总线电压为预设电压中的值",
ParamInfo: ["总线电压"],
ReturnInfo: ["总线电压"],
CommTestCmd: "SetBusV",
}, {
TaskID: 3,
TaskName: "获取总线电流",
TaskBrief: "获取总线正反两个极性电流",
ParamInfo: [],
ReturnInfo: ["总线正电流", "总线反电流"],
CommTestCmd: "BaseCur",
}, {
TaskID: 4,
TaskName: "扫描UID",
TaskBrief: "芯片通信测试,分配网络地址。芯片复位后,第一条通信测试命令",
ParamInfo: ["使1/失0反码采集", "使0/失1UID全0验证"],
ReturnInfo: ["最大反馈电流", "最大反馈时间", "最小反馈电流", "最小反馈时间", "1字节", "3字节", "5字节", "7字节"],
CommTestCmd: "ScanUID",
}, {
TaskID: 5,
TaskName: "密码验证",
TaskBrief: "芯片密码验证",
ParamInfo: ["0码/1原码验证"],
ReturnInfo: [],
CommTestCmd: "PWCheck",
}, {
TaskID: 6,
TaskName: "读取芯片代码",
TaskBrief: "读取芯片代码",
ParamInfo: [],
ReturnInfo: ["2字节代码"],
CommTestCmd: "ReadChipID",
}, {
TaskID: 7,
TaskName: "OTP检测",
TaskBrief: "对OTP数据进行检测,可屏蔽检测区域",
ParamInfo: ["1关/0检UID密码为0", "1关/0检延时保留区为0", "1关/0检用户区为0"],
ReturnInfo: [],
CommTestCmd: "OTPCheck",
}, {
TaskID: 8,
TaskName: "工厂程测检测",
TaskBrief: "芯片出厂检测会在24 25区写0xFF",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "FTCheck",
}, {
TaskID: 9,
TaskName: "读芯片状态",
TaskBrief: "将芯片状态值与参数值进行算术与操作,等于参数值表示执行成功",
ParamInfo: ["状态值掩码"],
ReturnInfo: [],
CommTestCmd: "ReadState",
}, {
TaskID: 10,
TaskName: "写工厂信息",
TaskBrief: "在OTP 20~23区间写入工厂数据",
ParamInfo: ["2字节数据", "2字节数据"],
ReturnInfo: [],
CommTestCmd: "WriteUserInfo",
}, {
TaskID: 11,
TaskName: "充能统计",
TaskBrief: "充能统会发送充电命令,计电流判线设定值,从上升到下降的时间。\
同时记录充过程中最大电流。以及结束高压充电的总线电流和充电电流监控时间。\
充电电流判线计数公式 电流=AD/4093*3.3/100/11",
ParamInfo: ["超时0.1us", "电流判线AD", "充电结束值0.1uA", "充电超时0.1S", "电流监控0.1S"],
ReturnInfo: ["充能值0.1ms", "充末电流0.1uA", "最大充电电流0.1mA", "充电抖动ADV"],
CommTestCmd: "ChgEnergy",
}, {
TaskID: 12,
TaskName: "充电电压检测",
TaskBrief: "由高向低扫描芯片电压检测值,扫描失败返回值为0",
ParamInfo: ["起始DAC", "结束DAC"],
ReturnInfo: ["扫描通过的DAC"],
CommTestCmd: "CheckDAC",
}, {
TaskID: 13,
TaskName: "延时等待",
TaskBrief: "延时流程,同时可以启动总线电流监测 设置单位0.1S。波动DAC换算 Vad/4096*3.3/100/11",
ParamInfo: ["延时时间", "使1/失0电流监控"],
ReturnInfo: ["电流波动DAC"],
CommTestCmd: "WaitDelay",
}, {
TaskID: 14,
TaskName: "写延时",
TaskBrief: "向延时寄存器写入数据",
ParamInfo: ["延时"],
ReturnInfo: [],
CommTestCmd: "SetDelay",
}, {
TaskID: 15,
TaskName: "读延时",
TaskBrief: "读延时寄存器",
ParamInfo: [],
ReturnInfo: ["延时值"],
CommTestCmd: "ReadDelay",
}, {
TaskID: 16,
TaskName: "时钟校准",
TaskBrief: "发送校准脉冲",
ParamInfo: ["脉冲周期", "脉冲个数"],
ReturnInfo: [],
CommTestCmd: "ClkTrim",
}, {
TaskID: 17,
TaskName: "放电",
TaskBrief: "发送放电命令,使能快速放电还需要配置放电时间。快速放电仅JQ2012才有。放电时间单位0.1S该值应该大于0快速放电才有效",
ParamInfo: ["0/1使能快速", "快速时间"],
ReturnInfo: [],
CommTestCmd: "Discharge",
}, {
TaskID: 18,
TaskName: "复位放电",
TaskBrief: "执行复位和放电,并检测复测成功",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "Reset",
}, {
TaskID: 19,
TaskName: "起爆使能",
TaskBrief: "发送起爆使能命令",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "BootEn",
}, {
TaskID: 20,
TaskName: "起爆充能",
TaskBrief: "发送起爆命令后检测起爆完成后对电容的充电。判断电流上升沿到下降沿的时间。充能电流ADC/4096*3.3/100/21",
ParamInfo: ["电流判线AD", "起爆脉冲个数", "延时采集时间"],
ReturnInfo: ["充能时间", "充电电流", "充电电流波动"],
CommTestCmd: "BoomEnergy",
}, {
TaskID: 21,
TaskName: "使能通讯末电流采集",
TaskBrief: "启动命令通讯结束后电流采集与获取通讯电流配合。两个任务间应该避免充电、OTP写和起爆操作",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "EnCommEndCur",
}, {
TaskID: 22,
TaskName: "获取通讯末电流",
TaskBrief: "获取通讯电流配合与使能通讯末电流采集,获取两个任务间,通讯完成后的最大电流",
ParamInfo: [],
ReturnInfo: ["通讯末电流"],
CommTestCmd: "GetCommEndCur",
}, {
TaskID: 23,
TaskName: "写OTP数据",
TaskBrief: "向芯片OTP中写入数据",
ParamInfo: ["OTP地址", "数据长度", "1数据", "3数据", "5数据", "7数据"],
ReturnInfo: [],
CommTestCmd: "WriteOTP",
}, {
TaskID: 24,
TaskName: "读OTP数据",
TaskBrief: "从芯片OTP中读取数据",
ParamInfo: ["OTP地址", "数据长度"],
ReturnInfo: ["nBytesOTP数据"],
CommTestCmd: "ReadOTP",
}, {
TaskID: 25,
TaskName: "清除起爆命令",
TaskBrief: "起爆脉冲重新计算",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "ClearBoom",
}, {
TaskID: 26,
TaskName: "关总线",
TaskBrief: "关闭总线输出",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "PowerOff",
}, {
TaskID: 27,
TaskName: "缓存写入OTP",
TaskBrief: "缓存数据写入OTP数据",
ParamInfo: ["OTP 地址", "缓存区起始", "写入数据长度"],
ReturnInfo: [],
CommTestCmd: "PowerOff",
},
{
TaskID: 28,
TaskName: "三码绑定",
TaskBrief: "注码检测指令使用,直接使用命令中的三码数据",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "BindUIDPWD",
}, {
TaskID: 29,
TaskName: "验证三码",
TaskBrief: "验证芯片三码数据,直接使用命令中的三码数据",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "VerifyUIDPWD",
}, {
TaskID: 30,
TaskName: "电容压差",
TaskBrief: "充电后,总线断电测试电容给芯片供电,评估芯片延时功耗",
ParamInfo: ["断电时间0.1S"],
ReturnInfo: ["压差mV"],
CommTestCmd: "CapVoltage",
}, {
TaskID: 31,
TaskName: "桥丝电阻测试",
TaskBrief: "测量桥丝阻值。可配置测量模式 0 4线制 1 2线1-4通2 2线2-3通",
ParamInfo: ["测量模式"],
ReturnInfo: ["电阻0.01Ω"],
CommTestCmd: "ResistorSample",
}, {
TaskID: 32,
TaskName: "使能OTP",
TaskBrief: "OTP使能命令",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "EnOTPW",
}, {
TaskID: 33,
TaskName: "写版本",
TaskBrief: "写入模块版本号到OTP 20地址该值应该小于32",
ParamInfo: ["版本号"],
ReturnInfo: [],
CommTestCmd: "WriteVersion",
}, {
TaskID: 34,
TaskName: "读版本",
TaskBrief: "获取写入的版本号",
ParamInfo: [],
ReturnInfo: ["版本号"],
CommTestCmd: "ReadVersion",
}, {
TaskID: 35,
TaskName: "写缓存数据",
TaskBrief: "将系统缓存区的数据写入到OTP中主要用于写工厂信息",
ParamInfo: ["OTP地址", "缓存地址", "写入长度"],
ReturnInfo: [],
CommTestCmd: "WriteFacBuff",
}, {
TaskID: 36,
TaskName: "验证缓存数据",
TaskBrief: "对比缓存数据与OTP数据",
ParamInfo: ["OTP地址", "缓存地址", "验证长度"],
ReturnInfo: [],
CommTestCmd: "VerifyFacBuff",
},
{
TaskID: 37,
TaskName: "验证延时时间",
TaskBrief: "验证延时和otp是否相等",
ParamInfo: [],
ReturnInfo: [],
CommTestCmd: "VerifyFacBuff",
},
{
TaskID: 38,
TaskName: "切换总线极性",
TaskBrief: "反复切换总线极性,输出最后一次极性切换后的电流",
ParamInfo: ["间隔时间ms", "切换次数"],
ReturnInfo: [],
CommTestCmd: "VerifyFacBuff",
},
{
TaskID: 39,
TaskName: "异常判定",
TaskBrief: "对已检项目进行异常判定,如果异常判定结果不在过滤范围内,则此任务失败",
ParamInfo: ["过滤值1", "过滤值2", "过滤值3", "过滤值4", "过滤值5", "过滤值6", "过滤值7", "过滤值8", "过滤值9", "过滤值10",],
ReturnInfo: [],
CommTestCmd: "ResistorSample",
},
{
TaskID: 40,
TaskName: "重新执行任务",
TaskBrief: "重新执行指定序号的任务,本次执行会覆盖之前的结果",
ParamInfo: ["需要重新执行的任务序号"],
ReturnInfo: [],
CommTestCmd: "ResistorSample",
},
{
TaskID: 41,
TaskName: "配置三码数据到小板",
TaskBrief: "先把三码数据写入小板缓存,然后才能使用三码绑定任务",
ParamInfo: ["uid,pwd长度", "数据0,1", "数据2,3", "数据4,5", "数据6,7", "数据8,9", "数据10,11", "数据12,13", "数据14,15", "数据16,17",],
ReturnInfo: [],
CommTestCmd: "ResistorSample",
},
{
TaskID: 42,
TaskName: "任务插槽",
TaskBrief: "程序可以动态添加要执行的任务,此任务将执行所有序号匹配的动态任务",
ParamInfo: ["插槽序号"],
ReturnInfo: [],
CommTestCmd: "ResistorSample",
},
{
TaskID: 43,
TaskName: "设置电阻校准值",
TaskBrief: "电阻测量的校准值,不建议将此任务添加进方案中",
ParamInfo: ["电阻校准值"],
ReturnInfo: [],
CommTestCmd: "ResistorSample",
},
{
TaskID: 44,
TaskName: "写入流水号",
TaskBrief: "采用读改写的方式写入27bit的流水号数据",
ParamInfo: ["要写入的流水号低2字节", "要写入的流水号高2字节"],
ReturnInfo: [],
CommTestCmd: "ResistorSample",
},
{
TaskID: 45,
TaskName: "读取流水号",
TaskBrief: "读取27bit的流水号数据对比失败则此任务失败",
ParamInfo: ["要校验的流水号低2字节", "要校验的流水号高2字节"],
ReturnInfo: ["读取的流水号低2字节", "读取的流水号高2字节"],
CommTestCmd: "ResistorSample",
},
{
TaskID: 46,
TaskName: "写固定延时",
TaskBrief: "写入延时并掉电保存",
ParamInfo: ["延时值ms"],
ReturnInfo: [],
CommTestCmd: "ResistorSample",
},
];
JQ_ErrorInfo={
//错误描述
//主错误段
MajorErrInfo:[
{Info:"执行成功",MajorErrCode:0,SubErrCode:[]},
{Info:"检测器异常",MajorErrCode:1,SubErrCode:[21,23,254]},
// 主电容异常移除 dac比较错误30状态错误42
// 如果有电容异常,在充能阶段已经暴露
{Info:"主电容异常",MajorErrCode:2,SubErrCode:[31,32,33,34,35]},
{Info:"接触异常",MajorErrCode:3,SubErrCode:[27]},
// 桥丝异常移除 4142
// 如果有桥丝异常在dac比较阶段和电阻检阶段已暴露
{Info:"桥丝阻值异常",MajorErrCode:4,SubErrCode:[30,51]},
// 移除上电充能异常22加入其他异常
{Info:"芯片异常",MajorErrCode:5,SubErrCode:[24,25,26,27,28,29,30,32,33,35,36,37,38,39,40,41,42,43,44,45,52,53,54]},
{Info:"判定任务缺失",MajorErrCode:6,SubErrCode:[212]},
{Info:"过流",MajorErrCode:7,SubErrCode:[]},
{Info:"短路",MajorErrCode:8,SubErrCode:[]},
{Info:"未执行槽任务",MajorErrCode:9,SubErrCode:[]},
{Info:"槽任务参数错误",MajorErrCode:10,SubErrCode:[]},
{Info:"其他异常",MajorErrCode:20,SubErrCode:[22,255,208,209,210,211,212,213]},
],//需要根据返回参数进行判断]
SubErrInfo:[
//详细错误段
{Info:"无异常",ErrCode:0,
ErrFac:["当检测任务不产生异常时使用此错误码"]},
{Info:"预设电压异常",ErrCode:21,
ErrFac:["1.检测小板电压调节失效,存在无法设置的电压"]},
{Info:"上电充能错误",ErrCode:22,
ErrFac:["1.检测器输出电压异常","2.模块上电容性负载大","3.模块基本电路异常"],
},
{Info:"电压设置异常",ErrCode:23,
ErrFac:["1.检测小板输出电压异常","2.外部短路,导致过流保护"]
},
{Info:"UID扫描错误",ErrCode:24,
ErrFac:["1.芯片通信异常","2.OTP中UID非0(启用了UID全0检测)"]},
{Info:"OTP错误",ErrCode:25,
ErrFac:["1.OTP数据非全0(启用了全0检测)"]
},
{Info:"通讯电流错误",ErrCode:26,
ErrFac:["1.芯片反码电流异常"]
},
{Info:"基本电流错误",ErrCode:27,
ErrFac:["1.芯片的静态功耗异常","2.检测器输出电压异常"]
},
{Info:"读取芯片ID错误",ErrCode:28,
ErrFac:["1.通信错误"]
},
{Info:"密码验证错误",ErrCode:29,
ErrFac:["1.芯片异常,内部密码与严重密码不一致"]
},
{Info:"DAC比较错误",ErrCode:30,
ErrFac:["1.芯片异常检测DAC不准","2.电容端电压异常,不符合检测要求","3.高压或充电降压通信异常","4.芯片充电漏流偏大"]
},
{Info:"高压充能错误",ErrCode:31,
ErrFac:["1.电容漏流","2.电容容值偏低或偏大","3.芯片充电漏流,充电回路或起爆回路","4.芯片高压基本电流偏大","5.芯片异常,充电电流偏小"]
},
{Info:"充电电流错误",ErrCode:32,
ErrFac:["1.芯片异常,充电电流符合指标"]
},
{Info:"高压充末电流错误",ErrCode:33,
ErrFac:["1.电容漏流","2.芯片充电回路漏流或起爆回路漏流","3.芯片高压基本电流偏大"],
},
{Info:"低压充电能量错误",ErrCode:34,
ErrFac:["1.电容漏流","2.电容容值偏低或偏大","3.芯片充电漏流,充电回路或起爆回路","4.芯片低压基本电流偏大","5.芯片异常,充电电流偏小","6.高压充电后不能放电"],
},
{Info:"低压充末电流错误",ErrCode:35,
ErrFac:["1.电容漏流","2.芯片充电回路漏流或起爆回路漏流","3.芯片基本功耗偏大"],
},
{Info:"写延时错误",ErrCode:36,
ErrFac:["1.芯片设置延时功能异常","2.通信异常"]
},
{Info:"读延时错误",ErrCode:37,
ErrFac:["1.芯片读延时功能异常","2.通信异常"]
},
{Info:"芯片程测错误",ErrCode:38,
ErrFac:["1.芯片成测标记错误非全FFFF","2.通信异常"]
},
{Info:"时钟校准错误",ErrCode:39,
ErrFac:["1.检测器命令执行异常"],
},
{Info:"写工厂信息错误",ErrCode:40,
ErrFac:["1.OTP数据写入出错","2.通信异常"]
},
{Info:"模拟起爆错误",ErrCode:41,
ErrFac:["1.发送起爆指令后无应答"]},
{Info:"芯片状态码异常",ErrCode:42,
ErrFac:["1.状态码与设置的掩码不匹配","2.通讯异常"]
},
{Info:"通信电流错误",ErrCode:43,
ErrFac:["1.芯片异常","2.检测器异常"],
},
{Info:"反码时长错误",ErrCode:44,
ErrFac:["1.芯片异常,通讯无反码","2.通讯反码电流低,不能识别"]
},
{Info:"复位放电错误",ErrCode:45,
ErrFac:["1.高压充电后降压通讯异常","2.芯片复位不能正常放电","3.芯片异常,指令不执行"],
},
{Info:"桥丝阻值异常",ErrCode:51,
ErrFac:["1.桥丝电阻不符合标准","2.测试设备校准偏差"],
},
{Info:"三码绑定失败",ErrCode:52,
ErrFac:["1.模块已注过码","2.芯片异常,无法注码"],
},
{Info:"三码验证失败",ErrCode:53,
ErrFac:["1.芯片异常,注码后验证失败"],
},
{Info:"缓存信息写入失败",ErrCode:54,
ErrFac:["1.系统内部缓存数据异常","2.芯片数据写入异常"],
},
{Info:"通信超时",ErrCode:208,
ErrFac:["1.小板状态异常,不响应通信指令","2.小板与主板之间通信异常"],
},
{Info:"脚本执行失败",ErrCode:209,
ErrFac:["1.脚本功能异常","2.配置文件配置为不使用脚本"],
},
{Info:"数据长度与方案不符",ErrCode:210,
ErrFac:["1.小板和主板使用的方案不同,更新方案即可","2.脚本功能异常"],
},
{Info:"方案ID不符",ErrCode:211,
ErrFac:["1.使用的方案和脚本适配的方案不适配,更换相应的脚本或者方案即可"],
},
{Info:"检测项目不足",ErrCode:212,
ErrFac:["1.方案中未执行异常判定所需的任务,无法判定异常","2.脚本功能异常"],
},
{Info:"数据不合规",ErrCode:213,
ErrFac:["1.用于判定的数据不具有正常的电性能检测规律,模块检测时不应出现此错误","2.脚本功能异常",
"3.方案中相关异常判定参数设置不合理","4.小板和主板使用的方案不同但数据返回长度相同,导致错误解释了返回数据的含义"],
},
{Info:"检测器执行异常",ErrCode:254,
ErrFac:["广播类命令执行错误"],
},
{Info:"返回参数判断",ErrCode:255,
ErrFac:[],
},//需要通过指标判断
],
};
var JQ_Product_Names=["EJ01","EJ03","EJ04","EJ05","EJ06","EJ09","EJ10","EQ09","EQ05","EQ06","EQ07"];

View File

@@ -0,0 +1,452 @@
var XTCheckerTaskInfo=[
{
TaskID:0,
TaskName:"电源准备",
TaskBrief:"检测前校准检测过程中需要使用的电压便于检测过程中快速输出电压。电压范围55~270",
ParamInfo:["预设电压1","预设电压2","预设电压3","预设电压4","预设电压5","预设电压6","预设电压7","预设电压8","预设电压9","预设电压10",],
ReturnInfo:[],
CommTestCmd:"PowerPrapare",
},{
TaskID:1,
TaskName:"上电充能",
TaskBrief:"统计模块的上电充能,具有电压设置功能,电流= AD/4096/10/34",
ParamInfo:["总线电压","采样超时0.1ms","计时启停ADC"],
ReturnInfo:["总线电压","大于启停的时间"],
CommTestCmd:"PowerOn",
},{
TaskID:2,
TaskName:"设置总线电压",
TaskBrief:"设置总线电压为预设电压中的值",
ParamInfo:["总线电压"],
ReturnInfo:["总线电压"],
CommTestCmd:"SetBusV",
},{
TaskID:3,
TaskName:"获取总线电流",
TaskBrief:"获取总线正反两个极性电流",
ParamInfo:[],
ReturnInfo:["总线正电流","总线反电流"],
CommTestCmd:"BaseCur",
},{
TaskID:4,
TaskName:"扫描UID",
TaskBrief:"扫描总线上的电子模块 1发",
ParamInfo:["UID长度","使1/失0UID对比"],
ReturnInfo:[],
CommTestCmd:"ScanUID",
},{
TaskID:5,
TaskName:"写配置参数",
TaskBrief:"写入配置参数 UID 密码长度,反码电流挡位 版本号。 0:100uF大电解30um桥丝,1:68uF坦电容22um桥丝,2:68uF坦电容8Ω电阻,\
3:68uF坦电容6Ω电阻,4:33uF钽电容22um桥丝",
ParamInfo:["UID长度","密码长度","电流挡位","版本号"],
ReturnInfo:[],
CommTestCmd:"WriteChipCfg",
},{
TaskID:6,
TaskName:"验证配置",
TaskBrief:"写入配置参数 UID 密码长度,反码电流挡位 版本号。 0:100uF大电解30um桥丝,1:68uF坦电容22um桥丝,2:68uF坦电容8Ω电阻,\
3:68uF坦电容6Ω电阻,4:33uF钽电容22um桥丝",
ParamInfo:["UID长度","密码长度","电流挡位","版本号"],
ReturnInfo:[],
CommTestCmd:"CheckChipCfg",
},{
TaskID:7,
TaskName:"模拟注码",
TaskBrief:"写入测试UID和密码,优先配置写入配置项",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"BindTestCode",
},{
TaskID:8,
TaskName:"充能统计",
TaskBrief:"充能统会发送充电命令,计电流判线设定值,从上升到下降的时间。\
同时记录充过程中最大电流。以及结束高压充电的总线电流和充电电流监控时间。\
充电电流判线计数公式 电流=AD/4093*3.3/100 R100_2mA_33mA_MC。\
充电挡位17-1V 34-4V 51-10V 68-12V 85-14V 102-16V 119-18V 136-22V 153-20V",
ParamInfo:["充电挡位","统计超时","电流判线AD","充电结束值0.1uA","充电超时0.1S","电流监控0.1S"],
ReturnInfo:["充能值0.1ms","充末电流0.1uA","最大充电电流0.1mA","充电抖动ADV"],
CommTestCmd:"ChgEnergy",
},
{
TaskID:9,
TaskName:"设置现场值",
TaskBrief:"写现场值,如果UID已经写入会将现场值读取进行比对",
ParamInfo:["编号","延时","孔号"],
ReturnInfo:[],
CommTestCmd:"WriteRunField",
},{
TaskID:10,
TaskName:"比对现场值",
TaskBrief:"对内部编号、延时、孔号进行比对,要求优先获取芯片UID",
ParamInfo:["编号","延时","孔号","1使/0失反馈采集"],
ReturnInfo:["最大反馈电流","最大反馈时间","最小反馈电流","最小反馈时间"],
CommTestCmd:"CheckRunField",
},
{
TaskID:11,
TaskName:"桥丝检测",
TaskBrief:"桥丝通断检测,如果测试器有uid将采用uid方式通信",
ParamInfo:[],
ReturnInfo:["桥丝ADC"],
CommTestCmd:"Resister",
},{
TaskID:12,
TaskName:"电容测量",
TaskBrief:"电容容量检测,如果测试器有uid将采用uid方式通信, 电压等级: 17-1V 34-4V 51-10V",
ParamInfo:["测试电压","超时时间0.1ms"],
ReturnInfo:["电容容量0.1uF"],
CommTestCmd:"Cap",
},{
TaskID:13,
TaskName:"延时等待",
TaskBrief:"延时等待,并监控总线电流波动",
ParamInfo:["延时时间0.1s","1使能监控"],
ReturnInfo:["电流波动AD"],
CommTestCmd:"WaitDelay",
},{
TaskID:14,
TaskName:"写管壳码",
TaskBrief:"写管壳码(工厂信息) 如果测试器有uid将采用uid方式通信",
ParamInfo:["数据缓存起始","写入长度"],
ReturnInfo:[],
CommTestCmd:"WriteShell",
},{
TaskID:15,
TaskName:"写UID",
TaskBrief:"将缓存信息写入到芯片UID区域",
ParamInfo:["数据缓存起始","写入长度"],
ReturnInfo:[],
CommTestCmd:"WriteUID",
},{
TaskID:16,
TaskName:"写密码",
TaskBrief:"将缓存信息写入到芯片密码区域",
ParamInfo:["数据缓存起始","写入长度"],
ReturnInfo:[],
CommTestCmd:"WritePWD",
},{
TaskID:17,
TaskName:"备份区标记",
TaskBrief:"备份区标记检测,备份区用于存储检测标记",
ParamInfo:["0标记1比对","数据掩码","数据"],
ReturnInfo:[],
CommTestCmd:"CheckBackFlag",
},{
TaskID:18,
TaskName:"读取备份区",
TaskBrief:"读取备份区数据,备份区用于被标记检测外部测量电阻值内部测量ADC",
ParamInfo:["2Bytes数据","2Bytes数据"],
ReturnInfo:[],
CommTestCmd:"ReadBackFlag",
},{
TaskID:19,
TaskName:"时钟校准",
TaskBrief:"发送校准脉冲",
ParamInfo:[" 1快速0全","校准周期","校准时长"],
ReturnInfo:[],
CommTestCmd:"Trim",
},{
TaskID:20,
TaskName:"使能通信电流采集",
TaskBrief:"使能通信末电流采集,对下行命令发送完成后电流进行采集",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"EnCommEndCur",
},{
TaskID:21,
TaskName:"获取通信末电流",
TaskBrief:"需要先执行使能通信电流采集,然后该命令获取使能后通信末的电流",
ParamInfo:[],
ReturnInfo:["通信末电流"],
CommTestCmd:"GetCommEndCur",
},{
TaskID:22,
TaskName:"放电",
TaskBrief:"执行快速放电命令",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"Discharge",
},{
TaskID:23,
TaskName:"在线检测",
TaskBrief:"在线巡检,根据网络号点名,比对是否正确 ",
ParamInfo:["网络号","脉冲个数"],
ReturnInfo:[],
CommTestCmd:"OneLineCheck",
},{
TaskID:24,
TaskName:"状态码检测",
TaskBrief:"状态检测,如果UID已经存在使用UID读取。否则通过扫描的方式",
ParamInfo:["比较掩码","比较位"],
ReturnInfo:["状态值"],
CommTestCmd:"CheckState",
},{
TaskID:25,
TaskName:"起爆",
TaskBrief:"检测是否满足起爆调节,执行起爆,接收起爆后反馈",
ParamInfo:["起爆超时0.1ms","巡检脉冲"],
ReturnInfo:["起爆用时","网络号"],
CommTestCmd:"Boom",
},{
TaskID:26,
TaskName:"复位",
TaskBrief:"执行软件复位命令",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"Reset",
},{
TaskID:27,
TaskName:"关总线",
TaskBrief:"发送放电后关闭总线",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"PowerOFF",
},{
TaskID:28,
TaskName:"芯片锁存",
TaskBrief:"锁存芯片C类指令",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"LockCmdC",
},{
TaskID:29,
TaskName:"赋码设备使能",
TaskBrief:"设置赋码标志位,在接收到赋码命令后,可跳过总线开启和在线检测",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"CodeBindEn",
},{
TaskID:30,
TaskName:"接入检测",
TaskBrief:"通过电流和通信,检测模块是否接入",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"InputCheck",
},{
TaskID:31,
TaskName:"密码验证",
TaskBrief:"验证内部存储的密码,首先需要执行写入密码或模拟注码",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"CheckPWD",
},{
TaskID:32,
TaskName:"加载配置",
TaskBrief:"获取芯片内部UID长度密码长度、版本号信息、反码电流信息",
ParamInfo:[],
ReturnInfo:["UID长度","密码长度","版本号","反码挡位"],
CommTestCmd:"",
},{
TaskID:33,
TaskName:"电容压差",
TaskBrief:"充电后,总线断电测试电容给芯片供电,评估芯片延时功耗",
ParamInfo:["断电时间0.1S"],
ReturnInfo:["压差mV"],
CommTestCmd:"CapVoltage",
},{
TaskID:34,
TaskName:"桥丝电阻测试",
TaskBrief:"测量桥丝阻值。可配置测量模式 0 4线制 1 2线1-4通2 2线2-3通",
ParamInfo:["测量模式"],
ReturnInfo:["电容0.01Ω"],
CommTestCmd:"ResistorSample",
},{
TaskID:35,
TaskName:"三码绑定",
TaskBrief:"注码检测指令使用,直接使用命令中的三码数据",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"BindUIDPWD",
},{
TaskID:36,
TaskName:"验证三码",
TaskBrief:"验证芯片三码数据,直接使用命令中的三码数据",
ParamInfo:[],
ReturnInfo:[],
CommTestCmd:"VerifyUIDPWD",
},{
TaskID:37,
TaskName:"在线检测",
TaskBrief:"在线检测 并扫描通信",
ParamInfo:["总线电压","超时1ms","UID长度"],
ReturnInfo:["总线电压"],
CommTestCmd:"OnLineSCAN",
},{
TaskID:38,
TaskName:"验证管壳/工厂信息",
TaskBrief:"验证存储再芯片管壳码区域的数据与缓存区是否一致",
ParamInfo:["缓存起始","缓存长度"],
ReturnInfo:["总线电压"],
CommTestCmd:"VerfyShell",
},
{
TaskID:201,
TaskName:"充电电流",
TaskBrief:"在线检测 并扫描通信",
ParamInfo:["充电使能","采样周期","采样次数"],
ReturnInfo:[],
CommTestCmd:"CurMonitor",
},{
TaskID:202,
TaskName:"写入缓存",
TaskBrief:"将16进制数据写入缓存空间",
ParamInfo:["缓存空间数据不超过32字节空格隔开"],
ReturnInfo:[],
CommTestCmd:"SetWriteBufHex",
},
];
XT_ErrorInfo={
//错误描述
//主错误段
MajorErrInfo:[
{Info:"执行成功",MajorErrCode:0,SubErrCode:[]},
// 添加异常代码254
{Info:"检测器异常",MajorErrCode:1,SubErrCode:[21,23,254]},
{Info:"主电容异常",MajorErrCode:2,SubErrCode:[31,32,33,34,35]},
{Info:"接触异常",MajorErrCode:3,SubErrCode:[27,37]},
{Info:"桥丝阻值异常",MajorErrCode:4,SubErrCode:[30,51]},
{Info:"芯片异常",MajorErrCode:5,SubErrCode:[22,24,25,26,27,28,29,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,54,55]},
{Info:"判定任务缺失",MajorErrCode:6,SubErrCode:[212]},
{Info:"过流",MajorErrCode:7,SubErrCode:[]},
{Info:"短路",MajorErrCode:8,SubErrCode:[]},
{Info:"其他异常",MajorErrCode:20,SubErrCode:[255,208,209,210,211,212,213]},
],//需要根据返回参数进行判断]
SubErrInfo:[
//详细错误段
{Info:"预设电压异常",ErrCode:21,
ErrFac:["1.检测小板电压调节失效,存在无法设置的电压"]},
{Info:"上电充能错误",ErrCode:22,
ErrFac:["1.检测器输出电压异常","2.模块上电容性负载大","3.模块基本电路异常"],
},
{Info:"电压设置异常",ErrCode:23,
ErrFac:["1.检测小板输出电压异常","2.外部短路,导致过流保护"]
},
{Info:"UID扫描错误",ErrCode:24,
ErrFac:["1.芯片通信异常","2.芯片内部存储的UID与参考UID不一致"]},
{Info:"标记区验证错误",ErrCode:25,
ErrFac:["1.验证标志位没有置位(检测流程出错","2.芯片数据被擦写","3.通信异常"]
},
{Info:"通讯后电流错误",ErrCode:26,
ErrFac:["1.芯片执行指令异常","2.芯片通信接收功耗异常"]
},
{Info:"基本电流错误",ErrCode:27,
ErrFac:["1.芯片的静态功耗异常","2.检测器输出电压异常"]
},
{Info:"配置错误",ErrCode:28,
ErrFac:["1.芯片错误","2.通信异常"]
},
{Info:"验证配置",ErrCode:29,
ErrFac:["1.芯片内部数据与检测数据不一致,数据丢失","2.芯片通信异常","3.芯片数据被改写"]
},
{Info:"桥丝错误",ErrCode:30,
ErrFac:["1.桥丝开路,或阻值异常","2.芯片异常,检测不准"]
},
{Info:"高压充能错误",ErrCode:31,
ErrFac:["1.电容漏流","2.电容容值偏低或偏大","3.芯片充电漏流,充电回路或起爆回路","4.芯片高压基本电流偏大","5.芯片异常,充电电流偏小"]
},
{Info:"充电电流错误",ErrCode:32,
ErrFac:["1.芯片异常,充电电流符合指标"]
},
{Info:"高压充末电流错误",ErrCode:33,
ErrFac:["1.电容漏流","2.芯片充电回路漏流或起爆回路漏流","3.芯片高压基本电流偏大"],
},
{Info:"低压充电能量错误",ErrCode:34,
ErrFac:["1.电容漏流","2.电容容值偏低或偏大","3.芯片充电漏流,充电回路或起爆回路","4.芯片低压基本电流偏大","5.芯片异常,充电电流偏小","6.高压充电后不能放电"],
},
{Info:"低压充末电流错误",ErrCode:35,
ErrFac:["1.电容漏流","2.芯片充电回路漏流或起爆回路漏流","3.芯片基本功耗偏大"],
},
{Info:"写延时错误",ErrCode:36,
ErrFac:["1.芯片设置延时功能异常","2.通信异常"]
},
{Info:"读延时错误",ErrCode:37,
ErrFac:["1.芯片读延时功能异常","2.通信异常"]
},
{Info:"芯片程测错误",ErrCode:38,
ErrFac:["1.芯片成测标记错误非全FFFF","2.通信异常"]
},
{Info:"时钟校准错误",ErrCode:39,
ErrFac:["1.检测器命令执行异常"],
},
{Info:"写工厂信息错误",ErrCode:40,
ErrFac:["1.OTP数据写入出错","2.通信异常"]
},
{Info:"模拟起爆错误",ErrCode:41,
ErrFac:["1.发送起爆指令后无应答"]},
{Info:"芯片状态码异常",ErrCode:42,
ErrFac:["1.状态码与设置的掩码不匹配","2.通讯异常"]
},
{Info:"反馈电流错误",ErrCode:43,
ErrFac:["1.芯片异常,反馈电流不达标","2.检测器异常,采集电路不准"],
},
{Info:"反码时长错误",ErrCode:44,
ErrFac:["1.芯片异常,通讯无反码","2.通讯反码电流低,不能识别"]
},
{Info:"复位放电错误",ErrCode:45,
ErrFac:["1.高压充电后降压通讯异常","2.芯片复位不能正常放电","3.芯片异常,指令不执行"],
},
{Info:"状态标志错误",ErrCode:46,
ErrFac:["1.置位标志命令未执行","2.置位命令参数错误","3.电容电压检测失败","4,芯片异常,状态标志不能置位"],
},
{Info:"三码验证错误",ErrCode:47,
ErrFac:["1.扫描获取的UID和写入的UID不一致","2.密码不一致,验证标志位未置位","3.芯片状态标志异常,不能置位"],
},
{Info:"写管壳码",ErrCode:48,
ErrFac:["1.缓存空间数据验证错误","2.指令执行错误,未收到应答","3.芯片功能异常,指令执行失败"],
},
{Info:"写密码",ErrCode:49,
ErrFac:["1.缓存空间数据验证错误","2.指令执行错误,未收到应答","3.芯片功能异常,指令执行失败"],
},
{Info:"写现场值错误",ErrCode:50,
ErrFac:["1.UID不匹配","2.芯片内部的配置未设置正确","3.芯片功能异常,通信无反馈"],
},
{Info:"桥丝阻值异常",ErrCode:51,
ErrFac:["1.桥丝电阻不符合标准","2.测试设备校准偏差"],
},
{Info:"缓存信息写入失败",ErrCode:54,
ErrFac:["1.系统内部缓存数据异常","2.芯片数据写入异常"],
},
{Info:"模拟注码错误",ErrCode:55,
ErrFac:["1.系统内部缓存数据异常","2.芯片数据写入异常"],
},
{Info:"通信超时",ErrCode:208,
ErrFac:["1.小板状态异常,不响应通信指令","2.小板与主板之间通信异常"],
},
{Info:"脚本执行失败",ErrCode:209,
ErrFac:["1.脚本功能异常","2.配置文件配置为不使用脚本"],
},
{Info:"数据长度与方案不符",ErrCode:210,
ErrFac:["1.小板和主板使用的方案不同,更新方案即可","2.脚本功能异常"],
},
{Info:"方案ID不符",ErrCode:211,
ErrFac:["1.使用的方案和脚本适配的方案不适配,更换相应的脚本或者方案即可"],
},
{Info:"检测项目不足",ErrCode:212,
ErrFac:["1.方案中未执行异常判定所需的任务,无法判定异常","2.脚本功能异常"],
},
{Info:"数据不合规",ErrCode:213,
ErrFac:["1.用于判定的数据不具有正常的电性能检测规律,模块检测时不应出现此错误","2.脚本功能异常",
"3.方案中相关异常判定参数设置不合理","4.小板和主板使用的方案不同但数据返回长度相同,导致错误解释了返回数据的含义"],
},
{Info:"检测器执行异常",ErrCode:254,
ErrFac:["广播类命令执行错误"],
},
{Info:"返回参数判断",ErrCode:255,
ErrFac:[],
},//需要通过指标判断
],
}
var XT_Product_Names=["EX05A","EX09C","EX09F","EX09J","EX09A"];

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,416 @@
var CheckerPlanTest_flag = false;
var Checker_En_CmdTest = true;
function Checker_Start_Comm()
{
console.log("Checker_Start_Comm ");
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.SearchCommport();
console.log("SearchCommport ");
}
}
function Checker_Open_CommPort(main_serial) {
var epe_oper = {};
epe_oper.comm_port = main_serial.comm_port;
epe_oper.comm_baud = main_serial.comm_baud;
epe_oper.comm_parity = main_serial.comm_parity;
epe_oper.comm_stopbit = main_serial.comm_stopbit;
Main_Close_CommPort_Select();
var json_str = JSON.stringify(epe_oper);
console.log(json_str);
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.OpenCommPort(json_str);
}
}
function CheckerShowMes_autoClose(showtitle,mes,time_out)
{
layer.alert(mes, {
title:showtitle,
time:time_out,
});
}
var MesBox_CmdTestRe_ID = -1;
var Checker_CmdMes_Scroll_flag = true;
function CheckerShowMes_CmdTestDialog()
{
if(MesBox_CmdTestRe_ID < 0)
{
$("#checker_commCmdRes").unbind('dblclick').bind('dblclick', function(){
Checker_CmdMes_Scroll_flag = Checker_CmdMes_Scroll_flag? false:true;
});
MesBox_CmdTestRe_ID = layer.open({
type: 1,
title:'串口功能测试',
shade: false, // 不显示遮罩
content: $('#checker_cmdTest_Mes'), // 捕获的元素
btn: ['清空'],
btnAlign: 'r', // 右边
//area: 'auto',
maxHeight:600,
end: function(){
MesBox_CmdTestRe_ID = -1;
CheckerPlanTest_flag = 0;
},
btn1:function(){
$("#checker_commCmdRes")[0].innerHTML = "";
return false
// var obj_ = $("#checker_commCmdRes")[0];
// obj_.innerHTML += "<br>sdfjhuih快递收发u返回文化意义粉红色丢分回复撒回复恢复hi发水u分化为回复哈随风还是低";
// if(Checker_CmdMes_Scroll_flag)
// {
// obj_.scrollTop = obj_.scrollHeight;
// }
},
});
}
}
function CheckerShowMes_CmdTestRe(mes)
{
var obj_ = $("#checker_commCmdRes")[0];
if(obj_.innerHTML.length < 1)
{
obj_.innerHTML = mes;
}else{
obj_.innerHTML += "<br>"+mes;
}
if(Checker_CmdMes_Scroll_flag)
{
obj_.scrollTop = obj_.scrollHeight;
}
CheckerShowMes_CmdTestDialog();
}
function Checker_CmdTest(taskindex)
{
Checker_Export_Plan = Checker_GetCfgInfo();
var TaskArray =Checker_Export_Plan.TaskArray;
var param = "";
var task_id = -1;
for(var index = 0; index < TaskArray.length; index++)
{
if(taskindex == TaskArray[index].TaskIndex)
{
task_id = TaskArray[index].TaskID;
var paramList = TaskArray[index].ParamVal;
for(var index2 = 0; index2 < paramList.length;index2++)
{
if(index2 != 0)
{
param+= " ";
}
param += paramList[index2];
}
}
}
if(task_id < 0)
{
return ;
}
var cmd_test = "";
if(CheckerChipID == 0)
{
cmd_test = "JCH "
}else if(CheckerChipID == 1)
{
cmd_test = "XCH "
}else{
return;
}
for(var i = 0; i < CheckerTask_Info.length; i++)
{
if(task_id == CheckerTask_Info[i].TaskID)
{
cmd_test += CheckerTask_Info[i].CommTestCmd + " ";
}
}
cmd_test += param;
CheckerShowMes_CmdTestRe(cmd_test);
//CheckerShowMes_CmdTestDialog();
console.log("Checker_CmdTest "+cmd_test);
cmd_test += "\r\n";
CheckerPlanTest_flag = false;
Checker_CommSendStr(cmd_test);
}
function Checker_PlanTest()
{
var cmdtest = "";
if(CheckerChipID == 0)
{
cmd_test = "JCH ExcuePlan\r\n"
}else if(CheckerChipID == 1)
{
cmd_test = "XCH ExcuePlan\r\n"
}else{
return;
}
CheckerPlanTest_flag = true;
Checker_CommSendStr(cmd_test);
//Checker_ShowReadStr("");
}
var MesBox_InputTestResult_ID = -1;
function CheckerShowMes_InputResult()
{
if(MesBox_InputTestResult_ID < 0)
{
MesBox_InputTestResult_ID = layer.open({
type: 1,
title:'数据检测验证,确认与方案匹配',
shade: false, // 不显示遮罩
content: $('#checker_testData_Check'), // 捕获的元素
btn: ['导入'],
btnAlign: 'r', // 右边
//area: 'auto',
maxHeight:600,
end: function(){
MesBox_InputTestResult_ID = -1;
},
btn1:function(){
var result = $("#checker_testData_input").val();
Checker_ShowTestResult(result);
},
});
}
}
function Checker_ShowTestResult(result)
{
var mesLine = result.split(",");
var resultdata = [];
for(var i = 0; i < mesLine.length;i++)
{
resultdata[i] = parseInt(mesLine[i]);
}
var task_info_list = $(".checker_cfig_div").children();
var TaskPlan = Checker_GetCfgInfo();
var taskInfoArray = TaskPlan.TaskArray;
var resultCount = 0;
for(var index = 0; index < taskInfoArray.length;index++)
{
if(taskInfoArray[index].ReturnCount == 0)
{
continue;
}
var Taskindex = taskInfoArray[index].TaskIndex;
var itemObj = task_info_list[Taskindex+1];
var viewItemObj = $(itemObj).find(".checker_test_cmd_item");
var resultInputList = $(viewItemObj).find("input");
var rtv_error_flag = 0;
for(var index2 = 0; index2 < resultInputList.length && index2 < taskInfoArray[index].TestStandard.length ; index2++)
{
$(resultInputList[index2]).val(resultdata[resultCount]);
if(resultdata[resultCount] > taskInfoArray[index].TestStandard[index2].Max
||resultdata[resultCount] < taskInfoArray[index].TestStandard[index2].Min )
{
rtv_error_flag = 1;
$(resultInputList[index2]).css("color","#dd0000");
}else{
$(resultInputList[index2]).css("color","#030000");
}
resultCount++;
}
if(rtv_error_flag != 0)
{
var viewItemObj = $(task_info_list[Taskindex+1]).find(".layui-colla-title");
$(viewItemObj).css("background-color","#c10205");
$(viewItemObj).css("color","#fffaf7");
}else{
var viewItemObj = $(task_info_list[Taskindex+1]).find(".layui-colla-title");
$(viewItemObj).css("background-color","#71dfda");
$(viewItemObj).css("color","#030202");
}
}
}
function Checker_ShowPlanTest(messtr)
{
var mesLine = messtr.split("\n");
var showmes = "";
for(var index = 0; index <mesLine.length; index++ )
{
if(mesLine[index].length < 2)
{
continue;
}
CheckerShowMes_CmdTestRe(mesLine[index]);
}
var objarray = [];
objarray = Checker_ResultMes2Obj(messtr);
var task_info_list = $(".checker_cfig_div").children();
Checker_Export_Plan = Checker_GetCfgInfo();
var TaskArray =Checker_Export_Plan.TaskArray;
var error_flag = 0;
var rtv_error_flag = 0;
for(var index = 0; index < objarray.length; index++)
{
var obj_ = objarray[index];
if(obj_.TaskIndex >= (TaskArray.length))
{
error_flag = 1;
break;
}
var viewTaskId = TaskArray[obj_.TaskIndex].TaskID;
if(viewTaskId != obj_.TaskID)
{
error_flag = 1;
break;
}
var viewItemObj = $(task_info_list[obj_.TaskIndex+1]).find(".checker_test_cmd_item");
var resultInputList = $(viewItemObj).find("input");
if(typeof(resultInputList) == "undefined" || resultInputList == null )
{
error_flag = 1;
break;
}
rtv_error_flag = 0;
for(var index2 = 0; index2 < obj_.ResultV.length; index2++)
{
$(resultInputList[index2]).val(obj_.ResultV[index2]);
if(obj_.ResultV[index2] > TaskArray[obj_.TaskIndex].TestStandard[index2].Max
||obj_.ResultV[index2] < TaskArray[obj_.TaskIndex].TestStandard[index2].Min )
{
rtv_error_flag = 1;
$(resultInputList[index2]).css("color","#dd0000");
}else{
$(resultInputList[index2]).css("color","#030000");
}
}
if(obj_.ResultE != 0 || rtv_error_flag != 0)
{
var viewItemObj = $(task_info_list[obj_.TaskIndex+1]).find(".layui-colla-title");
$(viewItemObj).css("background-color","#c10205");
$(viewItemObj).css("color","#fffaf7");
}else{
var viewItemObj = $(task_info_list[obj_.TaskIndex+1]).find(".layui-colla-title");
$(viewItemObj).css("background-color","#71dfda");
$(viewItemObj).css("color","#030202");
}
}
if(error_flag)
{
$("#checker_commCmdRes")[0].innerHTML += "<br>测试结果与方案不匹配<br>";
}
CheckerShowMes_CmdTestDialog();
}
function Checker_ResultMes2Obj(messtr)
{
var objarray= [];
var mesList = messtr.split("\n");
var obj_count = 0;
for(var index = 0; index < mesList.length; index++)
{
var mes_temp = "";
var mes_src = mesList[index];
var temp_count = 0;
for(var index2 = 0;index2 < mes_src.length;index2++)
{
if( mes_src.charAt(index2) == ' '
|| mes_src.charAt(index2) == ','
|| mes_src.charAt(index2) == ';'
|| mes_src.charAt(index2) == '\t')
{
if(mes_temp.length == 0)
{
continue;
}
if(mes_temp.charAt(mes_temp.length-1) == ' ')
{
continue;
}
}
mes_temp += mes_src.charAt(index2);
}
if(mes_temp.length < 10)
{
continue;
}
mes_temp = mes_temp.trim();
var resultItems = mes_temp.split(" ");
if(resultItems.length < 6)
{
continue;
}
var obj={
TaskIndex:parseInt(resultItems[1]),
TaskID:parseInt(resultItems[3]),
ResultE:parseInt(resultItems[5]),
ResultV:[],
}
var result_array = [];
for(var index2 = 6; index2 < resultItems.length; index2++)
{
var data = parseInt(resultItems[index2]);
if(isNaN(data))
{
data = -1;
}
result_array[index2-6] =data;
}
obj.ResultV = result_array;
objarray[obj_count++] = obj;
}
return objarray;
}
function Checker_CommSendStr(str)
{
if(epe_qthandle != null && typeof(epe_qthandle) != "undefined")
{
epe_qthandle.Epe_SendStr(str);
}
}
function Checker_ShowCurMontior()
{
}
function Checker_ShowReadStr(str)
{
//str = "test taefCurM1ontiorofjiofjowfjoeifdslafjow\n"
str = str.replace("\r\n","\n");
str = str.replace("\r","\n");
if(str.indexOf("CurMontior") >= 0)
{
CheckerShowCurEcharts(cur);
}
else if(CheckerPlanTest_flag == false)
{
str = str.split("\n");
for(var index = 0; index < str.length;index++)
{
if(str[index].length > 5)
{
CheckerShowMes_CmdTestRe(str[index]);
}
}
}
else{
Checker_ShowPlanTest(str);
}
}

File diff suppressed because it is too large Load Diff