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