From 41c1e97ba54868aa19ccd8b5f6a61d125aec1a19 Mon Sep 17 00:00:00 2001 From: ranchuan Date: Mon, 3 Jul 2023 18:27:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=B5=8B=E9=94=99=E8=AF=AF=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- checker_gen1.uvoptx | 53 ++- python/checker_test.py | 3 +- .../file/EX三码绑定测试2023-07-3.json | 407 ++++++++++++++++++ source/ReadMe.txt | 3 + source/main/compiler_info.h | 4 +- source/prebuild.py | 9 +- source/soft/mystdlib.c | 5 + source/task/tran_for_coder2.c | 18 +- source/task/transmit.c | 3 + 9 files changed, 489 insertions(+), 16 deletions(-) create mode 100644 python/file/EX三码绑定测试2023-07-3.json diff --git a/checker_gen1.uvoptx b/checker_gen1.uvoptx index 2d73e36..18269cd 100644 --- a/checker_gen1.uvoptx +++ b/checker_gen1.uvoptx @@ -120,7 +120,7 @@ 0 DLGUARM - d + 4 0 @@ -153,12 +153,36 @@ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) - + + + 0 + 0 + 99 + 1 +
134399730
+ 0 + 0 + 0 + 0 + 0 + 1 + .\source\rt_thread\board.c + + \\checker_gen1_app\source/rt_thread/board.c\99 +
+
+ + + 0 + 1 + g_tempptr + + 1 - 0 - errbit + 8 + file 0 @@ -370,7 +394,24 @@ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) - + + + 0 + 0 + 99 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + .\source\rt_thread\board.c + + +
+
0 @@ -1428,7 +1469,7 @@ lwip - 1 + 0 0 0 0 diff --git a/python/checker_test.py b/python/checker_test.py index c6ed527..45d28b2 100644 --- a/python/checker_test.py +++ b/python/checker_test.py @@ -173,5 +173,6 @@ class port: if __name__ == "__main__": p=port() # 批检仪测试 - p.open("com5",115200) + # p.open("com5",115200) + p.open("utcp",115200) p.checker_test(5) diff --git a/python/file/EX三码绑定测试2023-07-3.json b/python/file/EX三码绑定测试2023-07-3.json new file mode 100644 index 0000000..b952ae0 --- /dev/null +++ b/python/file/EX三码绑定测试2023-07-3.json @@ -0,0 +1,407 @@ +{ + "PlanID": 48435330, + "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": 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": 200 + }, + { + "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": 170, + "Min": 80 + }, + { + "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/source/ReadMe.txt b/source/ReadMe.txt index 191a7bc..e37a5cd 100644 --- a/source/ReadMe.txt +++ b/source/ReadMe.txt @@ -129,4 +129,7 @@ 解决不插网线会导致程序重启的bug 2023.6.28 要实现重复注相同码不报错的功能,重复检测不报错,要使用两套方案 +2023.7.3 + 检测错误码 + 解决tcp下升级方案死机的问题,原因是内存没有回收导致的内存不足 \ No newline at end of file diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h index d731545..a160232 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,8 +6,8 @@ -#define BUILD_DATE "2023-06-28 18:04:06" -#define SOFT_VERSION "0.01" +#define BUILD_DATE "2023-07-03 18:20:09" +#define SOFT_VERSION "0.10" diff --git a/source/prebuild.py b/source/prebuild.py index ba5f379..006dd11 100644 --- a/source/prebuild.py +++ b/source/prebuild.py @@ -4,6 +4,13 @@ import datetime from datetime import datetime, timedelta + + +# 定义软件版本号 +SOFT_VERION = "0.10" + + + # 定义mod文件的名称和路径 MOD_FILE="mod_signals.c" MOD_PATH="./source/task/" @@ -126,7 +133,7 @@ def creat_compile_info(dst:str): f.write("#ifndef compiler_info__\n") f.write("#define compiler_info__\n\n\n\n\n\n\n") f.write("#define BUILD_DATE \""+utc_time+"\"\n") - f.write("#define SOFT_VERSION \"0.01\"\n") + f.write("#define SOFT_VERSION \""+SOFT_VERION+"\"\n") f.write("\n\n\n\n\n\n\n#endif\n") diff --git a/source/soft/mystdlib.c b/source/soft/mystdlib.c index 4e77273..67d5035 100644 --- a/source/soft/mystdlib.c +++ b/source/soft/mystdlib.c @@ -144,12 +144,17 @@ void *malloc(uint32_t size) { mallco_dev *self=&g_self; uint32_t offset; + int used=0; void *ret_addr=NULL; offset=mem_malloc(size); if (offset!=0XFFFFFFFF) { ret_addr=(void*)((uint32_t)self->membase+offset); } + else{ + used=mem_perused(); + param_check(used); + } return ret_addr; } diff --git a/source/task/tran_for_coder2.c b/source/task/tran_for_coder2.c index a14edd5..8dcd71c 100644 --- a/source/task/tran_for_coder2.c +++ b/source/task/tran_for_coder2.c @@ -319,13 +319,19 @@ static void check_end(ucport_def *u,port_mcu *src,void *data,int ack,char *err_s uint32_t errcode=0; uint8_t *ack_d=&w->ack[(addr)*6]; ack_d[0]=addr+slave_addr_off(); - ack_d[1]=ack; + if(ack==-1) ack_d[1]=208; // 208表示通信超时 + else ack_d[1]=ack==0?0:209;// 209表示小板返回了命令失败 // TODO: 还有4字节数据 - errcode=in_range_err(arr_data(data)+8+8,arr_data(data)); - ack_d[2]=errcode&0xff; - ack_d[3]=(errcode>>8)&0xff; - ack_d[4]=(errcode>>16)&0xff; - ack_d[5]=(errcode>>24)&0xff; + if(data) + { + errcode=in_range_err(arr_data(data)+8+8,arr_data(data)); + ack_d[2]=errcode&0xff; + ack_d[3]=(errcode>>8)&0xff; + ack_d[4]=(errcode>>16)&0xff; + ack_d[5]=(errcode>>24)&0xff; + if(ack_d[1]==0) ack_d[1]=ack_d[2]; + }else{ + } w->ack_num++; if(w->ack_num>=10) diff --git a/source/task/transmit.c b/source/task/transmit.c index 419208c..4e9e191 100644 --- a/source/task/transmit.c +++ b/source/task/transmit.c @@ -371,6 +371,9 @@ static void when_scheme_done(ucport_def *u) DBG_WARN("can not fond variable \"tran\""); return; } + DBG_LOG("memused:%d",mem_perused()); + rt_thread_mdelay(100); + DBG_LOG("memused:%d",mem_perused()); for(int i=0;i