检测错误码

This commit is contained in:
ranchuan
2023-07-03 18:27:10 +08:00
parent 156d1ceeb4
commit 41c1e97ba5
9 changed files with 489 additions and 16 deletions

View File

@@ -120,7 +120,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name>d</Name>
<Name>4</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@@ -153,12 +153,36 @@
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>99</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134399730</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\source\rt_thread\board.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\checker_gen1_app\source/rt_thread/board.c\99</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>g_tempptr</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>errbit</ItemText>
<SubType>8</SubType>
<ItemText>file</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
@@ -370,7 +394,24 @@
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>99</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\source\rt_thread\board.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
@@ -1428,7 +1469,7 @@
<Group>
<GroupName>lwip</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>

View File

@@ -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)

View File

@@ -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
}
]
}

View File

@@ -129,4 +129,7 @@
解决不插网线会导致程序重启的bug
2023.6.28
要实现重复注相同码不报错的功能,重复检测不报错,要使用两套方案
2023.7.3
检测错误码
解决tcp下升级方案死机的问题原因是内存没有回收导致的内存不足

View File

@@ -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"

View File

@@ -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")

View File

@@ -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;
}

View File

@@ -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字节数据
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)

View File

@@ -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<PORT_NUM;i++)
{
// 只给在线设备升级方案