diff --git a/checker_gen1.uvprojx b/checker_gen1.uvprojx index 8190772..9fec3d2 100644 --- a/checker_gen1.uvprojx +++ b/checker_gen1.uvprojx @@ -10,7 +10,7 @@ app 0x4 ARM-ADS - 5060960::V5.06 update 7 (build 960)::.\ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC 0 @@ -185,7 +185,6 @@ 0 2 0 - 0 1 0 8 @@ -352,7 +351,7 @@ 0 0 0 - 4 + 0 @@ -1550,7 +1549,6 @@ 0 2 0 - 0 1 0 8 @@ -1717,7 +1715,7 @@ 0 0 0 - 4 + 0 @@ -2084,6 +2082,57 @@ if_uart.c 1 .\source\interface\if_uart.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + if_rtt.c @@ -2279,7 +2328,7 @@ 2 2 2 - 0 + 2 @@ -3203,7 +3252,7 @@ 2 2 2 - 0 + 2 @@ -3297,7 +3346,7 @@ 2 2 2 - 0 + 2 @@ -4014,7 +4063,7 @@ 2 2 2 - 0 + 2 @@ -4168,7 +4217,7 @@ 2 2 2 - 0 + 2 @@ -4247,7 +4296,7 @@ 2 2 2 - 0 + 2 diff --git a/python/file/EX_Coder_Test_2023-07-7.json b/python/file/EX_Coder_Test_2023-07-7.json new file mode 100644 index 0000000..1bc91f7 --- /dev/null +++ b/python/file/EX_Coder_Test_2023-07-7.json @@ -0,0 +1,785 @@ +{ + "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 new file mode 100644 index 0000000..207994c Binary files /dev/null and b/python/file/EX_Coder_Test_2023-07-7.xlsx differ diff --git a/python/prottcp.py b/python/prottcp.py index a041b7c..018cca9 100644 --- a/python/prottcp.py +++ b/python/prottcp.py @@ -146,10 +146,9 @@ def arr_from_int(num:int): # 提取方案中的范围数据, 先max后min def scheme_get_task_range(j:json): t=bytearray() - return_count=j["ReturnCount"] - t+=j["TaskID"] - t+=j["TaskIndex"] - t+=arr_from_int(return_count) + t+=arr_from_int(j["TaskID"]) + t+=arr_from_int(j["TaskIndex"]) + t+=arr_from_int(j["ReturnCount"]) t+=arr_from_int(j["ExecuteErrCode"]) index=0 for i in j["TestStandard"]: @@ -438,18 +437,32 @@ class protu(QObject): # print("len=",len(d),d.hex(",")) # send_file("COM5",0x32,f.name.split('/')[-1],f.read()) + + +def int2str(num:int): + s=str(num//100) + s=s+str(num%100//10) + s=s+str(num%10) + return s + + if __name__ == "__main__": u=protu() # u.init("utcp:7777") # u.send_file(0xee,"file/JQ_JCXB_V54.bin") # u.send_file(0xed,"../Objects/checker_gen1_app_20230602.bin") - u.cmd=0x34 - print(u.encode(bytearray([0x0a,0x00])).hex(' ')) - # with open("file/EX三码绑定测试2023-07-3.json","rb") as f: + u.cmd=0x30 + u.cmd_no=0x15|(0xaf<<8) + print(u.encode(bytearray([0x00])).hex(' ')) + # with open("file/EX_Coder_Test_2023-07-6.json","rb") as f: # json_obj=json.loads(f.read()) # d=scheme_to_byte(json_obj) # print("len=",len(d),d.hex(",")) # d+=scheme_to_host(json_obj) + + print(int2str(20)) + s="{d:03d}".format(d=2) + print(s) # 开始检测 diff --git a/source/ReadMe.txt b/source/ReadMe.txt index 96d5797..a6560ed 100644 --- a/source/ReadMe.txt +++ b/source/ReadMe.txt @@ -138,4 +138,6 @@ 添加错误判断,未完成 2023.7.6 赋码仪添加错误判断,管壳码有0字节则不注码,直接返回失败 - \ No newline at end of file +2023.7.7 + boot没有同步app编译,升级app会导致之后添加的配置参数丢失 + 添加管壳码全'0'判断 \ No newline at end of file diff --git a/source/coder/coder_judge.c b/source/coder/coder_judge.c index d7ccaf2..323de72 100644 --- a/source/coder/coder_judge.c +++ b/source/coder/coder_judge.c @@ -159,20 +159,20 @@ uint8_t coder_judge(const uint8_t *data) } // 检测电流 - TASK_FIND_NEXT(4); + TASK_FIND_NEXT(3); temp=TASK_DATA(0); temp2=TASK_DATA(1); - if((temp<10)&&(temp2<10)) + if((temp<100)&&(temp2<100)) { // 接触异常 return 3; } - else if(((temp>task->range[0].max)&&(temp<1500))|| - ((temp2>task->range[0].max)&&(temp2<1500))) + else if(((temp>task->range[0].max)&&(temp<800))|| + ((temp2>task->range[0].max)&&(temp2<800))) { // 过流 return 7; - }else if((temp>1500)&&(temp2>1500)) + }else if((temp>800)&&(temp2>800)) { // 短路 return 8; @@ -180,7 +180,7 @@ uint8_t coder_judge(const uint8_t *data) // 检测uid - TASK_FIND_NEXT(5); + TASK_FIND_NEXT(4); if(get_ack(data,task->taskindex)) { // 芯片错误 @@ -188,7 +188,7 @@ uint8_t coder_judge(const uint8_t *data) } // 检测桥丝 - TASK_FIND_NEXT(6); + TASK_FIND_NEXT(11); temp=TASK_DATA(0); if((temprange[0].min)||(temp>task->range[0].max)) { diff --git a/source/coder/coder_lib.c b/source/coder/coder_lib.c index bd94e51..284f9cd 100644 --- a/source/coder/coder_lib.c +++ b/source/coder/coder_lib.c @@ -87,6 +87,8 @@ int check_shell_code(const char *shell_code) if(shell_code[i]==0) return 0; } + if(strncmp("0000000000000",shell_code,13)==0) + return 0; return 1; } diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h index 0431ae6..e6fcc69 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2023-07-06 22:57:16" +#define BUILD_DATE "2023-07-07 11:16:27" #define SOFT_VERSION "0.10" diff --git a/source/main/main.c b/source/main/main.c index a6c8d07..8721796 100644 --- a/source/main/main.c +++ b/source/main/main.c @@ -113,7 +113,7 @@ static int scheme_info(list_def *argv) for(int i=0;itask_num;i++) { t=&s->task[i]; - cmd_print(" task:%02d err:%02x",i,t->err); + cmd_print(" task:%02d id:%02d err:%02x",t->taskindex,t->taskid,t->err); for(int j=0;jitem_num;j++) { cmd_print(" max:%5d, min:%5d err:%02x %s",t->range[j].max,t->range[j].min, diff --git a/source/task/key.c b/source/task/key.c index fce1a1f..1e9f410 100644 --- a/source/task/key.c +++ b/source/task/key.c @@ -68,6 +68,7 @@ static void request_check(void *p) { const sys_param_def *par=sys_param(); array_def *d=arr_creat(); + arr_append(d,0); emit key_send_signal(p,0x37,arr_temp(d)); //DBG_LOG("tcp liver:%s",str_temp(arr_string(d))); } diff --git a/source/task/tran_for_coder2.c b/source/task/tran_for_coder2.c index 3e2a839..f8f4093 100644 --- a/source/task/tran_for_coder2.c +++ b/source/task/tran_for_coder2.c @@ -75,7 +75,6 @@ static void write_uid_upmit(write_uid_def *w) } } emit tran_send_signal(w->u.p,0x82,arr_temp(a)); - tran_set_busy(w->u.p,0); g_self.step=0; // 把命令字改为0x82用于接收主机应答 w->u.cmd=0x82; @@ -83,6 +82,25 @@ static void write_uid_upmit(write_uid_def *w) +// 填充注码结果 +static void write_uid_fillret(write_uid_def *w,int addr,int ack) +{ + addr-=1; + uint8_t *d=&w->ack[(addr)*39]; + w->ack_num++; + d[0]=addr+slave_addr_off(); + d[1]=ack; + memcpy(&d[2],w->item[addr].shell_code,13); + memcpy(&d[2+13],w->item[addr].uid_code,16); + memcpy(&d[2+13+16],w->item[addr].password,8); + if(w->ack_num>=10) + { + write_uid_upmit(w); + } +} + + + // 注码完成 static void write_uid_end(ucport_def *u,port_mcu *src,void *data,int ack,char *err_str) { @@ -92,19 +110,7 @@ static void write_uid_end(ucport_def *u,port_mcu *src,void *data,int ack,char *e DBG_WARN("addr err:%d",addr); return; } - addr-=1; - - uint8_t *d=&w->ack[(addr)*39]; - w->ack_num++; - d[0]=addr+slave_addr_off(); - d[1]=ack; - memcpy(&d[2],w->item[addr].shell_code,13); - memcpy(&d[2+13],w->item[addr].uid_code,16); - memcpy(&d[2+13+16],w->item[addr].password,8); - if(w->ack_num>=10) - { - write_uid_upmit(w); - } + write_uid_fillret(w,addr,ack); } @@ -137,6 +143,7 @@ static void write_del(ucport_def *u) static int write_uid_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str) { DBG_LOG("recv write_uid end signal."); + tran_set_busy(u->p,0); return 0; } @@ -191,11 +198,7 @@ static ucport_def *write_uid(tran_def *t, uint8_t cmd,array_def *data) port_start(mcu,code_creat(8,4,u->item[i].uid_pw_hex)); }else{ // 管壳码无效,不注码,此时默认已ack - u->ack_num++; - if(u->ack_num>=10) - { - write_uid_upmit(u); - } + write_uid_fillret(u,i+1,0xff); } } } @@ -372,7 +375,7 @@ static void check_end(ucport_def *u,port_mcu *src,void *data,int ack,char *err_s arr_append(a,w->type); arr_appends(a,w->ack,(6)*10); emit tran_send_signal(w->u.p,0x81,arr_temp(a)); - tran_set_busy(w->u.p,0); + //tran_set_busy(w->u.p,0); // 把命令字改为0x81用于接收主机应答 w->u.cmd=0x81; g_self.step=1; @@ -408,6 +411,7 @@ static void check_del(ucport_def *u) static int check_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str) { DBG_LOG("recv check end signal."); + tran_set_busy(u->p,0); return 0; }