From 488d981c8034c11c13f15893c253e2211d80105a Mon Sep 17 00:00:00 2001 From: ranchuan Date: Mon, 11 Sep 2023 17:38:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8A=AF=E8=B7=B3=E6=A8=A1=E5=9D=97=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E7=94=B5=E5=AE=B9=E6=94=B9=E4=B8=BA=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BB=BB=E5=8A=A112=20app=E7=BC=96=E8=AF=91=E5=90=8E=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E4=B8=8A=E4=BC=A0=E5=88=B0=E6=9C=8D=E5=8A=A1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- checker_gen1.uvoptx | 34 +- checker_gen1.uvprojx | 30 + python/file/7-15.json | 1491 ----------------- python/file/7.15.json | 1491 ----------------- python/file/EX_Coder_Test_2023-07-21.json | 758 --------- python/file/EX_Coder_Test_2023-07-21.xlsx | Bin 12348 -> 0 bytes python/file/EX_Coder_Test_2023-07-4.json | 638 ------- python/file/EX_Coder_Test_2023-07-6.json | 785 --------- python/file/EX_Coder_Test_2023-07-6.xlsx | Bin 12341 -> 0 bytes python/file/EX_Coder_Test_2023-07-7.json | 785 --------- python/file/EX_Coder_Test_2023-07-7.xlsx | Bin 12341 -> 0 bytes ...三码绑定测试2023-06-08 - 副本.json | 283 ---- .../file/EX三码绑定测试2023-06-08.json | 352 ---- .../file/EX三码绑定测试2023-06-26.json | 367 ---- .../file/EX三码绑定测试2023-07-3.json | 407 ----- ...件EX工厂注码程序及方案090401.zip | Bin 0 -> 99469 bytes python/file/XT_Foundry_Test-7-15.json | 1491 ----------------- python/file/XT_Foundry_Test-7-15.xlsx | Bin 12583 -> 0 bytes python/file/XT_Foundry_Test-7-6.json | 1463 ---------------- python/file/XT_Foundry_Test-7-6.xlsx | Bin 12556 -> 0 bytes python/file/XT_Foundry_Test2.json | 1480 ---------------- python/file/XT_Foundry_Test2.xlsx | Bin 12591 -> 0 bytes python/file/Ym_Checker.bin | Bin 36356 -> 0 bytes python/file/Ym_Coder 2023-8-16.bin | Bin 39188 -> 0 bytes python/file/Ym_Coder.bin | Bin 38376 -> 0 bytes python/file/Ym_Coder_Lock.bin | Bin 38484 -> 0 bytes python/file/Ym_Coder_V011.bin | Bin 0 -> 39836 bytes python/file/checker_ye_cfg.json | 703 -------- python/prottcp.py | 16 + python/updata.py | 33 +- source/ReadMe.txt | 10 +- source/coder/coder_judge.c | 22 +- source/main/compiler_info.h | 4 +- source/mycopy.py | 12 +- source/mysql.py | 166 ++ source/prebuild.py | 2 +- 36 files changed, 308 insertions(+), 12515 deletions(-) delete mode 100644 python/file/7-15.json delete mode 100644 python/file/7.15.json delete mode 100644 python/file/EX_Coder_Test_2023-07-21.json delete mode 100644 python/file/EX_Coder_Test_2023-07-21.xlsx delete mode 100644 python/file/EX_Coder_Test_2023-07-4.json delete mode 100644 python/file/EX_Coder_Test_2023-07-6.json delete mode 100644 python/file/EX_Coder_Test_2023-07-6.xlsx delete mode 100644 python/file/EX_Coder_Test_2023-07-7.json delete mode 100644 python/file/EX_Coder_Test_2023-07-7.xlsx delete mode 100644 python/file/EX三码绑定测试2023-06-08 - 副本.json delete mode 100644 python/file/EX三码绑定测试2023-06-08.json delete mode 100644 python/file/EX三码绑定测试2023-06-26.json delete mode 100644 python/file/EX三码绑定测试2023-07-3.json create mode 100644 python/file/JQ硬件EX工厂注码程序及方案090401.zip delete mode 100644 python/file/XT_Foundry_Test-7-15.json delete mode 100644 python/file/XT_Foundry_Test-7-15.xlsx delete mode 100644 python/file/XT_Foundry_Test-7-6.json delete mode 100644 python/file/XT_Foundry_Test-7-6.xlsx delete mode 100644 python/file/XT_Foundry_Test2.json delete mode 100644 python/file/XT_Foundry_Test2.xlsx delete mode 100644 python/file/Ym_Checker.bin delete mode 100644 python/file/Ym_Coder 2023-8-16.bin delete mode 100644 python/file/Ym_Coder.bin delete mode 100644 python/file/Ym_Coder_Lock.bin create mode 100644 python/file/Ym_Coder_V011.bin delete mode 100644 python/file/checker_ye_cfg.json create mode 100644 source/mysql.py diff --git a/checker_gen1.uvoptx b/checker_gen1.uvoptx index 0b92649..6ebebd0 100644 --- a/checker_gen1.uvoptx +++ b/checker_gen1.uvoptx @@ -1177,7 +1177,7 @@ rt_thread - 0 + 1 0 0 0 @@ -2331,4 +2331,36 @@ + + python + 1 + 0 + 0 + 0 + + 15 + 144 + 5 + 0 + 0 + 0 + .\source\mycopy.py + mycopy.py + 0 + 0 + + + 15 + 145 + 5 + 0 + 0 + 0 + .\source\prebuild.py + prebuild.py + 0 + 0 + + + diff --git a/checker_gen1.uvprojx b/checker_gen1.uvprojx index 9fec3d2..6283263 100644 --- a/checker_gen1.uvprojx +++ b/checker_gen1.uvprojx @@ -1368,6 +1368,21 @@ + + python + + + mycopy.py + 5 + .\source\mycopy.py + + + prebuild.py + 5 + .\source\prebuild.py + + + @@ -4339,6 +4354,21 @@ + + python + + + mycopy.py + 5 + .\source\mycopy.py + + + prebuild.py + 5 + .\source\prebuild.py + + + diff --git a/python/file/7-15.json b/python/file/7-15.json deleted file mode 100644 index 6c344a4..0000000 --- a/python/file/7-15.json +++ /dev/null @@ -1,1491 +0,0 @@ -{ - "PlanID": 49221637, - "PlanBrief": "代工厂成品测试", - "CheckSoftVersion": [ - 1, - 2 - ], - "CheckHardVersion": [ - 1 - ], - "TimeOutS": 30, - "TimeOutM": 36, - "TimeOutUI": 38, - "TaskIDMax": 26, - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 4, - "ParamInfo": [ - "预设电压1", - "预设电压2", - "预设电压3", - "预设电压4" - ], - "ParamVal": [ - 88, - 120, - 280, - 330 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 34, - "TaskBrief": "桥丝电阻测试", - "TaskIndex": 1, - "ParamCount": 1, - "ParamInfo": [ - "测量模式" - ], - "ParamVal": [ - 0 - ], - "TestStandard": [ - { - "Max": 1600, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "电容0.1Ω" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 2, - "ParamCount": 3, - "ParamInfo": [ - "总线电压", - "采样超时0.1ms", - "计时启停ADC" - ], - "ParamVal": [ - 88, - 20000, - 150 - ], - "TestStandard": [ - { - "Max": 93, - "Min": 83 - }, - { - "Max": 700, - "Min": 100 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 3, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 350, - "Min": 150 - }, - { - "Max": 350, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 5, - "TaskBrief": "写配置参数", - "TaskIndex": 4, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 6, - "TaskBrief": "验证配置", - "TaskIndex": 5, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 7, - "TaskBrief": "模拟注码", - "TaskIndex": 6, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 7, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 8, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 10, - 16000, - 10 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 255, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 11, - "TaskBrief": "桥丝检测", - "TaskIndex": 9, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 30, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "桥丝ADC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 10, - "ParamCount": 2, - "ParamInfo": [ - " 1快速0全", - "校准周期" - ], - "ParamVal": [ - 1, - 1000 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 12, - "TaskBrief": "电容测量", - "TaskIndex": 11, - "ParamCount": 2, - "ParamInfo": [ - "测试电压", - "超时时间0.1ms" - ], - "ParamVal": [ - 17, - 20000 - ], - "TestStandard": [ - { - "Max": 800, - "Min": 600 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "电容容量0.1uF" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 12, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 8, - 8 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 13, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 14, - "ParamCount": 1, - "ParamInfo": [ - "延时时间0.1s" - ], - "ParamVal": [ - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线低压", - "TaskIndex": 15, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 120 - ], - "TestStandard": [ - { - "Max": 125, - "Min": 115 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 36, - "TaskBrief": "验证三码", - "TaskIndex": 16, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 17, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 10, - 16000, - 10, - 1 - ], - "TestStandard": [ - { - "Max": 3000, - "Min": 2000 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 18, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 40, - 40 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 19, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 10, - 15 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "低压总线电流", - "TaskIndex": 20, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 350, - "Min": 120 - }, - { - "Max": 350, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线高压", - "TaskIndex": 21, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 330 - ], - "TestStandard": [ - { - "Max": 335, - "Min": 325 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 22, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 10, - 15 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 23, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "高压总线电流", - "TaskIndex": 24, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 350, - "Min": 120 - }, - { - "Max": 350, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 25, - "ParamCount": 6, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S", - "电流监控0.1S" - ], - "ParamVal": [ - 153, - 20000, - 500, - 400, - 20, - 20 - ], - "TestStandard": [ - { - "Max": 5000, - "Min": 800 - }, - { - "Max": 450, - "Min": 120 - }, - { - "Max": 170, - "Min": 80 - }, - { - "Max": 800, - "Min": 0 - } - ], - "ReturnCount": 4, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA", - "充电抖动ADV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 31, - 33, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 26, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 120 - ], - "TestStandard": [ - { - "Max": 125, - "Min": 115 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 27, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 20, - 20, - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 33, - "TaskBrief": "电容压差", - "TaskIndex": 28, - "ParamCount": 1, - "ParamInfo": [ - "断电时间0.1S" - ], - "ParamVal": [ - 40 - ], - "TestStandard": [ - { - "Max": 2000, - "Min": 800 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "压差mV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 22, - "TaskBrief": "放电", - "TaskIndex": 29, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 30, - "ParamCount": 1, - "ParamInfo": [ - "延时时间0.1s" - ], - "ParamVal": [ - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 31, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 88 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 32, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 22, - 2 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 33, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 34, - "ParamCount": 3, - "ParamInfo": [ - " 1快速0全", - "校准周期", - "校准时长" - ], - "ParamVal": [ - 0, - 1000, - 30 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 35, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 20, - 25 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 36, - "ParamCount": 5, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S" - ], - "ParamVal": [ - 34, - 8000, - 150, - 400, - 20 - ], - "TestStandard": [ - { - "Max": 5000, - "Min": 200 - }, - { - "Max": 450, - "Min": 120 - }, - { - "Max": 80, - "Min": 10 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 34, - 35, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 31, - "TaskBrief": "密码验证", - "TaskIndex": 37, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 38, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 60, - 60 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 39, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 20, - 20, - 20, - 1 - ], - "TestStandard": [ - { - "Max": 2000, - "Min": 800 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 25, - "TaskBrief": "起爆", - "TaskIndex": 40, - "ParamCount": 2, - "ParamInfo": [ - "起爆超时0.1ms", - "巡检脉冲" - ], - "ParamVal": [ - 2000, - 25 - ], - "TestStandard": [ - { - "Max": 280, - "Min": 23 - }, - { - "Max": 20, - "Min": 20 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "起爆用时", - "网络号" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 22, - "TaskBrief": "放电", - "TaskIndex": 41, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 42, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 43, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - } - ], - "MajorErrInfo": [ - { - "Info": "执行成功", - "MajorErrCode": 0, - "SubErrCode": [] - }, - { - "Info": "检测器异常", - "MajorErrCode": 1, - "SubErrCode": [ - 21, - 23 - ] - }, - { - "Info": "主电容异常", - "MajorErrCode": 2, - "SubErrCode": [ - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "Info": "接触异常", - "MajorErrCode": 3, - "SubErrCode": [ - 27, - 37 - ] - }, - { - "Info": "桥丝阻值异常", - "MajorErrCode": 4, - "SubErrCode": [ - 30 - ] - }, - { - "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 - ] - }, - { - "Info": "其他异常", - "MajorErrCode": 20, - "SubErrCode": [ - 255, - 254 - ] - } - ], - "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": 254, - "ErrFac": [ - "广播类命令执行错误" - ] - }, - { - "Info": "返回参数判断", - "ErrCode": 255, - "ErrFac": [] - } - ] -} \ No newline at end of file diff --git a/python/file/7.15.json b/python/file/7.15.json deleted file mode 100644 index 0d8913d..0000000 --- a/python/file/7.15.json +++ /dev/null @@ -1,1491 +0,0 @@ -{ - "PlanID": 49221637, - "PlanBrief": "代工厂成品测试", - "CheckSoftVersion": [ - 1, - 2 - ], - "CheckHardVersion": [ - 1 - ], - "TimeOutS": 30, - "TimeOutM": 36, - "TimeOutUI": 38, - "TaskIDMax": 26, - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 4, - "ParamInfo": [ - "预设电压1", - "预设电压2", - "预设电压3", - "预设电压4" - ], - "ParamVal": [ - 88, - 120, - 280, - 330 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 34, - "TaskBrief": "桥丝电阻测试", - "TaskIndex": 1, - "ParamCount": 1, - "ParamInfo": [ - "测量模式" - ], - "ParamVal": [ - 0 - ], - "TestStandard": [ - { - "Max": 1600, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "电容0.1Ω" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 2, - "ParamCount": 3, - "ParamInfo": [ - "总线电压", - "采样超时0.1ms", - "计时启停ADC" - ], - "ParamVal": [ - 88, - 20000, - 150 - ], - "TestStandard": [ - { - "Max": 93, - "Min": 83 - }, - { - "Max": 700, - "Min": 100 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 3, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 350, - "Min": 150 - }, - { - "Max": 350, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 5, - "TaskBrief": "写配置参数", - "TaskIndex": 4, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 6, - "TaskBrief": "验证配置", - "TaskIndex": 5, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 7, - "TaskBrief": "模拟注码", - "TaskIndex": 6, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 7, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 8, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 10, - 16000, - 10 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 255, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 11, - "TaskBrief": "桥丝检测", - "TaskIndex": 9, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 60, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "桥丝ADC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 10, - "ParamCount": 2, - "ParamInfo": [ - " 1快速0全", - "校准周期" - ], - "ParamVal": [ - 1, - 1000 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 12, - "TaskBrief": "电容测量", - "TaskIndex": 11, - "ParamCount": 2, - "ParamInfo": [ - "测试电压", - "超时时间0.1ms" - ], - "ParamVal": [ - 17, - 20000 - ], - "TestStandard": [ - { - "Max": 900, - "Min": 600 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "电容容量0.1uF" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 12, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 8, - 8 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 13, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 14, - "ParamCount": 1, - "ParamInfo": [ - "延时时间0.1s" - ], - "ParamVal": [ - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线低压", - "TaskIndex": 15, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 120 - ], - "TestStandard": [ - { - "Max": 125, - "Min": 115 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 36, - "TaskBrief": "验证三码", - "TaskIndex": 16, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 17, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 10, - 16000, - 10, - 1 - ], - "TestStandard": [ - { - "Max": 3000, - "Min": 2000 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 18, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 40, - 40 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 19, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 10, - 15 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "低压总线电流", - "TaskIndex": 20, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 350, - "Min": 120 - }, - { - "Max": 350, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线高压", - "TaskIndex": 21, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 330 - ], - "TestStandard": [ - { - "Max": 335, - "Min": 325 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 22, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 10, - 15 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 23, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "高压总线电流", - "TaskIndex": 24, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 400, - "Min": 120 - }, - { - "Max": 400, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 25, - "ParamCount": 6, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S", - "电流监控0.1S" - ], - "ParamVal": [ - 153, - 20000, - 500, - 400, - 20, - 20 - ], - "TestStandard": [ - { - "Max": 5000, - "Min": 800 - }, - { - "Max": 450, - "Min": 120 - }, - { - "Max": 170, - "Min": 80 - }, - { - "Max": 800, - "Min": 0 - } - ], - "ReturnCount": 4, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA", - "充电抖动ADV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 31, - 33, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 26, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 120 - ], - "TestStandard": [ - { - "Max": 125, - "Min": 115 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 27, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 20, - 20, - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 33, - "TaskBrief": "电容压差", - "TaskIndex": 28, - "ParamCount": 1, - "ParamInfo": [ - "断电时间0.1S" - ], - "ParamVal": [ - 40 - ], - "TestStandard": [ - { - "Max": 2000, - "Min": 800 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "压差mV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 22, - "TaskBrief": "放电", - "TaskIndex": 29, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 30, - "ParamCount": 1, - "ParamInfo": [ - "延时时间0.1s" - ], - "ParamVal": [ - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 31, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 88 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 32, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 22, - 2 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 33, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 34, - "ParamCount": 3, - "ParamInfo": [ - " 1快速0全", - "校准周期", - "校准时长" - ], - "ParamVal": [ - 0, - 1000, - 30 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 35, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 20, - 25 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 36, - "ParamCount": 5, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S" - ], - "ParamVal": [ - 34, - 8000, - 150, - 400, - 20 - ], - "TestStandard": [ - { - "Max": 5000, - "Min": 200 - }, - { - "Max": 450, - "Min": 120 - }, - { - "Max": 80, - "Min": 10 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 34, - 35, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 31, - "TaskBrief": "密码验证", - "TaskIndex": 37, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 38, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 60, - 60 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 39, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 20, - 20, - 20, - 1 - ], - "TestStandard": [ - { - "Max": 2000, - "Min": 800 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 25, - "TaskBrief": "起爆", - "TaskIndex": 40, - "ParamCount": 2, - "ParamInfo": [ - "起爆超时0.1ms", - "巡检脉冲" - ], - "ParamVal": [ - 2000, - 25 - ], - "TestStandard": [ - { - "Max": 280, - "Min": 23 - }, - { - "Max": 20, - "Min": 20 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "起爆用时", - "网络号" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 22, - "TaskBrief": "放电", - "TaskIndex": 41, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 42, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 43, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - } - ], - "MajorErrInfo": [ - { - "Info": "执行成功", - "MajorErrCode": 0, - "SubErrCode": [] - }, - { - "Info": "检测器异常", - "MajorErrCode": 1, - "SubErrCode": [ - 21, - 23 - ] - }, - { - "Info": "主电容异常", - "MajorErrCode": 2, - "SubErrCode": [ - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "Info": "接触异常", - "MajorErrCode": 3, - "SubErrCode": [ - 27, - 37 - ] - }, - { - "Info": "桥丝阻值异常", - "MajorErrCode": 4, - "SubErrCode": [ - 30 - ] - }, - { - "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 - ] - }, - { - "Info": "其他异常", - "MajorErrCode": 20, - "SubErrCode": [ - 255, - 254 - ] - } - ], - "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": 254, - "ErrFac": [ - "广播类命令执行错误" - ] - }, - { - "Info": "返回参数判断", - "ErrCode": 255, - "ErrFac": [] - } - ] -} \ No newline at end of file diff --git a/python/file/EX_Coder_Test_2023-07-21.json b/python/file/EX_Coder_Test_2023-07-21.json deleted file mode 100644 index 9c0ee97..0000000 --- a/python/file/EX_Coder_Test_2023-07-21.json +++ /dev/null @@ -1,758 +0,0 @@ -{ - "PlanID": 49614980, - "PlanBrief": "模拟工厂注码", - "CheckSoftVersion": [ - 1 - ], - "CheckHardVersion": [ - 1 - ], - "TimeOutS": 4, - "TimeOutM": 10, - "TimeOutUI": 12, - "TaskIDMax": 26, - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 1, - "ParamInfo": [ - "预设电压1" - ], - "ParamVal": [ - 88 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 1, - "ParamCount": 3, - "ParamInfo": [ - "总线电压", - "采样超时0.1ms", - "计时启停ADC" - ], - "ParamVal": [ - 88, - 5000, - 400 - ], - "TestStandard": [ - { - "Max": 95, - "Min": 80 - }, - { - "Max": 800, - "Min": 100 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 0 - }, - { - "TaskID": 32, - "TaskBrief": "加载配置", - "TaskIndex": 2, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 8, - "Min": 8 - }, - { - "Max": 4, - "Min": 4 - }, - { - "Max": 1, - "Min": 1 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "UID长度", - "密码长度", - "版本号" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 29, - "ResultErrCode": [ - 29, - 29, - 29, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流(0.1uA)", - "TaskIndex": 3, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 400, - "Min": 120 - }, - { - "Max": 400, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 4, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 14, - "ExecuteErrCode": 24, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 11, - "TaskBrief": "桥丝检测", - "TaskIndex": 5, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 240, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "桥丝ADC" - ], - "ErrJumpTo": 14, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 6, - "ParamCount": 5, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S" - ], - "ParamVal": [ - 34, - 5000, - 100, - 600, - 5 - ], - "TestStandard": [ - { - "Max": 4000, - "Min": 1000 - }, - { - "Max": 600, - "Min": 120 - }, - { - "Max": 100, - "Min": 10 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 34, - 35, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 7, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 130, - 0 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 14, - "ExecuteErrCode": 46, - "ResultErrCode": [ - 46 - ], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 8, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 9, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 20, - 100, - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 10, - "ParamCount": 3, - "ParamInfo": [ - " 1快速0全", - "校准周期", - "校准时长" - ], - "ParamVal": [ - 0, - 1000, - 110 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 11, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 10, - 10 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 46, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 12, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 20, - 100, - 20, - 1 - ], - "TestStandard": [ - { - "Max": 1700, - "Min": 800 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 255, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 13, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - } - ], - "MajorErrInfo": [ - { - "Info": "执行成功", - "MajorErrCode": 0, - "SubErrCode": [] - }, - { - "Info": "检测器异常", - "MajorErrCode": 1, - "SubErrCode": [ - 21, - 23 - ] - }, - { - "Info": "主电容异常", - "MajorErrCode": 2, - "SubErrCode": [ - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "Info": "接触异常", - "MajorErrCode": 3, - "SubErrCode": [ - 27, - 37 - ] - }, - { - "Info": "桥丝阻值异常", - "MajorErrCode": 4, - "SubErrCode": [ - 30 - ] - }, - { - "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 - ] - }, - { - "Info": "其他异常", - "MajorErrCode": 20, - "SubErrCode": [ - 255, - 254 - ] - } - ], - "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": 254, - "ErrFac": [ - "广播类命令执行错误" - ] - }, - { - "Info": "返回参数判断", - "ErrCode": 255, - "ErrFac": [] - } - ] -} \ No newline at end of file diff --git a/python/file/EX_Coder_Test_2023-07-21.xlsx b/python/file/EX_Coder_Test_2023-07-21.xlsx deleted file mode 100644 index d2af77c79d629af4697ca251d72d666cabde6e83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12348 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 diff --git a/python/file/EX_Coder_Test_2023-07-4.json b/python/file/EX_Coder_Test_2023-07-4.json deleted file mode 100644 index bad922c..0000000 --- a/python/file/EX_Coder_Test_2023-07-4.json +++ /dev/null @@ -1,638 +0,0 @@ -{ - "PlanID": 48500867, - "PlanBrief": "模拟工厂注码", - "CheckSoftVersion": [ - 1 - ], - "CheckHardVersion": [ - 1 - ], - "TimeOutS": 4, - "TimeOutM": 10, - "TimeOutUI": 12, - "TaskIDMax": 26, - - - "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 - ] - }, - { - "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 - ] - }, - { - "Info": "其他异常", - "MajorErrCode": 20, - "SubErrCode": [ - 255 - ] - }, - { - "Info": "通信失败", - "MajorErrCode": 208, - "SubErrCode": [ - ] - }, - { - "Info": "脚本执行失败", - "MajorErrCode": 209, - "SubErrCode": [ - ] - }, - { - "Info": "数据长度与方案不符", - "MajorErrCode": 210, - "SubErrCode": [ - ] - }, - { - "Info": "方案ID不符", - "MajorErrCode": 211, - "SubErrCode": [ - ] - }, - { - "Info": "检测项目不足,无法判定", - "MajorErrCode": 212, - "SubErrCode": [ - ] - }, - { - "Info": "数据不合规", - "MajorErrCode": 213, - "SubErrCode": [ - ] - } - ], - "SubErrInfo": [ - { - "Info": "预设电压异常", - "ErrCode": 21 - }, - { - "Info": "上电充能错误", - "ErrCode": 22 - }, - { - "Info": "电压设置异常", - "ErrCode": 23 - }, - { - "Info": "UID扫描错误", - "ErrCode": 24 - }, - { - "Info": "OTP错误", - "ErrCode": 25 - }, - { - "Info": "通讯电流错误", - "ErrCode": 26 - }, - { - "Info": "基本电流错误", - "ErrCode": 27 - }, - { - "Info": "读取芯片ID错误", - "ErrCode": 28 - }, - { - "Info": "密码验证错误", - "ErrCode": 29 - }, - { - "Info": "DAC比较错误", - "ErrCode": 30 - }, - { - "Info": "高压充能错误", - "ErrCode": 31 - }, - { - "Info": "充电电流错误", - "ErrCode": 32 - }, - { - "Info": "高压充末电流错误", - "ErrCode": 33 - }, - { - "Info": "低压充电能量错误", - "ErrCode": 34 - }, - { - "Info": "低压充末电流错误", - "ErrCode": 35 - }, - { - "Info": "写延时错误", - "ErrCode": 36 - }, - { - "Info": "读延时错误", - "ErrCode": 37 - }, - { - "Info": "芯片程测错误", - "ErrCode": 38 - }, - { - "Info": "时钟校准错误", - "ErrCode": 39 - }, - { - "Info": "写工厂信息错误", - "ErrCode": 40 - }, - { - "Info": "模拟起爆错误", - "ErrCode": 41 - }, - { - "Info": "芯片状态码异常", - "ErrCode": 42 - }, - { - "Info": "通信电流错误", - "ErrCode": 43 - }, - { - "Info": "反码时长错误", - "ErrCode": 44 - }, - { - "Info": "复位放电错误", - "ErrCode": 45 - }, - { - "Info": "检测器执行异常", - "ErrCode": 254 - }, - { - "Info": "返回参数判断", - "ErrCode": 255 - } - ], - - - - - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 1, - "ParamInfo": [ - "预设电压1" - ], - "ParamVal": [ - 88 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 1, - "ParamCount": 3, - "ParamInfo": [ - "总线电压", - "采样超时0.1ms", - "计时启停ADC" - ], - "ParamVal": [ - 88, - 5000, - 400 - ], - "TestStandard": [ - { - "Max": 95, - "Min": 80 - }, - { - "Max": 800, - "Min": 100 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 0 - }, - { - "TaskID": 5, - "TaskBrief": "写配置参数(正式删除)", - "TaskIndex": 2, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 13, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 1 - }, - { - "TaskID": 32, - "TaskBrief": "加载配置", - "TaskIndex": 3, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 8, - "Min": 8 - }, - { - "Max": 4, - "Min": 4 - }, - { - "Max": 1, - "Min": 1 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "UID长度", - "密码长度", - "版本号" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 29, - "ResultErrCode": [ - 29, - 29, - 29, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 4, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 24, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 11, - "TaskBrief": "桥丝检测", - "TaskIndex": 5, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 240, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "桥丝ADC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 6, - "ParamCount": 5, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S" - ], - "ParamVal": [ - 34, - 5000, - 100, - 600, - 5 - ], - "TestStandard": [ - { - "Max": 4000, - "Min": 1000 - }, - { - "Max": 600, - "Min": 120 - }, - { - "Max": 100, - "Min": 10 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 34, - 35, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 7, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 130, - 0 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 15, - "ExecuteErrCode": 46, - "ResultErrCode": [ - 46 - ], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 8, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 9, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 20, - 100, - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 10, - "ParamCount": 3, - "ParamInfo": [ - " 1快速0全", - "校准周期", - "校准时长" - ], - "ParamVal": [ - 0, - 1000, - 110 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 11, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 10, - 10 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 46, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 12, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 20, - 100, - 20, - 1 - ], - "TestStandard": [ - { - "Max": 1700, - "Min": 800 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 255, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 13, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - } - ] -} \ No newline at end of file diff --git a/python/file/EX_Coder_Test_2023-07-6.json b/python/file/EX_Coder_Test_2023-07-6.json deleted file mode 100644 index 1bc91f7..0000000 --- a/python/file/EX_Coder_Test_2023-07-6.json +++ /dev/null @@ -1,785 +0,0 @@ -{ - "PlanID": 48631940, - "PlanBrief": "模拟工厂注码", - "CheckSoftVersion": [ - 1 - ], - "CheckHardVersion": [ - 1 - ], - "TimeOutS": 4, - "TimeOutM": 10, - "TimeOutUI": 12, - "TaskIDMax": 26, - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 1, - "ParamInfo": [ - "预设电压1" - ], - "ParamVal": [ - 88 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 1, - "ParamCount": 3, - "ParamInfo": [ - "总线电压", - "采样超时0.1ms", - "计时启停ADC" - ], - "ParamVal": [ - 88, - 5000, - 400 - ], - "TestStandard": [ - { - "Max": 95, - "Min": 80 - }, - { - "Max": 800, - "Min": 100 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 0 - }, - { - "TaskID": 5, - "TaskBrief": "写配置参数", - "TaskIndex": 2, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 1 - }, - { - "TaskID": 32, - "TaskBrief": "加载配置", - "TaskIndex": 3, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 8, - "Min": 8 - }, - { - "Max": 4, - "Min": 4 - }, - { - "Max": 1, - "Min": 1 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "UID长度", - "密码长度", - "版本号" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 29, - "ResultErrCode": [ - 29, - 29, - 29, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流(0.1uA)", - "TaskIndex": 4, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 400, - "Min": 120 - }, - { - "Max": 400, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 5, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 14, - "ExecuteErrCode": 24, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 11, - "TaskBrief": "桥丝检测", - "TaskIndex": 6, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 240, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "桥丝ADC" - ], - "ErrJumpTo": 14, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 7, - "ParamCount": 5, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S" - ], - "ParamVal": [ - 34, - 5000, - 100, - 600, - 5 - ], - "TestStandard": [ - { - "Max": 4000, - "Min": 1000 - }, - { - "Max": 600, - "Min": 120 - }, - { - "Max": 100, - "Min": 10 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 34, - 35, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 8, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 130, - 0 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 14, - "ExecuteErrCode": 46, - "ResultErrCode": [ - 46 - ], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 9, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 10, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 20, - 100, - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 11, - "ParamCount": 3, - "ParamInfo": [ - " 1快速0全", - "校准周期", - "校准时长" - ], - "ParamVal": [ - 0, - 1000, - 110 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 12, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 10, - 10 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 46, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 13, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 20, - 100, - 20, - 1 - ], - "TestStandard": [ - { - "Max": 1700, - "Min": 800 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 255, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 14, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - } - ], - "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 - ] - }, - { - "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 - ] - }, - { - "Info": "其他异常", - "MajorErrCode": 20, - "SubErrCode": [ - 255 - ] - } - ], - "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": 254, - "ErrFac": [ - "广播类命令执行错误" - ] - }, - { - "Info": "返回参数判断", - "ErrCode": 255, - "ErrFac": [] - } - ] -} \ No newline at end of file diff --git a/python/file/EX_Coder_Test_2023-07-6.xlsx b/python/file/EX_Coder_Test_2023-07-6.xlsx deleted file mode 100644 index df9732be4d4c1d018c18fcae3f33557fb1990aeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12341 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

(`>KH2y*%Dsvr|B{z?m+HLVI5_`ut+t(^ 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 ZU?nFB@gB*3=U(sth4&n6l;-!Z{|B+@w$lIr diff --git a/python/file/EX_Coder_Test_2023-07-7.json b/python/file/EX_Coder_Test_2023-07-7.json deleted file mode 100644 index 1bc91f7..0000000 --- a/python/file/EX_Coder_Test_2023-07-7.json +++ /dev/null @@ -1,785 +0,0 @@ -{ - "PlanID": 48631940, - "PlanBrief": "模拟工厂注码", - "CheckSoftVersion": [ - 1 - ], - "CheckHardVersion": [ - 1 - ], - "TimeOutS": 4, - "TimeOutM": 10, - "TimeOutUI": 12, - "TaskIDMax": 26, - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 1, - "ParamInfo": [ - "预设电压1" - ], - "ParamVal": [ - 88 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 1, - "ParamCount": 3, - "ParamInfo": [ - "总线电压", - "采样超时0.1ms", - "计时启停ADC" - ], - "ParamVal": [ - 88, - 5000, - 400 - ], - "TestStandard": [ - { - "Max": 95, - "Min": 80 - }, - { - "Max": 800, - "Min": 100 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 0 - }, - { - "TaskID": 5, - "TaskBrief": "写配置参数", - "TaskIndex": 2, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 1 - }, - { - "TaskID": 32, - "TaskBrief": "加载配置", - "TaskIndex": 3, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 8, - "Min": 8 - }, - { - "Max": 4, - "Min": 4 - }, - { - "Max": 1, - "Min": 1 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "UID长度", - "密码长度", - "版本号" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 29, - "ResultErrCode": [ - 29, - 29, - 29, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流(0.1uA)", - "TaskIndex": 4, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 400, - "Min": 120 - }, - { - "Max": 400, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 5, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 14, - "ExecuteErrCode": 24, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 11, - "TaskBrief": "桥丝检测", - "TaskIndex": 6, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 240, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "桥丝ADC" - ], - "ErrJumpTo": 14, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 7, - "ParamCount": 5, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S" - ], - "ParamVal": [ - 34, - 5000, - 100, - 600, - 5 - ], - "TestStandard": [ - { - "Max": 4000, - "Min": 1000 - }, - { - "Max": 600, - "Min": 120 - }, - { - "Max": 100, - "Min": 10 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 34, - 35, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 8, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 130, - 0 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 14, - "ExecuteErrCode": 46, - "ResultErrCode": [ - 46 - ], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 9, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 10, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 20, - 100, - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 11, - "ParamCount": 3, - "ParamInfo": [ - " 1快速0全", - "校准周期", - "校准时长" - ], - "ParamVal": [ - 0, - 1000, - 110 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 12, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 10, - 10 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 46, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 13, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 20, - 100, - 20, - 1 - ], - "TestStandard": [ - { - "Max": 1700, - "Min": 800 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 255, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 14, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - } - ], - "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 - ] - }, - { - "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 - ] - }, - { - "Info": "其他异常", - "MajorErrCode": 20, - "SubErrCode": [ - 255 - ] - } - ], - "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": 254, - "ErrFac": [ - "广播类命令执行错误" - ] - }, - { - "Info": "返回参数判断", - "ErrCode": 255, - "ErrFac": [] - } - ] -} \ No newline at end of file diff --git a/python/file/EX_Coder_Test_2023-07-7.xlsx b/python/file/EX_Coder_Test_2023-07-7.xlsx deleted file mode 100644 index 207994c5828bc149fb506e9da01f1dcbab3c9da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12341 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

@MQ(1_jN!)A}>hF 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

ITJSm5x%}H9;28NUaue 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 literal 0 HcmV?d00001 diff --git a/python/file/XT_Foundry_Test-7-15.json b/python/file/XT_Foundry_Test-7-15.json deleted file mode 100644 index 2017aae..0000000 --- a/python/file/XT_Foundry_Test-7-15.json +++ /dev/null @@ -1,1491 +0,0 @@ -{ - "PlanID": 49221636, - "PlanBrief": "代工厂成品测试", - "CheckSoftVersion": [ - 1, - 2 - ], - "CheckHardVersion": [ - 1 - ], - "TimeOutS": 90, - "TimeOutM": 30, - "TimeOutUI": 36, - "TaskIDMax": 26, - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 4, - "ParamInfo": [ - "预设电压1", - "预设电压2", - "预设电压3", - "预设电压4" - ], - "ParamVal": [ - 88, - 120, - 280, - 330 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 34, - "TaskBrief": "桥丝电阻测试", - "TaskIndex": 1, - "ParamCount": 1, - "ParamInfo": [ - "测量模式" - ], - "ParamVal": [ - 0 - ], - "TestStandard": [ - { - "Max": 1600, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "电容0.1Ω" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 2, - "ParamCount": 3, - "ParamInfo": [ - "总线电压", - "采样超时0.1ms", - "计时启停ADC" - ], - "ParamVal": [ - 88, - 20000, - 150 - ], - "TestStandard": [ - { - "Max": 93, - "Min": 83 - }, - { - "Max": 700, - "Min": 100 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 3, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 350, - "Min": 150 - }, - { - "Max": 350, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 5, - "TaskBrief": "写配置参数", - "TaskIndex": 4, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 6, - "TaskBrief": "验证配置", - "TaskIndex": 5, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 7, - "TaskBrief": "模拟注码", - "TaskIndex": 6, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 7, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 8, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 10, - 16000, - 10 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 255, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 11, - "TaskBrief": "桥丝检测", - "TaskIndex": 9, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 30, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "桥丝ADC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 10, - "ParamCount": 2, - "ParamInfo": [ - " 1快速0全", - "校准周期" - ], - "ParamVal": [ - 1, - 1000 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 12, - "TaskBrief": "电容测量", - "TaskIndex": 11, - "ParamCount": 2, - "ParamInfo": [ - "测试电压", - "超时时间0.1ms" - ], - "ParamVal": [ - 17, - 20000 - ], - "TestStandard": [ - { - "Max": 800, - "Min": 600 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "电容容量0.1uF" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 12, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 8, - 8 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 13, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 14, - "ParamCount": 1, - "ParamInfo": [ - "延时时间0.1s" - ], - "ParamVal": [ - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 15, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 120 - ], - "TestStandard": [ - { - "Max": 125, - "Min": 115 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 36, - "TaskBrief": "验证三码", - "TaskIndex": 16, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 17, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 10, - 16000, - 10, - 1 - ], - "TestStandard": [ - { - "Max": 3000, - "Min": 2000 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 18, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 40, - 40 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 19, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 10, - 15 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 20, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 300, - "Min": 120 - }, - { - "Max": 300, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 21, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 330 - ], - "TestStandard": [ - { - "Max": 335, - "Min": 325 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 22, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 10, - 15 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 23, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 24, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 350, - "Min": 120 - }, - { - "Max": 350, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 25, - "ParamCount": 6, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S", - "电流监控0.1S" - ], - "ParamVal": [ - 153, - 20000, - 500, - 400, - 20, - 20 - ], - "TestStandard": [ - { - "Max": 5000, - "Min": 800 - }, - { - "Max": 450, - "Min": 120 - }, - { - "Max": 170, - "Min": 80 - }, - { - "Max": 800, - "Min": 0 - } - ], - "ReturnCount": 4, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA", - "充电抖动ADV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 31, - 33, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 26, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 120 - ], - "TestStandard": [ - { - "Max": 125, - "Min": 115 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 27, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 20, - 20, - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 33, - "TaskBrief": "电容压差", - "TaskIndex": 28, - "ParamCount": 1, - "ParamInfo": [ - "断电时间0.1S" - ], - "ParamVal": [ - 40 - ], - "TestStandard": [ - { - "Max": 1500, - "Min": 800 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "压差mV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 22, - "TaskBrief": "放电", - "TaskIndex": 29, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 30, - "ParamCount": 1, - "ParamInfo": [ - "延时时间0.1s" - ], - "ParamVal": [ - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 31, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 88 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 32, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 22, - 2 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 33, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 34, - "ParamCount": 3, - "ParamInfo": [ - " 1快速0全", - "校准周期", - "校准时长" - ], - "ParamVal": [ - 0, - 1000, - 30 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 35, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 20, - 25 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 36, - "ParamCount": 5, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S" - ], - "ParamVal": [ - 34, - 8000, - 150, - 400, - 20 - ], - "TestStandard": [ - { - "Max": 5000, - "Min": 200 - }, - { - "Max": 450, - "Min": 120 - }, - { - "Max": 80, - "Min": 10 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 34, - 35, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 31, - "TaskBrief": "密码验证", - "TaskIndex": 37, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 38, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 60, - 60 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 39, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 20, - 20, - 20, - 1 - ], - "TestStandard": [ - { - "Max": 2000, - "Min": 800 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 25, - "TaskBrief": "起爆", - "TaskIndex": 40, - "ParamCount": 2, - "ParamInfo": [ - "起爆超时0.1ms", - "巡检脉冲" - ], - "ParamVal": [ - 2000, - 25 - ], - "TestStandard": [ - { - "Max": 280, - "Min": 23 - }, - { - "Max": 20, - "Min": 20 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "起爆用时", - "网络号" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 22, - "TaskBrief": "放电", - "TaskIndex": 41, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 42, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 43, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - } - ], - "MajorErrInfo": [ - { - "Info": "执行成功", - "MajorErrCode": 0, - "SubErrCode": [] - }, - { - "Info": "检测器异常", - "MajorErrCode": 1, - "SubErrCode": [ - 21, - 23 - ] - }, - { - "Info": "主电容异常", - "MajorErrCode": 2, - "SubErrCode": [ - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "Info": "接触异常", - "MajorErrCode": 3, - "SubErrCode": [ - 27, - 37 - ] - }, - { - "Info": "桥丝阻值异常", - "MajorErrCode": 4, - "SubErrCode": [ - 30 - ] - }, - { - "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 - ] - }, - { - "Info": "其他异常", - "MajorErrCode": 20, - "SubErrCode": [ - 255, - 254 - ] - } - ], - "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": 254, - "ErrFac": [ - "广播类命令执行错误" - ] - }, - { - "Info": "返回参数判断", - "ErrCode": 255, - "ErrFac": [] - } - ] -} \ No newline at end of file diff --git a/python/file/XT_Foundry_Test-7-15.xlsx b/python/file/XT_Foundry_Test-7-15.xlsx deleted file mode 100644 index d3c8c232d28cd9a0ce18c660009c3af2ce26d31d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12583 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 gnQ1{l{sURbOF_Of*AJe^ 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 IeggpfAAo5M_W%F@ diff --git a/python/file/XT_Foundry_Test2.json b/python/file/XT_Foundry_Test2.json deleted file mode 100644 index 3f64384..0000000 --- a/python/file/XT_Foundry_Test2.json +++ /dev/null @@ -1,1480 +0,0 @@ -{ - "PlanID": 49156098, - "PlanBrief": "代工厂成品测试", - "CheckSoftVersion": [ - 1, - 2 - ], - "CheckHardVersion": [ - 1 - ], - "TimeOutS": 90, - "TimeOutM": 96, - "TimeOutUI": 98, - "TaskIDMax": 26, - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 4, - "ParamInfo": [ - "预设电压1", - "预设电压2", - "预设电压3", - "预设电压4" - ], - "ParamVal": [ - 88, - 120, - 280, - 330 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 1, - "ParamCount": 3, - "ParamInfo": [ - "总线电压", - "采样超时0.1ms", - "计时启停ADC" - ], - "ParamVal": [ - 88, - 20000, - 150 - ], - "TestStandard": [ - { - "Max": 93, - "Min": 83 - }, - { - "Max": 700, - "Min": 100 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 2, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 300, - "Min": 150 - }, - { - "Max": 300, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 5, - "TaskBrief": "写配置参数", - "TaskIndex": 3, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 6, - "TaskBrief": "验证配置", - "TaskIndex": 4, - "ParamCount": 4, - "ParamInfo": [ - "UID长度", - "密码长度", - "电流挡位", - "版本号" - ], - "ParamVal": [ - 8, - 4, - 0, - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 7, - "TaskBrief": "模拟注码", - "TaskIndex": 5, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 6, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 7, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 10, - 16000, - 10 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 11, - "TaskBrief": "桥丝检测", - "TaskIndex": 8, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 30, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "桥丝ADC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 30 - ], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 9, - "ParamCount": 2, - "ParamInfo": [ - " 1快速0全", - "校准周期" - ], - "ParamVal": [ - 1, - 1000 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 12, - "TaskBrief": "电容测量", - "TaskIndex": 10, - "ParamCount": 2, - "ParamInfo": [ - "测试电压", - "超时时间0.1ms" - ], - "ParamVal": [ - 17, - 20000 - ], - "TestStandard": [ - { - "Max": 80, - "Min": 60 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "电容容量0.1uF" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 11, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 8, - 8 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 29 - ], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 12, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 13, - "ParamCount": 1, - "ParamInfo": [ - "延时时间0.1s" - ], - "ParamVal": [ - 1 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 254 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 14, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 120 - ], - "TestStandard": [ - { - "Max": 125, - "Min": 115 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 36, - "TaskBrief": "验证三码", - "TaskIndex": 15, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 16, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 10, - 16000, - 10, - 1 - ], - "TestStandard": [ - { - "Max": 200, - "Min": 80 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 17, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 40, - 40 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 29 - ], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 18, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 10, - 15 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 19, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 300, - "Min": 120 - }, - { - "Max": 300, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 20, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 330 - ], - "TestStandard": [ - { - "Max": 335, - "Min": 325 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 21, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 10, - 15 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 22, - "ParamCount": 2, - "ParamInfo": [ - "UID长度", - "使1/失0UID对比" - ], - "ParamVal": [ - 8, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 23, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 350, - "Min": 120 - }, - { - "Max": 350, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 24, - "ParamCount": 6, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S", - "电流监控0.1S" - ], - "ParamVal": [ - 153, - 20000, - 500, - 400, - 20, - 20 - ], - "TestStandard": [ - { - "Max": 5000, - "Min": 800 - }, - { - "Max": 450, - "Min": 120 - }, - { - "Max": 170, - "Min": 80 - }, - { - "Max": 500, - "Min": 0 - } - ], - "ReturnCount": 4, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA", - "充电抖动ADV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 31, - 33, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 25, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 120 - ], - "TestStandard": [ - { - "Max": 125, - "Min": 115 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 9, - "TaskBrief": "设置现场值", - "TaskIndex": 26, - "ParamCount": 3, - "ParamInfo": [ - "编号", - "延时", - "孔号" - ], - "ParamVal": [ - 20, - 20, - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 33, - "TaskBrief": "电容压差", - "TaskIndex": 27, - "ParamCount": 1, - "ParamInfo": [ - "断电时间0.1S" - ], - "ParamVal": [ - 40 - ], - "TestStandard": [ - { - "Max": 1500, - "Min": 800 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "压差mV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 22, - "TaskBrief": "放电", - "TaskIndex": 28, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 29, - "ParamCount": 1, - "ParamInfo": [ - "延时时间0.1s" - ], - "ParamVal": [ - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 30, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 88 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 31, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 22, - 2 - ], - "TestStandard": [ - { - "Max": 255, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "状态值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 32, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 19, - "TaskBrief": "时钟校准", - "TaskIndex": 33, - "ParamCount": 3, - "ParamInfo": [ - " 1快速0全", - "校准周期", - "校准时长" - ], - "ParamVal": [ - 0, - 1000, - 30 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 23, - "TaskBrief": "在线检测", - "TaskIndex": 34, - "ParamCount": 2, - "ParamInfo": [ - "网络号", - "脉冲个数" - ], - "ParamVal": [ - 20, - 25 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 8, - "TaskBrief": "充能统计", - "TaskIndex": 35, - "ParamCount": 5, - "ParamInfo": [ - "充电挡位", - "统计超时", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S" - ], - "ParamVal": [ - 34, - 8000, - 150, - 40, - 20 - ], - "TestStandard": [ - { - "Max": 5000, - "Min": 200 - }, - { - "Max": 450, - "Min": 120 - }, - { - "Max": 170, - "Min": 80 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 34, - 35, - 32, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 31, - "TaskBrief": "密码验证", - "TaskIndex": 36, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 24, - "TaskBrief": "状态码检测", - "TaskIndex": 37, - "ParamCount": 2, - "ParamInfo": [ - "比较掩码", - "比较位" - ], - "ParamVal": [ - 60, - 60 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 29 - ], - "RetryCount": 0 - }, - { - "TaskID": 10, - "TaskBrief": "比对现场值", - "TaskIndex": 38, - "ParamCount": 4, - "ParamInfo": [ - "编号", - "延时", - "孔号", - "1使/0失反馈采集" - ], - "ParamVal": [ - 20, - 20, - 20, - 1 - ], - "TestStandard": [ - { - "Max": 200, - "Min": 80 - }, - { - "Max": 400, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 43, - 44, - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 25, - "TaskBrief": "起爆", - "TaskIndex": 39, - "ParamCount": 2, - "ParamInfo": [ - "起爆超时0.1ms", - "巡检脉冲" - ], - "ParamVal": [ - 2000, - 25 - ], - "TestStandard": [ - { - "Max": 40, - "Min": 23 - }, - { - "Max": 20, - "Min": 20 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "起爆用时", - "网络号" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255, - 255 - ], - "RetryCount": 0 - }, - { - "TaskID": 22, - "TaskBrief": "放电", - "TaskIndex": 40, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 26, - "TaskBrief": "复位", - "TaskIndex": 41, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 27, - "TaskBrief": "关总线", - "TaskIndex": 42, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0 - }, - { - "TaskID": 37, - "TaskBrief": "在线检测", - "TaskIndex": 43, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0 - } - ], - "MajorErrInfo": [ - { - "Info": "执行成功", - "MajorErrCode": 0, - "SubErrCode": [] - }, - { - "Info": "检测器异常", - "MajorErrCode": 1, - "SubErrCode": [ - 21, - 23 - ] - }, - { - "Info": "主电容异常", - "MajorErrCode": 2, - "SubErrCode": [ - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "Info": "接触异常", - "MajorErrCode": 3, - "SubErrCode": [ - 27, - 37 - ] - }, - { - "Info": "桥丝阻值异常", - "MajorErrCode": 4, - "SubErrCode": [ - 30 - ] - }, - { - "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 - ] - }, - { - "Info": "其他异常", - "MajorErrCode": 20, - "SubErrCode": [ - 255, - 254 - ] - } - ], - "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": 254, - "ErrFac": [ - "广播类命令执行错误" - ] - }, - { - "Info": "返回参数判断", - "ErrCode": 255, - "ErrFac": [] - } - ] -} \ No newline at end of file diff --git a/python/file/XT_Foundry_Test2.xlsx b/python/file/XT_Foundry_Test2.xlsx deleted file mode 100644 index 44b071f9ed6017388cb0d64953e3f6926452a19b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12591 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 diff --git a/python/file/Ym_Checker.bin b/python/file/Ym_Checker.bin deleted file mode 100644 index 17b92472ee1263d970dab0662f7d6b1ba29aeff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36356 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 diff --git a/python/file/Ym_Coder 2023-8-16.bin b/python/file/Ym_Coder 2023-8-16.bin deleted file mode 100644 index 8ce5ef20b13fef6e8d2c0b16d0b7571f2c60bfc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39188 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 diff --git a/python/file/Ym_Coder_Lock.bin b/python/file/Ym_Coder_Lock.bin deleted file mode 100644 index 6d0b2f54b17ef65abab6ab27699fc2d70282127b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38484 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 PCQz6pp2ddkw*3DE-|XA1 diff --git a/python/file/Ym_Coder_V011.bin b/python/file/Ym_Coder_V011.bin new file mode 100644 index 0000000000000000000000000000000000000000..2f1a94b39923d0ec8469fcf9b6faa4ebbd255dcf GIT binary patch literal 39836 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 ~ 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 literal 0 HcmV?d00001 diff --git a/python/file/checker_ye_cfg.json b/python/file/checker_ye_cfg.json deleted file mode 100644 index be3a089..0000000 --- a/python/file/checker_ye_cfg.json +++ /dev/null @@ -1,703 +0,0 @@ -{ - "PlanID": 15, - "PlanBrief": "电解电容雷管厂高压检测", - "CheckSoftVersion": [ - 6, - 7, - 8 - ], - "CheckHardVersion": [ - 0, - 65535 - ], - "TimeOutS": 34, - "TimeOutM": 40, - "TimeOutUI": 42, - "TaskIDMax": 26, - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 7, - "ParamInfo": [ - "预设电压1", - "预设电压2", - "预设电压3", - "预设电压4", - "预设电压5", - "预设电压6", - "预设电压7" - ], - "ParamVal": [ - 65, - 80, - 85, - 175, - 205, - 215, - 255 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 21, - "ResultErrCode": [], - "RetryCount": 1 - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 1, - "ParamCount": 2, - "ParamInfo": [ - "总线电压", - "计时启停ADC" - ], - "ParamVal": [ - 80, - 2500 - ], - "TestStandard": [ - { - "Max": 85, - "Min": 75 - }, - { - "Max": 900, - "Min": 150 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 22, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 1 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 2, - "ParamCount": 2, - "ParamInfo": [ - "使1/失0反码采集", - "使0/失1UID全0验证" - ], - "ParamVal": [ - 1, - 0 - ], - "TestStandard": [ - { - "Max": 90, - "Min": 40 - }, - { - "Max": 400, - "Min": 250 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 24, - "ResultErrCode": [ - 43, - 42, - 255, - 255, - 255, - 255, - 255, - 255 - ], - "RetryCount": 1 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 3, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 260, - "Min": 120 - }, - { - "Max": 260, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 27, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 6, - "TaskBrief": "读取芯片代码", - "TaskIndex": 4, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 26, - "ExecuteErrCode": 28, - "ResultErrCode": [ - 28 - ], - "RetryCount": 1 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 5, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 205 - ], - "TestStandard": [ - { - "Max": 210, - "Min": 200 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 23, - "ResultErrCode": [ - 23 - ], - "RetryCount": 1 - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 6, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 270, - "Min": 120 - }, - { - "Max": 270, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 27, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0 - }, - { - "TaskID": 11, - "TaskBrief": "充能统计", - "TaskIndex": 7, - "ParamCount": 4, - "ParamInfo": [ - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S", - "电流监控0.1S" - ], - "ParamVal": [ - 1000, - 500, - 60, - 20 - ], - "TestStandard": [ - { - "Max": 20000, - "Min": 13000 - }, - { - "Max": 600, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 31, - "ResultErrCode": [ - 31, - 32, - 255, - 255 - ], - "RetryCount": 1 - }, - { - "TaskID": 12, - "TaskBrief": "充电电压检测", - "TaskIndex": 8, - "ParamCount": 2, - "ParamInfo": [ - "起始DAC", - "结束DAC" - ], - "ParamVal": [ - 31, - 29 - ], - "TestStandard": [ - { - "Max": 31, - "Min": 29 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "扫描通过的DAC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 30 - ], - "RetryCount": 1 - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 9, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 65 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 23, - "ResultErrCode": [ - 255 - ], - "RetryCount": 1 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 10, - "ParamCount": 1, - "ParamInfo": [ - "延时时间" - ], - "ParamVal": [ - 30 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 1 - }, - { - "TaskID": 12, - "TaskBrief": "充电电压检测", - "TaskIndex": 11, - "ParamCount": 2, - "ParamInfo": [ - "起始DAC", - "结束DAC" - ], - "ParamVal": [ - 31, - 28 - ], - "TestStandard": [ - { - "Max": 31, - "Min": 28 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "扫描通过的DAC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 30 - ], - "RetryCount": 1 - }, - { - "TaskID": 18, - "TaskBrief": "复位放电", - "TaskIndex": 12, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 45, - "ResultErrCode": [], - "RetryCount": 2 - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 13, - "ParamCount": 1, - "ParamInfo": [ - "延时时间" - ], - "ParamVal": [ - 80 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 1 - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 14, - "ParamCount": 2, - "ParamInfo": [ - "使1/失0反码采集", - "使0/失1UID全0验证" - ], - "ParamVal": [ - 0, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 24, - "ResultErrCode": [ - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255 - ], - "RetryCount": 1 - }, - { - "TaskID": 11, - "TaskBrief": "充能统计", - "TaskIndex": 15, - "ParamCount": 4, - "ParamInfo": [ - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S", - "电流监控0.1S" - ], - "ParamVal": [ - 800, - 400, - 40, - 0 - ], - "TestStandard": [ - { - "Max": 4500, - "Min": 2500 - }, - { - "Max": 450, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 34, - "ResultErrCode": [ - 34, - 35, - 255, - 255 - ], - "RetryCount": 1 - }, - { - "TaskID": 5, - "TaskBrief": "密码验证", - "TaskIndex": 16, - "ParamCount": 1, - "ParamInfo": [ - "0码/1原码验证" - ], - "ParamVal": [ - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 29, - "ResultErrCode": [], - "RetryCount": 1 - }, - { - "TaskID": 7, - "TaskBrief": "OTP检测", - "TaskIndex": 17, - "ParamCount": 3, - "ParamInfo": [ - "1关/0检UID密码为0", - "1关/0检延时保留区为0", - "1关/0检用户区为0" - ], - "ParamVal": [ - 0, - 0, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 25, - "ResultErrCode": [], - "RetryCount": 1 - }, - { - "TaskID": 14, - "TaskBrief": "写延时", - "TaskIndex": 18, - "ParamCount": 1, - "ParamInfo": [ - "延时" - ], - "ParamVal": [ - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 36, - "ResultErrCode": [], - "RetryCount": 1 - }, - { - "TaskID": 15, - "TaskBrief": "读延时", - "TaskIndex": 19, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 37, - "ResultErrCode": [ - 255 - ], - "RetryCount": 1 - }, - { - "TaskID": 16, - "TaskBrief": "时钟校准", - "TaskIndex": 20, - "ParamCount": 2, - "ParamInfo": [ - "脉冲周期", - "脉冲个数" - ], - "ParamVal": [ - 1000, - 25 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 39, - "ResultErrCode": [], - "RetryCount": 1 - }, - { - "TaskID": 12, - "TaskBrief": "充电电压检测", - "TaskIndex": 21, - "ParamCount": 2, - "ParamInfo": [ - "起始DAC", - "结束DAC" - ], - "ParamVal": [ - 3, - 0 - ], - "TestStandard": [ - { - "Max": 3, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "扫描通过的DAC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 34 - ], - "RetryCount": 1 - }, - { - "TaskID": 19, - "TaskBrief": "起爆使能", - "TaskIndex": 22, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 1 - }, - { - "TaskID": 9, - "TaskBrief": "读芯片状态", - "TaskIndex": 23, - "ParamCount": 1, - "ParamInfo": [ - "状态值掩码" - ], - "ParamVal": [ - 254 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 42, - "ResultErrCode": [], - "RetryCount": 10 - }, - { - "TaskID": 20, - "TaskBrief": "起爆充能", - "TaskIndex": 24, - "ParamCount": 2, - "ParamInfo": [ - "电流判线AD", - "起爆脉冲个数" - ], - "ParamVal": [ - 1000, - 400 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 41, - "ResultErrCode": [ - 255, - 255, - 255 - ], - "RetryCount": 1 - }, - { - "TaskID": 18, - "TaskBrief": "复位放电", - "TaskIndex": 25, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 45, - "ResultErrCode": [], - "RetryCount": 2 - }, - { - "TaskID": 26, - "TaskBrief": "关总线", - "TaskIndex": 26, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 1 - } - ] -} \ No newline at end of file diff --git a/python/prottcp.py b/python/prottcp.py index fed91dc..22d3755 100644 --- a/python/prottcp.py +++ b/python/prottcp.py @@ -264,6 +264,8 @@ class protu(QObject): end_signal = pyqtSignal([bool,str]) # 接收到数据信号 recv_signal =pyqtSignal([int,bytearray,str]) + # 接收到字符串信号 + recv_str_signal =pyqtSignal([int,str,str]) hand=handle() def __init__(self) -> None: @@ -359,6 +361,7 @@ class protu(QObject): def recv(self): # self.recv_signal.connect(self.send_file_next) data=bytearray() + data_str=bytearray() while(self.ser.is_open): d=bytes() try: @@ -368,6 +371,7 @@ class protu(QObject): print("port closed") return data+=d + data_str+=d if(len(data)==3): if(data[0]==0x59 and data[1]==0x6d and data[2]==0x43): self.num_to_recv=5 @@ -395,6 +399,18 @@ class protu(QObject): # self.send_file_next(self.cmd,t,self.str_err) # print("sent signal---") data.clear() + data_str.clear() + elif(len(data_str)>=2): + if((data_str[-2]==0x0d) and (data_str[-1]==0x0a)): + data_str=data_str[:-2] + recv_str="" + try: + recv_str=data_str.decode("utf-8") + self.recv_str_signal.emit(0,recv_str,"ok") + data_str.clear() + except Exception as e: + print(str(e)) + # print(recv_str) # else: # print("len(data)={d1},num_ro_recv={d2}".format(d1=len(data),d2=self.num_to_recv)) def send(self,cmd:int,data:bytearray): diff --git a/python/updata.py b/python/updata.py index ed6798a..25b4433 100644 --- a/python/updata.py +++ b/python/updata.py @@ -82,9 +82,10 @@ class updata_dlg(QObject): self.file_list_init() self.com_but_init() self.save_but_init() - # self.updatas_but_init() + self.updatas_but_init() # self.cmd_but_init() - # self.sstate_but_init() + self.sstate_but_init() + self.scheme_but_init() self.com_init() self.combsp_init() self.widget.destroyed.connect(self.quit) @@ -147,9 +148,17 @@ class updata_dlg(QObject): self.sstate_but = QPushButton(self.widget) self.sstate_but.setObjectName(u"sstate_but") self.sstate_but.setGeometry(QRect(590, 140, 93, 28)) - self.sstate_but.setText("MCU在线状态") + self.sstate_but.setText("主板参数") self.sstate_but.clicked.connect(self.sstate_but_clicked) + # 初始化方案状态按钮 + def scheme_but_init(self): + self.sstate_but = QPushButton(self.widget) + self.sstate_but.setObjectName(u"sstate_but") + self.sstate_but.setGeometry(QRect(590, 180, 93, 28)) + self.sstate_but.setText("方案参数") + self.sstate_but.clicked.connect(self.scheme_but_clicked) + # com口 def com_init(self): self.com = QComboBox(self.widget) @@ -312,6 +321,19 @@ class updata_dlg(QObject): def sstate_but_clicked(self): print("sstate_but clicked.") + try: + self.port.send_str("sysinfo") + except Exception as e: + print("com not open") + print(str(e)) + + def scheme_but_clicked(self): + print("scheme_but clicked.") + try: + self.port.send_str("scheme") + except Exception as e: + print("com not open") + print(str(e)) def updatas_but_clicked(self): print("updatas_but clicked.") @@ -384,6 +406,7 @@ class updata_dlg(QObject): print("init port success.") self.set_port_state(True) self.port.recv_signal.connect(self.recv_slot) + self.port.recv_str_signal.connect(self.recv_str_slot) self.port.start_recv() self.port.wait() def close_port(self): @@ -391,8 +414,12 @@ class updata_dlg(QObject): self.set_port_state(False) try: self.port.close() + self.port.recv_signal.disconnect(self.recv_slot) + self.port.recv_str_signal.disconnect(self.recv_str_slot) except Exception as e: pass + def recv_str_slot(self,cmd:int,txt:str,err:str): + print("|-|",txt) def recv_slot(self,cmd:int,data:bytearray,err:str): # print("recv:",cmd,data) if(self.cmd!=cmd): diff --git a/source/ReadMe.txt b/source/ReadMe.txt index 46495bf..b03d182 100644 --- a/source/ReadMe.txt +++ b/source/ReadMe.txt @@ -153,4 +153,12 @@ 修改一些通信逻辑,上报数据不自增流水号,使用上位机下发的流水号 与20230817V3.28X以前的程序不兼容 2023.8.18 - 升级小板增加命令行返回 \ No newline at end of file + 升级小板增加命令行返回 +2023.9.4 + 电容测量由taskid 8 改为taskid 12 +2023.9.11 + 编译后自动添加程序文件到服务器 + + + + \ No newline at end of file diff --git a/source/coder/coder_judge.c b/source/coder/coder_judge.c index 323de72..22bb5a9 100644 --- a/source/coder/coder_judge.c +++ b/source/coder/coder_judge.c @@ -197,22 +197,22 @@ uint8_t coder_judge(const uint8_t *data) } // 检测电容 - TASK_FIND_NEXT(8); + TASK_FIND_NEXT(12); temp=TASK_DATA(0); if((temp>task->range[0].max)||(temprange[0].min)) { return 2; } - temp=TASK_DATA(1); - if((temp>task->range[1].max)||(temprange[1].min)) - { - return 2; - } - temp=TASK_DATA(2); - if((temp>task->range[2].max)||(temprange[2].min)) - { - return 2; - } +// temp=TASK_DATA(1); +// if((temp>task->range[1].max)||(temprange[1].min)) +// { +// return 2; +// } +// temp=TASK_DATA(2); +// if((temp>task->range[2].max)||(temprange[2].min)) +// { +// return 2; +// } return 0; } diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h index 2d42916..4d98832 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,8 +6,8 @@ -#define BUILD_DATE "2023-08-18 10:34:08" -#define SOFT_VERSION "0.10" +#define BUILD_DATE "2023-09-11 17:34:56" +#define SOFT_VERSION "0.11" diff --git a/source/mycopy.py b/source/mycopy.py index 91f2bd7..fe2943d 100644 --- a/source/mycopy.py +++ b/source/mycopy.py @@ -2,7 +2,7 @@ import shutil import sys import os import prebuild as time - +import mysql # 定义app和boot文件路径(没有尾缀) @@ -11,7 +11,9 @@ BOOT_FILE_SRC = "./Objects/boot/checker_gen1_boot" # APP_FILE_DST = "./Objects/checker_gen1_app" APP_FILE_DST = "./python/file/checker_gen1_app" BOOT_FILE_DST = "./Objects/checker_gen1_boot" - +# 定义数据库存储目录 +SQL_APP_SAVE_PATH = "checker_gen1_app" +SQL_BOOT_SAVE_PATH = "checker_gen1_boot" # 找到指定后缀的文件 def find_type(fix:str): @@ -142,6 +144,9 @@ def main(): with open(dst,"wb") as f: f.write(data) print(dst+' create app file success.') + sql=mysql.sql() + if(sql.init(SQL_APP_SAVE_PATH)==True): + sql.insert(dst) boot=BOOT_FILE_SRC+".bin" boot_dst=BOOT_FILE_DST+"_"+date+".bin" if os.path.exists(boot): @@ -156,6 +161,9 @@ def main(): with open(boot_dst,"wb") as f: f.write(d) print(boot_dst+" create boot file success.") + sql=mysql.sql() + if(sql.init(SQL_BOOT_SAVE_PATH)==True): + sql.insert(boot_dst) else: print("please build bootloader to create boot file") if __name__=="__main__": diff --git a/source/mysql.py b/source/mysql.py new file mode 100644 index 0000000..825588e --- /dev/null +++ b/source/mysql.py @@ -0,0 +1,166 @@ +import pymysql as mysql +import datetime +from datetime import datetime, timedelta +import hashlib +import os + +def connect(): + try: + db=mysql.connect(host='124.70.178.159',user='admin',passwd='Rc5345750.',port=3306) + print("connect mysql success.") + return db + except Exception as e: + print("can not connect service.") + return None + + +# 获取北京时间 +def get_date(): + now_time = datetime.utcnow() + utc_time = now_time + timedelta(hours=8) # UTC只是比北京时间提前了8个小时 + utc_time = utc_time.strftime("%Y%m%d") + return utc_time + +# 获取北京时间 +def get_time(): + now_time = datetime.utcnow() + utc_time = now_time + timedelta(hours=8) # UTC只是比北京时间提前了8个小时 + utc_time = utc_time.strftime("%Y-%m-%d %H:%M:%S") + return utc_time + + +# 获取数据md5 +def md5(data:bytearray): + m=hashlib.md5(data).hexdigest() + # print(m) + return m + + +# 获得主板sn号 +def get_computer_sn(): + sn = os.popen("wmic bios get serialnumber").readlines() + return sn[2].strip() + + +class sql: + def __init__(self) -> None: + self.download_path="download/" + if not os.path.exists(self.download_path): + os.makedirs(self.download_path) + + + # 初始化返回True成功 + def init(self,table_name:str): + self.db=connect() + self.table_name=table_name + if(self.db!=None): + self.cur=self.db.cursor() + self.cur.execute("use andy_data") + self.cur.execute("select version()") + a=self.cur.fetchone() + print(a) + self.create_table(self.table_name) + return True + return False + + # 创建表 + def create_table(self,table_name:str): + cmd="""CREATE TABLE IF NOT EXISTS `{d1}`( + `id` INT UNSIGNED AUTO_INCREMENT, + `time` VARCHAR(30) NOT NULL, + `name` VARCHAR(256) NOT NULL, + `md5` VARCHAR(33) NOT NULL, + `data` MEDIUMBLOB NOT NULL, + PRIMARY KEY ( `id` ) + )ENGINE=InnoDB DEFAULT CHARSET=utf8;""".format(d1=table_name) + + self.cur.execute(cmd) + + # 插入数据 + def insert(self,file_name:str): + s=file_name.split('.') + if(len(s)<2): + print("file name without type suffix,will not insert.") + return + with open(file_name,"rb") as f: + d=f.read() + md=md5(d) + lis=self.show() + if(len(lis)>0): + if(lis[-1][3]==md): + print("the same file was saved,will not insert.") + return + try: + cmd="INSERT INTO {d1} (time,name,md5,data) VALUES (%s,%s,%s,%s);".format(d1=self.table_name) + self.db.begin() + self.cur.execute(cmd,([get_time(),file_name,md,d])) + self.db.commit() + print("insert file success.") + except Exception as e: + self.db.rollback() + print(str(e)) + + # 查看数据 + def show(self): + cmd= "select id,time,name,md5 from {d1};".format(d1=self.table_name) + self.cur.execute(cmd) + a=self.cur.fetchall() + # for i in a: + # print(i[0],i[1],i[2],i[3]) + return a + # 下载指定文件,返回文件路径 + def download(self,id:int): + ack,name=self.exists(id) + if(ack==True): + print("the same file is exists,will not download.") + return name + cmd="select name,data from {d1} WHERE id={d2};".format(d1=self.table_name,d2=id) + self.cur.execute(cmd) + a=self.cur.fetchall() + for i in a: + ss=i[0].replace('\\','/') + ss=ss.split('/')[-1].split('.') + name=self.download_path+ss[0]+' -'+str(id)+'.'+ss[1] + with open(name,'+bw') as f: + f.write(i[1]) + return name + print("can not find the file with id:",id) + return "" + + # 获取md5 + def get_md5(self,id:int): + cmd="select md5 from {d1} WHERE id={d2};".format(d1=self.table_name,d2=id) + self.cur.execute(cmd) + a=self.cur.fetchall()[0] + return a[0] + + # 扫描文件 + def scan_files(self): + path = self.download_path + if not os.path.exists(path): + os.makedirs(path) + list=os.listdir(path) + return list + # 判断文件是否存在 + def exists(self,id:int): + for i in self.scan_files(): + s=i.split('.')[-2].split('-')[-1] + if(int(s)==id): + with open(self.download_path+i,"rb") as f: + md=md5(f.read()) + if(md==self.get_md5(id)): + return True,i + return False,"" + + +if __name__ == "__main__": + s=sql() + if(s.init("test_data")==True): + s.insert("file\\check_result.csv") + s.show() + file=s.download(1) + print("save file:",file) + + + + diff --git a/source/prebuild.py b/source/prebuild.py index 006dd11..63a027c 100644 --- a/source/prebuild.py +++ b/source/prebuild.py @@ -7,7 +7,7 @@ from datetime import datetime, timedelta # 定义软件版本号 -SOFT_VERION = "0.10" +SOFT_VERION = "0.11"