添加赋码设备注码命令,实现ew检测时注码
This commit is contained in:
@@ -299,7 +299,7 @@
|
|||||||
<OPTFL>
|
<OPTFL>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<IsCurrentTarget>1</IsCurrentTarget>
|
<IsCurrentTarget>0</IsCurrentTarget>
|
||||||
</OPTFL>
|
</OPTFL>
|
||||||
<CpuCode>18</CpuCode>
|
<CpuCode>18</CpuCode>
|
||||||
<DebugOpt>
|
<DebugOpt>
|
||||||
@@ -382,14 +382,14 @@
|
|||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>g_tempptr</ItemText>
|
<ItemText>checker_runcfg</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<MemoryWindow1>
|
<MemoryWindow1>
|
||||||
<Mm>
|
<Mm>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<SubType>1</SubType>
|
<SubType>10</SubType>
|
||||||
<ItemText>0x20001800</ItemText>
|
<ItemText>0x20006924</ItemText>
|
||||||
<AccSizeX>0</AccSizeX>
|
<AccSizeX>0</AccSizeX>
|
||||||
</Mm>
|
</Mm>
|
||||||
</MemoryWindow1>
|
</MemoryWindow1>
|
||||||
@@ -459,16 +459,6 @@
|
|||||||
<pszMrulep></pszMrulep>
|
<pszMrulep></pszMrulep>
|
||||||
<pSingCmdsp></pSingCmdsp>
|
<pSingCmdsp></pSingCmdsp>
|
||||||
<pMultCmdsp></pMultCmdsp>
|
<pMultCmdsp></pMultCmdsp>
|
||||||
<SystemViewers>
|
|
||||||
<Entry>
|
|
||||||
<Name>System Viewer\TIM4</Name>
|
|
||||||
<WinId>35905</WinId>
|
|
||||||
</Entry>
|
|
||||||
<Entry>
|
|
||||||
<Name>System Viewer\TIM5</Name>
|
|
||||||
<WinId>35904</WinId>
|
|
||||||
</Entry>
|
|
||||||
</SystemViewers>
|
|
||||||
<DebugDescription>
|
<DebugDescription>
|
||||||
<Enable>1</Enable>
|
<Enable>1</Enable>
|
||||||
<EnableFlashSeq>1</EnableFlashSeq>
|
<EnableFlashSeq>1</EnableFlashSeq>
|
||||||
@@ -533,7 +523,7 @@
|
|||||||
<OPTFL>
|
<OPTFL>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<IsCurrentTarget>0</IsCurrentTarget>
|
<IsCurrentTarget>1</IsCurrentTarget>
|
||||||
</OPTFL>
|
</OPTFL>
|
||||||
<CpuCode>18</CpuCode>
|
<CpuCode>18</CpuCode>
|
||||||
<DebugOpt>
|
<DebugOpt>
|
||||||
@@ -616,14 +606,24 @@
|
|||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>g_tempptr</ItemText>
|
<ItemText>runcfg</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>1</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>EW_RunBuf</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>2</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>state</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<MemoryWindow1>
|
<MemoryWindow1>
|
||||||
<Mm>
|
<Mm>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<SubType>1</SubType>
|
<SubType>0</SubType>
|
||||||
<ItemText>0x20003af4</ItemText>
|
<ItemText>0x20007958</ItemText>
|
||||||
<AccSizeX>0</AccSizeX>
|
<AccSizeX>0</AccSizeX>
|
||||||
</Mm>
|
</Mm>
|
||||||
</MemoryWindow1>
|
</MemoryWindow1>
|
||||||
@@ -1565,7 +1565,7 @@
|
|||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>rt_thread</GroupName>
|
<GroupName>rt_thread</GroupName>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
@@ -2017,6 +2017,30 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>10</GroupNumber>
|
||||||
|
<FileNumber>104</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\source\task\tran_for_broadcast.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>tran_for_broadcast.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>10</GroupNumber>
|
||||||
|
<FileNumber>105</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\source\task\tran_for_coder.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>tran_for_coder.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
@@ -2027,7 +2051,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>11</GroupNumber>
|
<GroupNumber>11</GroupNumber>
|
||||||
<FileNumber>104</FileNumber>
|
<FileNumber>106</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -2047,7 +2071,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>105</FileNumber>
|
<FileNumber>107</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -2059,7 +2083,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>106</FileNumber>
|
<FileNumber>108</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -2071,7 +2095,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>107</FileNumber>
|
<FileNumber>109</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -2083,7 +2107,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>108</FileNumber>
|
<FileNumber>110</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -2095,7 +2119,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>109</FileNumber>
|
<FileNumber>111</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -2107,7 +2131,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>110</FileNumber>
|
<FileNumber>112</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -2127,7 +2151,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>13</GroupNumber>
|
<GroupNumber>13</GroupNumber>
|
||||||
<FileNumber>111</FileNumber>
|
<FileNumber>113</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -2147,7 +2171,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>14</GroupNumber>
|
<GroupNumber>14</GroupNumber>
|
||||||
<FileNumber>112</FileNumber>
|
<FileNumber>114</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -2159,7 +2183,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>14</GroupNumber>
|
<GroupNumber>14</GroupNumber>
|
||||||
<FileNumber>113</FileNumber>
|
<FileNumber>115</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@@ -2444,6 +2444,16 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>.\source\task\tran_for_slave.c</FilePath>
|
<FilePath>.\source\task\tran_for_slave.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tran_for_broadcast.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\task\tran_for_broadcast.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tran_for_coder.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\task\tran_for_coder.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
@@ -4051,6 +4061,16 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>.\source\task\tran_for_slave.c</FilePath>
|
<FilePath>.\source\task\tran_for_slave.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tran_for_broadcast.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\task\tran_for_broadcast.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tran_for_coder.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\task\tran_for_coder.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
@@ -5316,6 +5336,16 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>.\source\task\tran_for_slave.c</FilePath>
|
<FilePath>.\source\task\tran_for_slave.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tran_for_broadcast.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\task\tran_for_broadcast.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tran_for_coder.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\task\tran_for_coder.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
@@ -296,6 +296,8 @@
|
|||||||
2023.12.18
|
2023.12.18
|
||||||
添加写三码验三码任务,实现0x20任务,完成任务插槽机制
|
添加写三码验三码任务,实现0x20任务,完成任务插槽机制
|
||||||
添加文件 tran_for_broadcast.c
|
添加文件 tran_for_broadcast.c
|
||||||
|
2023.12.19
|
||||||
|
添加赋码设备注码命令,实现ew检测时注码
|
||||||
|
添加文件 tran_for_coder.c
|
||||||
|
|
||||||
|
|
||||||
|
@@ -69,8 +69,12 @@ static int coder_calc_year(const char *year,const char shell_year,char *uid_year
|
|||||||
}
|
}
|
||||||
// year是实时数据,鉴于12月31生产的雷管,year可能不同
|
// year是实时数据,鉴于12月31生产的雷管,year可能不同
|
||||||
// 此时year-1来保证与uid码上的相同
|
// 此时year-1来保证与uid码上的相同
|
||||||
if(year[3]!=shell_year)
|
for(int i=0;i<10;i++){
|
||||||
y--;
|
if((y%10)!=(shell_year-'0'))
|
||||||
|
y--;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
uid_year[0]=y%100/10+'0';
|
uid_year[0]=y%100/10+'0';
|
||||||
uid_year[1]=y%10+'0';
|
uid_year[1]=y%10+'0';
|
||||||
if(uid_year[1]==shell_year)
|
if(uid_year[1]==shell_year)
|
||||||
|
@@ -555,7 +555,7 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
|
|||||||
array_def *r=arr_creat();
|
array_def *r=arr_creat();
|
||||||
if(s->scheme_inited==0){
|
if(s->scheme_inited==0){
|
||||||
DBG_WARN("scheme not init.");
|
DBG_WARN("scheme not init.");
|
||||||
arr_append(r,1);
|
arr_append(r,20);
|
||||||
return arr_temp(r);
|
return arr_temp(r);
|
||||||
}
|
}
|
||||||
res=checker_runcfg.power_prapare_exe;
|
res=checker_runcfg.power_prapare_exe;
|
||||||
@@ -568,7 +568,7 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
|
|||||||
|
|
||||||
if(s->chip_type>=LENGTH(s->tasks_fun_table)){
|
if(s->chip_type>=LENGTH(s->tasks_fun_table)){
|
||||||
DBG_WARN("unknown chip type.");
|
DBG_WARN("unknown chip type.");
|
||||||
arr_append(r,2);
|
arr_append(r,20);
|
||||||
return arr_temp(r);
|
return arr_temp(r);
|
||||||
}
|
}
|
||||||
elec_check_result_clear();
|
elec_check_result_clear();
|
||||||
@@ -597,9 +597,9 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
|
|||||||
elec_judge_def *e=malloc(sizeof(elec_judge_def));
|
elec_judge_def *e=malloc(sizeof(elec_judge_def));
|
||||||
elec_judge(e,s->task_num,checker_runcfg.Task_Result,
|
elec_judge(e,s->task_num,checker_runcfg.Task_Result,
|
||||||
checker_runcfg.Task_Excute,
|
checker_runcfg.Task_Excute,
|
||||||
(uint8_t *)checker_runcfg.Test_Rtv,0,0);
|
(uint8_t *)checker_runcfg.Test_Rtv,&res,0);
|
||||||
free(e);
|
free(e);
|
||||||
arr_append(r,0);
|
arr_append(r,res);
|
||||||
arr_appends(r,checker_runcfg.Task_Result,8);
|
arr_appends(r,checker_runcfg.Task_Result,8);
|
||||||
arr_appends(r,checker_runcfg.Task_Excute,8);
|
arr_appends(r,checker_runcfg.Task_Excute,8);
|
||||||
arr_appends(r,checker_runcfg.Test_Rtv,checker_runcfg.rtv_index*2);
|
arr_appends(r,checker_runcfg.Test_Rtv,checker_runcfg.rtv_index*2);
|
||||||
|
@@ -218,5 +218,7 @@ void CheckerExt_Slot(void)
|
|||||||
CheckerTask exttaskArray[CHECKER_EXTID_COUNT]={
|
CheckerTask exttaskArray[CHECKER_EXTID_COUNT]={
|
||||||
CheckerExt_CalcErr,
|
CheckerExt_CalcErr,
|
||||||
CheckerExt_Repeat,
|
CheckerExt_Repeat,
|
||||||
|
CheckerExt_SetUID,
|
||||||
|
CheckerExt_Slot,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -157,7 +157,7 @@ void EW_Test_ReadUID(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memcpy(checker_runcfg.writeuid,EW_RunBuf,checker_runcfg.uid_len);
|
memcpy(checker_runcfg.writeuid,EW_RunBuf,checker_runcfg.params[0]);
|
||||||
ul_temp = Power_ConvCur(EW_FreeBack_MaxCur,EWDriver_Sample_R);
|
ul_temp = Power_ConvCur(EW_FreeBack_MaxCur,EWDriver_Sample_R);
|
||||||
ul_temp = (ul_temp + 500)/1000;
|
ul_temp = (ul_temp + 500)/1000;
|
||||||
|
|
||||||
@@ -857,6 +857,11 @@ void EW_Test_VerifyUID(void)
|
|||||||
{
|
{
|
||||||
uint8_t uc_rtv = 0;
|
uint8_t uc_rtv = 0;
|
||||||
System_State_un state;
|
System_State_un state;
|
||||||
|
if(JQXT_Test_IsNeedBind() == 0)
|
||||||
|
{
|
||||||
|
Checker_MaskResult(0,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
//读UID MTP
|
//读UID MTP
|
||||||
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
||||||
EW_ReadMTP(checker_runcfg.netid,0x00,EW_RunBuf,checker_runcfg.uid_len+1);
|
EW_ReadMTP(checker_runcfg.netid,0x00,EW_RunBuf,checker_runcfg.uid_len+1);
|
||||||
@@ -874,6 +879,7 @@ void EW_Test_VerifyUID(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
||||||
|
delay_ms(50);
|
||||||
EW_ReadMTP(checker_runcfg.netid,0x20,EW_RunBuf,checker_runcfg.uid_len+1);
|
EW_ReadMTP(checker_runcfg.netid,0x20,EW_RunBuf,checker_runcfg.uid_len+1);
|
||||||
if(EW_RunBuf[checker_runcfg.uid_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.uid_len))
|
if(EW_RunBuf[checker_runcfg.uid_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.uid_len))
|
||||||
{
|
{
|
||||||
@@ -891,6 +897,7 @@ void EW_Test_VerifyUID(void)
|
|||||||
|
|
||||||
//读PWD MTP
|
//读PWD MTP
|
||||||
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
||||||
|
delay_ms(50);
|
||||||
EW_ReadMTP(checker_runcfg.netid,0x04,EW_RunBuf,checker_runcfg.pwd_len+1);
|
EW_ReadMTP(checker_runcfg.netid,0x04,EW_RunBuf,checker_runcfg.pwd_len+1);
|
||||||
if(EW_RunBuf[checker_runcfg.pwd_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.pwd_len))
|
if(EW_RunBuf[checker_runcfg.pwd_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.pwd_len))
|
||||||
{
|
{
|
||||||
@@ -906,6 +913,7 @@ void EW_Test_VerifyUID(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
||||||
|
delay_ms(50);
|
||||||
EW_ReadMTP(checker_runcfg.netid,0x24,EW_RunBuf,checker_runcfg.pwd_len+1);
|
EW_ReadMTP(checker_runcfg.netid,0x24,EW_RunBuf,checker_runcfg.pwd_len+1);
|
||||||
if(EW_RunBuf[checker_runcfg.pwd_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.pwd_len))
|
if(EW_RunBuf[checker_runcfg.pwd_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.pwd_len))
|
||||||
{
|
{
|
||||||
@@ -923,6 +931,7 @@ void EW_Test_VerifyUID(void)
|
|||||||
|
|
||||||
//读UID
|
//读UID
|
||||||
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
|
||||||
|
delay_ms(50);
|
||||||
uc_rtv = EW_ReadUID(checker_runcfg.netid,EW_RunBuf,checker_runcfg.uid_len);
|
uc_rtv = EW_ReadUID(checker_runcfg.netid,EW_RunBuf,checker_runcfg.uid_len);
|
||||||
if(0 != memcmp(EW_RunBuf,checker_runcfg.writeuid,checker_runcfg.uid_len))
|
if(0 != memcmp(EW_RunBuf,checker_runcfg.writeuid,checker_runcfg.uid_len))
|
||||||
{
|
{
|
||||||
|
@@ -1260,6 +1260,10 @@ JQ_Test_WriteFacBuff ,//35 写缓存数据
|
|||||||
JQ_Test_VerifyFacBuff ,//36 验证缓存数据
|
JQ_Test_VerifyFacBuff ,//36 验证缓存数据
|
||||||
JQ_Test_VerifyDelay ,//37 读取延时值和otp数据相比
|
JQ_Test_VerifyDelay ,//37 读取延时值和otp数据相比
|
||||||
JQ_Test_Toggle ,//38 切换总线极性
|
JQ_Test_Toggle ,//38 切换总线极性
|
||||||
|
CheckerExt_CalcErr ,//39 计算异常
|
||||||
|
CheckerExt_Repeat ,//40 重新执行任务
|
||||||
|
CheckerExt_SetUID ,//41 设置uid数据到小板
|
||||||
|
CheckerExt_Slot ,//42 任务插槽
|
||||||
(void*)0 //数组结束
|
(void*)0 //数组结束
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define BUILD_DATE "2023-12-18 18:02:16"
|
#define BUILD_DATE "2023-12-19 15:39:10"
|
||||||
#define SOFT_VERSION "2.08"
|
#define SOFT_VERSION "2.08"
|
||||||
|
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
#include "prot_uc.h"
|
#include "prot_uc.h"
|
||||||
#include "transmit.h"
|
#include "transmit.h"
|
||||||
#include "tran_for_broadcast.h"
|
#include "tran_for_broadcast.h"
|
||||||
#include "tran_for_coder2ch.h"
|
#include "tran_for_coder.h"
|
||||||
#include "tran_for_slave.h"
|
#include "tran_for_slave.h"
|
||||||
|
|
||||||
|
|
||||||
|
@@ -22,8 +22,8 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
执行任务命令格式
|
执行任务命令格式
|
||||||
[0]=总包数,[1]=当前包数(1开始)
|
[0...1]=总字节数,[2]=当前包数(0开始),[3]=当前包字节数
|
||||||
[2...n]=数据
|
[4...n]=数据
|
||||||
|
|
||||||
数据域格式
|
数据域格式
|
||||||
[0]=小板地址,[1]=数据长度,[2...n]=数据
|
[0]=小板地址,[1]=数据长度,[2...n]=数据
|
||||||
@@ -47,8 +47,6 @@ typedef struct{
|
|||||||
ucport_def u;
|
ucport_def u;
|
||||||
rt_timer_t timer;
|
rt_timer_t timer;
|
||||||
array_def *data;
|
array_def *data;
|
||||||
int pack_all;
|
|
||||||
int pack_curr;
|
|
||||||
}slave_def;
|
}slave_def;
|
||||||
|
|
||||||
|
|
||||||
@@ -139,36 +137,36 @@ static array_def *slave_creat_retdata(slave_def *s,array_def *r)
|
|||||||
static int run_task_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str)
|
static int run_task_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str)
|
||||||
{
|
{
|
||||||
slave_def *s=(slave_def *)u;
|
slave_def *s=(slave_def *)u;
|
||||||
int pack_curr=0,pack_all=0;
|
int pack_curr=0,pack_all=0,pack_size=0;
|
||||||
array_def *r=0;
|
array_def *r=0;
|
||||||
array_def *check=0;
|
array_def *check=0;
|
||||||
uint8_t *d;
|
uint8_t *d;
|
||||||
pack_all=arr_get(data,0);
|
pack_all=arr_get(data,0)|(arr_get(data,1)<<8);
|
||||||
pack_curr=arr_get(data,1);
|
pack_curr=arr_get(data,2);
|
||||||
s->pack_all=pack_all;
|
pack_size=arr_get(data,3);
|
||||||
if(pack_curr==1){
|
if(pack_curr==0){
|
||||||
// 第一个数据包重置接收
|
// 第一个数据包重置接收
|
||||||
CHECK_DO(s->data,arr_delete);
|
CHECK_DO(s->data,arr_delete);
|
||||||
s->data=arr_creat();
|
s->data=arr_creat();
|
||||||
}
|
}
|
||||||
if(pack_curr==s->pack_curr+1){
|
if(arr_length(s->data)<pack_all){
|
||||||
s->pack_curr++;
|
d=arr_data(data)+4;
|
||||||
d=arr_data(data)+2;
|
arr_appends(s->data,d,arr_length(data)-4);
|
||||||
arr_appends(s->data,d,arr_length(data)-2);
|
}
|
||||||
if(s->pack_curr<s->pack_all){
|
if(arr_length(s->data)<pack_all){
|
||||||
r=arr_creat();
|
r=arr_creat();
|
||||||
arr_append(r,0);
|
arr_append(r,0);
|
||||||
emit tran_reply_signal(u->p,arr_temp(r));
|
emit tran_reply_signal(u->p,arr_temp(r));
|
||||||
}else{
|
}
|
||||||
// 接收完成后执行命令
|
else if(arr_length(s->data)==pack_all){
|
||||||
r=arr_creat();
|
// 接收完成后执行命令
|
||||||
slave_get_self(s);
|
r=arr_creat();
|
||||||
slave_adds(s);
|
slave_get_self(s);
|
||||||
check=elec_check_with_scheme(0);
|
slave_adds(s);
|
||||||
arr_append(r,arr_get(check,0));
|
check=elec_check_with_scheme(0);
|
||||||
slave_creat_retdata(s,r);
|
arr_append(r,arr_get(check,0));
|
||||||
emit tran_reply_signal(u->p,arr_temp(r));
|
slave_creat_retdata(s,r);
|
||||||
}
|
emit tran_reply_signal(u->p,arr_temp(r));
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
128
source/task/tran_for_coder.c
Normal file
128
source/task/tran_for_coder.c
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
#include "tran_for_coder.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "mymisc.h"
|
||||||
|
#include "mystdlib.h"
|
||||||
|
#include "board.h"
|
||||||
|
#include "dev_flash.h"
|
||||||
|
#include "prot_uc.h"
|
||||||
|
#include "coder_lib.h"
|
||||||
|
#include "PSDGenerate.h"
|
||||||
|
#include "mystring.h"
|
||||||
|
#include "coder_judge.h"
|
||||||
|
#include "JQ_UIDGenerate.h"
|
||||||
|
#include "transmit.h"
|
||||||
|
#include "elec_judge.h"
|
||||||
|
#include "elec_task_slot.h"
|
||||||
|
#include "elec_det.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
ucport_def u;
|
||||||
|
char uid_code[20];
|
||||||
|
uint8_t save_code[12];
|
||||||
|
uint8_t psw[10];
|
||||||
|
char psw_ascii[10];
|
||||||
|
}slave_def;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static slave_def *slave_creat(void)
|
||||||
|
{
|
||||||
|
slave_def *u=calloc(1,sizeof(slave_def));
|
||||||
|
return u;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void slave_del(ucport_def *u)
|
||||||
|
{
|
||||||
|
slave_def *s=(slave_def *)u;
|
||||||
|
free(u);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 赋码仪 注码使用xt算法
|
||||||
|
static int code_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str)
|
||||||
|
{
|
||||||
|
slave_def *s=(slave_def *)u;
|
||||||
|
uint8_t *d=arr_data(data);
|
||||||
|
if(d[0]!=1){
|
||||||
|
// 只支持1个通道
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(check_shell_code((const char *)&d[6])==0){
|
||||||
|
// 管壳码无效
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
if(coder_shell_to_uid((const char *)&d[1],(const char *)&d[6],s->uid_code)!=0){
|
||||||
|
// uid校验失败
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
array_def *r=arr_creat();
|
||||||
|
arr_append(r,1);
|
||||||
|
arr_append(r,0);
|
||||||
|
emit tran_reply_signal(u->p,arr_temp(r));
|
||||||
|
}
|
||||||
|
|
||||||
|
coder_uid_to_save(s->uid_code,s->save_code);
|
||||||
|
GetPasswordByUidCode((const uint8_t *)s->uid_code,s->psw);
|
||||||
|
sprintf(s->psw_ascii,"%02X%02X%02X%02X",
|
||||||
|
s->psw[0],s->psw[1],s->psw[2],s->psw[3]);
|
||||||
|
array_def *uid_psw=arr_creat();
|
||||||
|
arr_append(uid_psw,8);
|
||||||
|
arr_append(uid_psw,4);
|
||||||
|
arr_append(uid_psw,1);
|
||||||
|
arr_appends(uid_psw,s->save_code,8);
|
||||||
|
arr_appends(uid_psw,s->psw,4);
|
||||||
|
array_def *r=elec_check_with_scheme(uid_psw);
|
||||||
|
arr_delete(uid_psw);
|
||||||
|
if(r){
|
||||||
|
array_def *ret=arr_creat();
|
||||||
|
arr_append(ret,1);
|
||||||
|
arr_append(ret,1);
|
||||||
|
arr_append(ret,arr_get(r,0));
|
||||||
|
arr_appends(ret,&d[6],13);
|
||||||
|
arr_appends(ret,s->uid_code,16);
|
||||||
|
arr_appends(ret,s->psw_ascii,8);
|
||||||
|
emit tran_send_signal(u->p,0x82,arr_temp(ret));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
static ucport_def *code(tran_def *t, uint8_t cmd,array_def *data)
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
slave_def *u=slave_creat();
|
||||||
|
u->u.p=t;
|
||||||
|
u->u.del=slave_del;
|
||||||
|
u->u.dolater=code_dolater;
|
||||||
|
u->u.dolater(&u->u,cmd,data,"ok");
|
||||||
|
return (ucport_def *)u;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
transmit_export(ym_checker,0x02,code)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -1,5 +1,5 @@
|
|||||||
#ifndef tran_for_coder2ch_h__
|
#ifndef tran_for_coder_h__
|
||||||
#define tran_for_coder2ch_h__
|
#define tran_for_coder_h__
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -1,316 +0,0 @@
|
|||||||
#include "tran_for_coder2ch.h"
|
|
||||||
#include "debug.h"
|
|
||||||
#include "mymisc.h"
|
|
||||||
#include "mystdlib.h"
|
|
||||||
#include "board.h"
|
|
||||||
#include "dev_flash.h"
|
|
||||||
#include "prot_uc.h"
|
|
||||||
#include "coder_lib.h"
|
|
||||||
#include "JQ_PSDGenerate.h"
|
|
||||||
#include "mystring.h"
|
|
||||||
#include "coder_judge.h"
|
|
||||||
#include "JQ_UIDGenerate.h"
|
|
||||||
#include "transmit.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// JQ模块在检测时注码
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct{
|
|
||||||
int step;// 检测注码顺序
|
|
||||||
}self_def;
|
|
||||||
|
|
||||||
static self_def g_self;
|
|
||||||
|
|
||||||
|
|
||||||
// 从机地址偏移
|
|
||||||
static inline int slave_addr_off(void)
|
|
||||||
{
|
|
||||||
if(sys_param()->slave_addr_start)
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct{
|
|
||||||
ucport_def u;
|
|
||||||
uint8_t addrs_num;
|
|
||||||
char year[10];
|
|
||||||
struct{
|
|
||||||
char shell_code[20];
|
|
||||||
char uid_code[20];
|
|
||||||
char password[10];
|
|
||||||
uint8_t uid_pw_hex[15];
|
|
||||||
}item[10];
|
|
||||||
uint8_t ack[390];
|
|
||||||
uint8_t ack_num;
|
|
||||||
void (*doexert)(ucport_def *u);
|
|
||||||
}write_uid_def;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 上报注码结果
|
|
||||||
static void write_uid_upmit(write_uid_def *w)
|
|
||||||
{
|
|
||||||
int ack=0;
|
|
||||||
array_def *a=arr_creat();
|
|
||||||
arr_append(a,w->addrs_num);
|
|
||||||
// arr_appends(a,w->ack,390);
|
|
||||||
for(int i=0;i<w->addrs_num;i++)
|
|
||||||
{
|
|
||||||
uint8_t *d=&w->ack[i*38];
|
|
||||||
ack|=d[1];
|
|
||||||
if(sys_param()->coder_ret_mode)
|
|
||||||
{
|
|
||||||
// 完整模式
|
|
||||||
arr_appends(a,d,38);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
// 精简模式
|
|
||||||
arr_appends(a,d,2);
|
|
||||||
d+=2+13+15;
|
|
||||||
arr_appends(a,d,8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// emit tran_send_signal(w->u.p,0x82,arr_temp(a));
|
|
||||||
// 发送赋码结束信号
|
|
||||||
emit code2_end_signal(w->u.p,ack,arr_temp(a));
|
|
||||||
|
|
||||||
g_self.step=0;
|
|
||||||
// 把命令字改为0x82用于接收主机应答
|
|
||||||
tran_set_busy(w->u.p,0);
|
|
||||||
w->u.cmd=0x82;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 填充注码结果
|
|
||||||
static void write_uid_fillret(write_uid_def *w,int addr,int ack)
|
|
||||||
{
|
|
||||||
addr-=1;
|
|
||||||
uint8_t *d=&w->ack[(addr)*38];
|
|
||||||
w->ack_num++;
|
|
||||||
d[0]=addr+slave_addr_off();
|
|
||||||
//d[1]=((ack==0xff)||(ack==0x00))?ack:(ack+0xc0);
|
|
||||||
d[1]=ack;
|
|
||||||
memcpy(&d[2],w->item[addr].shell_code,13);
|
|
||||||
memcpy(&d[2+13],w->item[addr].uid_code,15);
|
|
||||||
memcpy(&d[2+13+15],w->item[addr].password,8);
|
|
||||||
if(w->ack_num>=w->addrs_num)
|
|
||||||
{
|
|
||||||
write_uid_upmit(w);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 判断检测数据错误码
|
|
||||||
// 返回 errcode,1=param/0=execute,taskindex,paramindex
|
|
||||||
static uint32_t in_range_err(const uint8_t *src_data,const uint8_t *errbit)
|
|
||||||
{
|
|
||||||
const scheme_def *s=check_scheme();
|
|
||||||
const scheme_task_def *t;
|
|
||||||
int temp;
|
|
||||||
int index=0;
|
|
||||||
uint32_t ret=0;
|
|
||||||
for(int i=0;i<s->task_num;i++)
|
|
||||||
{
|
|
||||||
t=&s->task[i];
|
|
||||||
if((errbit[i/8]&(1<<(i%8)))!=0)
|
|
||||||
{
|
|
||||||
ret=(t->err&0xff)|(i<<16);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
for(int j=0;j<t->item_num;j++)
|
|
||||||
{
|
|
||||||
temp=src_data[index*2]|(src_data[index*2+1]<<8);
|
|
||||||
if(temp>=t->range[j].min&&temp<=t->range[j].max){
|
|
||||||
// 正常
|
|
||||||
}else{
|
|
||||||
ret=(t->range[j].err&0xff)|(1<<8)|(i<<16)|(j<<24);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 注码完成
|
|
||||||
static void write_uid_end(ucport_def *u,void *src,void *data,int ack,char *err_str)
|
|
||||||
{
|
|
||||||
write_uid_def *w=(write_uid_def *)u;
|
|
||||||
uint8_t addr=0;
|
|
||||||
if(addr<=0||addr>w->addrs_num){
|
|
||||||
DBG_WARN("addr err:%d",addr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
uint32_t errcode=0;
|
|
||||||
if(ack==0)
|
|
||||||
{
|
|
||||||
if(data)
|
|
||||||
{
|
|
||||||
errcode=in_range_err(arr_data(data)+8+8,arr_data(data));
|
|
||||||
ack=coder_judge_jq(arr_data(data));
|
|
||||||
if(ack==0){
|
|
||||||
ack=errcode&0xff;
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
ack=0xd0;
|
|
||||||
DBG_WARN("check return data is none.");
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
ack=0xd0;// 通信超时
|
|
||||||
}
|
|
||||||
DBG_LOG("addr=%d,errcode=%d",addr,ack);
|
|
||||||
write_uid_fillret(w,addr,ack);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void write_uid_return_ok(void *p)
|
|
||||||
{
|
|
||||||
write_uid_def *u=p;
|
|
||||||
array_def *a=arr_creat();
|
|
||||||
arr_append(a,u->addrs_num);
|
|
||||||
for(int i=0;i<u->addrs_num;i++)
|
|
||||||
{
|
|
||||||
arr_append(a,i+slave_addr_off());
|
|
||||||
arr_append(a,0);
|
|
||||||
arr_append_num(a,37,'0');
|
|
||||||
}
|
|
||||||
emit tran_send_signal(u->u.p,0x82,arr_temp(a));
|
|
||||||
tran_set_busy(u->u.p,0);
|
|
||||||
g_self.step=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void write_del(ucport_def *u)
|
|
||||||
{
|
|
||||||
free(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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static ucport_def *write_uid(tran_def *t, uint8_t cmd,array_def *data)
|
|
||||||
{
|
|
||||||
if(arr_length(data)<14+4+1){
|
|
||||||
DBG_WARN("cmd format err.");
|
|
||||||
DBG_WARN("data=%s",str_temp(arr_string(data)));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int ret=0;
|
|
||||||
write_uid_def *u=calloc(1,sizeof(write_uid_def));
|
|
||||||
u->u.p=t;
|
|
||||||
u->u.del=write_del;
|
|
||||||
u->u.doend=write_uid_end;
|
|
||||||
u->u.dolater=write_uid_dolater;
|
|
||||||
u->addrs_num=arr_get(data,0);
|
|
||||||
memcpy(u->year,arr_data(data)+1,4);
|
|
||||||
DBG_LOG("coder, year=%s",u->year);
|
|
||||||
|
|
||||||
// 数据固定140字节,如果不检测某通道,则该通道填充占位符
|
|
||||||
uint8_t *d_off=arr_data(data)+4+1;
|
|
||||||
uint8_t *d_;
|
|
||||||
tran_set_busy(t,1);
|
|
||||||
for(int i=0;i<u->addrs_num;i++)
|
|
||||||
{
|
|
||||||
memcpy(u->item[i].shell_code,d_off+i*14+1,13);
|
|
||||||
DBG_LOG("slave:%d, shell=%s",i,u->item[i].shell_code);
|
|
||||||
// 生成uid码
|
|
||||||
ret|=coder_shell_to_uid_jq(u->year,u->item[i].shell_code,u->item[i].uid_code);
|
|
||||||
DBG_LOG("slave:%d, uid=%s",i,u->item[i].uid_code);
|
|
||||||
// 生成存储码
|
|
||||||
//ret|=coder_uid_to_save(u->item[i].uid_code,u->item[i].uid_pw_hex);
|
|
||||||
UidCode_YM2JQ((PST_JQUID_TYPEDEF)u->item[i].uid_pw_hex,(PST_YMUID_TYPEDEF)u->item[i].uid_code);
|
|
||||||
// 生成密码
|
|
||||||
JQ_GetPasswordByUidCode((uint8_t *)u->item[i].uid_code,&u->item[i].uid_pw_hex[8]);
|
|
||||||
d_=u->item[i].uid_pw_hex;
|
|
||||||
DBG_LOG("slave:%d, uid_pw=%02X %02X %02X %02X %02X %02X %02X %02X "
|
|
||||||
"%02X %02X %02X %02X ",i,d_[0],d_[1],d_[2],d_[3],d_[4],d_[5],d_[6],d_[7],
|
|
||||||
d_[8],d_[9],d_[10],d_[11]);
|
|
||||||
// 生成密码字符串
|
|
||||||
sprintf(u->item[i].password,"%02X%02X%02X%02X",u->item[i].uid_pw_hex[8],
|
|
||||||
u->item[i].uid_pw_hex[9],u->item[i].uid_pw_hex[10],u->item[i].uid_pw_hex[11]);
|
|
||||||
// 默认失败
|
|
||||||
u->ack[i*38+0]=i+slave_addr_off();
|
|
||||||
u->ack[i*38+1]=1;
|
|
||||||
if(1){
|
|
||||||
if(check_shell_code(u->item[i].shell_code)){
|
|
||||||
// 开始注码
|
|
||||||
//port_start(mcu,code2_creat(8,4,u->item[i].uid_pw_hex));
|
|
||||||
}else{
|
|
||||||
// 管壳码无效,不注码,此时默认已ack
|
|
||||||
// 管壳码无效不视为失败
|
|
||||||
ret=0;
|
|
||||||
write_uid_fillret(u,i+1,0xff);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
array_def *a=arr_creat();
|
|
||||||
arr_append(a,u->addrs_num);
|
|
||||||
// if(g_self.step==1){
|
|
||||||
if(ret==0)
|
|
||||||
arr_append(a,TRAN_ERR_NONE);
|
|
||||||
else
|
|
||||||
arr_append(a,TRAN_ERR_PARAM);
|
|
||||||
// }else{
|
|
||||||
// arr_append(a,TRAN_ERR_STEP);
|
|
||||||
// }
|
|
||||||
emit tran_reply_signal(u->u.p,arr_temp(a));
|
|
||||||
|
|
||||||
// test:稍后返回成功
|
|
||||||
//later_execute(write_uid_return_ok,u,500);
|
|
||||||
|
|
||||||
// 发送注码开始信号
|
|
||||||
emit code2_start_signal(u->u.p);
|
|
||||||
|
|
||||||
return (ucport_def *)u;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
transmit_export(ym_checker,0x02,write_uid)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user