From 688e942b1ad58bf795e7e2ff3f4bd6544d053e96 Mon Sep 17 00:00:00 2001 From: ranchuan Date: Fri, 14 Jul 2023 18:50:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8A=AF=E8=B7=B3=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python/checker_test.py | 5 +- python/file/XT_Foundry_Test-7-6.json | 1463 +++++++++++++++++++++++++ python/file/XT_Foundry_Test-7-6.xlsx | Bin 0 -> 12556 bytes python/file/XT_Foundry_Test2.json | 1480 ++++++++++++++++++++++++++ python/file/XT_Foundry_Test2.xlsx | Bin 0 -> 12591 bytes python/file/judge-xt-checker.lua | 610 +++++++++++ python/file/judge-xt.lua | 18 +- source/codec/codec.c | 8 +- source/main/compiler_info.h | 2 +- source/task/prot_uc.c | 3 +- 10 files changed, 3576 insertions(+), 13 deletions(-) create mode 100644 python/file/XT_Foundry_Test-7-6.json create mode 100644 python/file/XT_Foundry_Test-7-6.xlsx create mode 100644 python/file/XT_Foundry_Test2.json create mode 100644 python/file/XT_Foundry_Test2.xlsx create mode 100644 python/file/judge-xt-checker.lua diff --git a/python/checker_test.py b/python/checker_test.py index b1ba1b6..29babeb 100644 --- a/python/checker_test.py +++ b/python/checker_test.py @@ -174,6 +174,7 @@ class port: if __name__ == "__main__": p=port() # 批检仪测试 - p.open("com16",115200) + p.open("com5",115200) # p.open("utcp",9527) - p.checker_test(5000,"file/EX_Coder_Test_2023-07-7.json","file/judge-xt.lua") + # p.checker_test(5000,"file/EX_Coder_Test_2023-07-7.json","file/judge-xt-checker.lua") + p.checker_test(5000,"file/XT_Foundry_Test-7-6.json","file/judge-xt-checker.lua") diff --git a/python/file/XT_Foundry_Test-7-6.json b/python/file/XT_Foundry_Test-7-6.json new file mode 100644 index 0000000..1628c11 --- /dev/null +++ b/python/file/XT_Foundry_Test-7-6.json @@ -0,0 +1,1463 @@ +{ + "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 + } + ], + "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-6.xlsx b/python/file/XT_Foundry_Test-7-6.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..baf010741862cd0089dc75decf09829a7a375de7 GIT binary patch literal 12556 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 IeggpfAAo5M_W%F@ literal 0 HcmV?d00001 diff --git a/python/file/XT_Foundry_Test2.json b/python/file/XT_Foundry_Test2.json new file mode 100644 index 0000000..3f64384 --- /dev/null +++ b/python/file/XT_Foundry_Test2.json @@ -0,0 +1,1480 @@ +{ + "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 new file mode 100644 index 0000000000000000000000000000000000000000..44b071f9ed6017388cb0d64953e3f6926452a19b GIT binary patch literal 12591 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 literal 0 HcmV?d00001 diff --git a/python/file/judge-xt-checker.lua b/python/file/judge-xt-checker.lua new file mode 100644 index 0000000..250fcee --- /dev/null +++ b/python/file/judge-xt-checker.lua @@ -0,0 +1,610 @@ +---@diagnostic disable: lowercase-global, undefined-global + + + + +-- 芯跳赋码仪错误判定脚本 + + + +-- 方案配置文件: +-- cfg_name +-- 检测数据 +-- check_data +-- 当前路径 +-- get_path() +-- 打印表 +-- prints:print_t() +-- json解码 +-- json:decode() + + + + + +-- 2023.7.5 +-- 调用者可以设置 check_cfg_str 变量,此时脚本不会使用io函数而直接使用 +-- 如果 check_cfg_str 为 nil 时自动读取 cfg_name 文件 +-- 改为调用main函数来运行脚本 +-- 2023.7.14 +-- 根据任务id找到下一个任务,只要判定相关任务顺序不变脚本就不受影响 +-- 添加根据子错误找到对应的主错误功能 + + + + + +-- 表长度 +function len(t) + local res=0 + if(t==nil)then return 0 end + for k,v in pairs(t) do + res=res+1 + end + return res +end + +-- 截取数组 +function mid(array,start,length) + if(len(array)<(start+length-1)) then + print("mid:out of range",start,length) + return nil + end + return table.pack(table.unpack(array,start,start+length-1)) +end + + +-- 把n插入t中,不允许重复 +function insert(t,n) + for k,v in pairs(t) do + if(v==n) then + return + end + end + table.insert(t,n) +end + + +-- 删除t中的值n +function del(t,n) + for k,v in pairs(t) do + if(v==n) then + table.remove(t,k) + break + end + end +end + +-- 删除t中除n之外的所有值 +function only(t,n) + for k,v in pairs(t) do + if(v~=n) then + -- table.remove(t,k) + t[k]=nil + end + end +end + + + + +-- 计算2的n次幂 +function exp2(n) + local ret=1 + for i=1,n,1 do + ret=ret*2 + end + return ret +end + + +-- 计算参数错误占用的字节 +function clac_cfg_errbytenum() + local num=0 + local tasks=json_table["TaskArray"] + for i=1,len(tasks),1 do + num=num+tasks[i]["ReturnCount"] + end + return math.floor((num+7)/8) +end + + + +-- 8个字节描述执行结果0成功,1失败 +function find_ack(index,acks) + if(index>len(acks)*8) or index<1 then + print("index out of range.index=",index) + return false + end + local temp=acks[math.floor((index-1)/8)+1] + local i=(index-1)%8 + if ((math.floor((temp % exp2(i+1))/exp2(i)))~=0) then + return false + else + return true + end +end + + +-- 展示任务回复,0成功,1失败 +function show_acks(acks) + -- prints:print_a(acks) + print("return_ack:(0:ok;1:err)") + local str="" + for i=1,len(json_table["TaskArray"]),1 do + local ack=find_ack(i,acks) + if ack==true then + str=str.."0, " + else + str=str.."1, " + end + end + print(str) +end + + + +-- 统计指定index之前应该跳过的数据长度和当前index的返回长度 +function calc_skip(index,tasks) + local len=0 + -- for i=1,table.getn(tasks),1 do + local i=1 + while i39000) then + del(err_code,0) + print("check current") + return find_index(task["TaskIndex"]+2,3) + elseif(ret_value[2]<1) then + -- 新小板程序在开路时会返回0,保险起见还是看一下电流 + del(err_code,0) + print("check current") + return find_index(task["TaskIndex"]+2,3) + end + ---- 排除检测板异常 + del(err_code,1) + -- print("check chip UID") + -- -- 下一步检测UID + -- return find_index(task["TaskIndex"]+2,4) + print("check current") + return find_index(task["TaskIndex"]+2,3) +end +end + + + + +-- 扫描uid,成功则芯片正常,返回下一个检测任务,nil停止检测 +function XT_Test_ScanUID(task,err_code) + if(find_ack(task["TaskIndex"]+1,mid(check_data,1,8))==false)then + -- 通信失败,返回芯片异常,检测结束 + print("task failed.task_index=",task["TaskIndex"]) + only(err_code,5) + return nil + else + -- ret_value=find_return(task["TaskIndex"]+1) + -- -- 最大反馈时间在范围之外,芯片异常 + -- if(ret_value[2]task["TestStandard"][2]["Max"]) then + -- only(err_code,5) + -- return nil + -- end + + print("check charge") + return find_index(task["TaskIndex"]+2,8) + --print("读取芯片代码") + --return find_index(task["TaskIndex"]+2,6) + end +end + + + + + + +-- 判断低压电流,返回下一个检测任务,nil停止检测 +function XT_Test_BaseCurLow(task,err_code) + if(find_ack(task["TaskIndex"]+1,mid(check_data,1,8))==false)then + -- 电流检测错误只能是检测器异常,检测结束 + print("task failed.task_index=",task["TaskIndex"]) + only(err_code,1) + return nil + else + -- 返回正向电流,反向电流 + ret_value=find_return(task["TaskIndex"]+1) + print("current:",ret_value[1]) + -- 电流为0,开路,返回接触异常 + if(ret_value[1]<10) and (ret_value[2]<10)then + only(err_code,3) + return nil + -- 电流过大,短路,返回芯片异常 + elseif((ret_value[1]>task["TestStandard"][1]["Max"]) and (ret_value[1]<1500)) + or ((ret_value[2]>task["TestStandard"][2]["Max"]) and (ret_value[2]<1500)) + then + only(err_code,5) + return nil + elseif((ret_value[1]>1500) and (ret_value[2]>1500))then + only(err_code,3) + return nil + end + -- 排除接触异常 + del(err_code,3) + print("read chip UID") + -- 下一步检测芯片 + return find_index(task["TaskIndex"]+2,4) + -- print("读取芯片代码") + -- return find_index(task["TaskIndex"]+2,6) + end +end + + +-- 检测充能,失败则电容异常 +function JQ_Test_ChgEnergy(task,err_code) + if(find_ack(task["TaskIndex"]+1,mid(check_data,1,8))==false)then + -- 充能错误只能是检测器异常,检测结束 + print("task failed.task_index=",task["TaskIndex"]) + only(err_code,1) + return nil + else + ret_value=find_return(task["TaskIndex"]+1) + if((ret_value[1]>task["TestStandard"][1]["Max"]) or (ret_value[1]task["TestStandard"][2]["Max"]) or (ret_value[2]task["TestStandard"][3]["Max"]) or (ret_value[3]1)then + -- 如果找不到任务,则应该是方案错误,这里返回其他异常 + print("can not find task,fun_index=",fun_index) + insert(err_code,6) + end + break + end + -- fun_index=task["TaskIndex"]+1 + -- task=tasks_judge_fun[fun_index](task,err_code) + -- 通过任务id来找到判定函数 + fun_index=task["TaskIndex"]+1 + fun_id=task["TaskID"]+1 + task=tasks_judge_fun_id[fun_id](task,err_code) + end + return err_code +end + +-- 判断一个任务的参数错误 +function judge_task(task,data) + local range=task["TestStandard"] + local ret={} + -- print("judge task") + if range~=nil then + -- print("judge task") + for i=1,len(range),1 do + -- prints:print_t(range[i]) + -- print("data=",data[i]) + if(data[i]range[i]["Max"]) then + -- print("task=",task["TaskBrief"],"out of range:") + -- print("err code=",task["ResultErrCode"][i]) + table.insert(ret,task["ResultErrCode"][i]) + end + end + end + return ret +end + + +-- 依次判断流程错误 +function judge_list() + local acks=mid(check_data,1,8) + for i=1,len(json_table["TaskArray"]),1 do + local ack=find_ack(i,acks) + local task_p=json_table["TaskArray"][i] + local ret_value=find_return(i) + -- print("taskindex:",task_p["TaskIndex"]) + local err_code=judge_task(task_p,ret_value) + -- print("err_code:") + -- prints:print_a(err_code) + if ack==false then + table.insert(err_code,task_p["ExecuteErrCode"]) + end + if len(err_code)>0 then + -- print("task:",task_p["TaskBrief"],"err_code:") + prints:print_a(err_code) + return get_err_code(err_code) + end + end + return nil +end + + +-- 根据子错误找到对应的主错误 +function find_majer_err(sub_err) + for i=1,len(json_table["MajorErrInfo"]),1 do + local sub_list=json_table["MajorErrInfo"][i]["SubErrCode"] + for j=1,len(sub_list),1 do + if sub_err==sub_list[j] then + return json_table["MajorErrInfo"][i]["Info"],json_table["MajorErrInfo"][i]["MajorErrCode"] + end + end + end + return "具体错误待定义",sub_err +end + + + + + +-- 要校验小板的版本号,方案的版本号 +-- 脚本产生的异常从210开始,0xd2 + +function check_env() + -- 校验输入数据的长度 + local skip,l=calc_skip(len(json_table["TaskArray"]),json_table["TaskArray"]) + -- print("requier len=",skip+l) + local num_requre=skip+l+8+check_erryternum + if(num_requre>len(check_data)) then + print("check data too less.",num_requre,len(check_data)) + return "数据长度与方案不符",210 + end + -- if(json_table["PlanID"]~=PLAN_ID) then + -- print("plan id check err.") + -- return "方案ID不符",211 + -- end + return "ok",0 +end + + + + + +function main() + -- 读取方案配置信息 + -- print(cfg_name) + if(check_cfg_str==nil)then + check_cfg_file=io.open(cfg_name,"r") + check_cfg_str=check_cfg_file:read("*a") + check_cfg_file:close() + end + json_table = json:decode(check_cfg_str) + check_erryternum=clac_cfg_errbytenum() + local err_str_table={"检测器异常","主电容异常","接触异常","桥丝阻值异常","芯片异常"} + local ch_err,ch_code=check_env() + if(ch_code~=0) then + return ch_err,ch_code + end + -- 展示任务执行结果 + show_acks(mid(check_data,1,8)) + -- 开始判定 + local err_code=judge() + if(len(err_code)>1) then + prints:print_a(err_code) + return "检测项目不足,无法判定",212 + end + prints:print_a(err_code) + local err=get_err_code(err_code) + if(err~=nil) then + if(err==0) then + err=judge_list() + if(err==nil)then + return "ok",0 + else + return find_majer_err(err) + end + else + return err_str_table[err],err + end + else + print("err:err_code is none.") + return "数据不合规",213 + end +end + + +-- 先返回错误描述,再返回错误码 +-- return main() + + + diff --git a/python/file/judge-xt.lua b/python/file/judge-xt.lua index b34b376..3171950 100644 --- a/python/file/judge-xt.lua +++ b/python/file/judge-xt.lua @@ -290,10 +290,12 @@ function XT_Test_PowerOn(task,err_code) end ---- 排除检测板异常 del(err_code,1) - print("check chip UID") - -- 下一步检测UID - return find_index(task["TaskIndex"]+2,4) - end + -- print("check chip UID") + -- -- 下一步检测UID + -- return find_index(task["TaskIndex"]+2,4) + print("check current") + return find_index(task["TaskIndex"]+2,3) +end end @@ -404,10 +406,10 @@ tasks_judge_fun={ XT_Test_PowerOn,--1 JQ_Test_Empty,--2 JQ_Test_Empty,--3 - XT_Test_ScanUID,--4 - JQ_Test_Empty,--5 - JQ_Test_ChgEnergy,--6 - JQ_Test_Empty,--7 + XT_Test_BaseCurLow,--4 + XT_Test_ScanUID,--5 + JQ_Test_Empty,--6 + JQ_Test_ChgEnergy,--7 JQ_Test_Empty,--8 JQ_Test_Empty,--9 JQ_Test_Empty,--10 diff --git a/source/codec/codec.c b/source/codec/codec.c index 32e4a40..8b3d11a 100644 --- a/source/codec/codec.c +++ b/source/codec/codec.c @@ -67,7 +67,13 @@ array_def *protu_decode(protu_def *p,array_def *data) DBG_WARN("recv data check error.h_crc=%02x %02x,crc=%02x %02x",chk_a,chk_b,arr_get(data,-2),arr_get(data,-1)); str_set(p->str_err,"recv data check error."); } - p->cmd_no=arr_get(data,5)|(arr_get(data,6)<<8); + int cmd_no=arr_get(data,5)|(arr_get(data,6)<<8); + if(p->cmd_no==cmd_no) + { + // 重复的cmd_no + DBG_WARN("duplicate sequence number."); + str_set(p->str_err,"duplicate sequence number."); + } p->cmd=arr_get(data,4); // 数据负载 arr_delete(r); diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h index e6fcc69..c7cd8db 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2023-07-07 11:16:27" +#define BUILD_DATE "2023-07-14 16:23:08" #define SOFT_VERSION "0.10" diff --git a/source/task/prot_uc.c b/source/task/prot_uc.c index 88f6c4a..aafa804 100644 --- a/source/task/prot_uc.c +++ b/source/task/prot_uc.c @@ -280,7 +280,8 @@ void protu_send_call(protu_def *p,uint8_t cmd,array_def *data) array_def *t=0; if(cmd!=0){ p->cmd=cmd; - p->cmd_no++; + // 上报数据不增加流水号 2023.7.14 + // p->cmd_no++; if(p->codec) t=p->codec->encode(p,data); }else if(p->cmd==0)