From f148347e5826c8be12975255bc1bfa9e6314f28a Mon Sep 17 00:00:00 2001 From: ranchuan Date: Fri, 7 Jul 2023 18:26:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E5=A3=B3=E7=A0=81=E5=85=A80=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- checker_gen1.uvprojx | 71 +- python/file/EX_Coder_Test_2023-07-7.json | 785 +++++++++++++++++++++++ python/file/EX_Coder_Test_2023-07-7.xlsx | Bin 0 -> 12341 bytes python/prottcp.py | 27 +- source/ReadMe.txt | 4 +- source/coder/coder_judge.c | 14 +- source/coder/coder_lib.c | 2 + source/main/compiler_info.h | 2 +- source/main/main.c | 2 +- source/task/key.c | 1 + source/task/tran_for_coder2.c | 44 +- 11 files changed, 904 insertions(+), 48 deletions(-) create mode 100644 python/file/EX_Coder_Test_2023-07-7.json create mode 100644 python/file/EX_Coder_Test_2023-07-7.xlsx 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 0000000000000000000000000000000000000000..207994c5828bc149fb506e9da01f1dcbab3c9da6 GIT binary patch literal 12341 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[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; }