📄 udp.c
字号:
case 7: // update programme
if(netlock){
disable_shotdown=1;
code_len=buf[45]+buf[46]*0x100+buf[47]*0x10000+buf[48]*0x1000000;
code_sum=buf[49]+buf[50]*0x100+buf[51]*0x10000+buf[52]*0x1000000;
LCD_clear();//清屏
LCD_wcenter(3,(U8*)"write programe",0);
update_done=1;
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 8: // write function key
if(netlock){
//先从FLASH LOAD参数出来
for(i=0;i<Max_index;i++)
pkey[i]=MCU_para[i];
p1=(U8*)(&pkey[keyfun_index]);
for(i=0;i<32;i++)//修改参数
p1[i]=buf[45+i];
addr=(U32)flash_para/2;
Flash_SectorErase(addr);//删除
for(i=0;i<Max_index;i++,addr++)//重写
Flash_WriteWord(addr,pkey[i]);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 12: //syn time
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,10);
Syn_Time();///PCcom.c
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 14: //修改用户名称
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,12);
id=FF232_rbuf[1]+FF232_rbuf[2]*0x100;
for(i=0;i<65;i++)
buf[i+45]=0;
if(Find_ID_addr(id,&R_addr,&F_addr)){
buf[45]=0x01;
}else{
buf[45]=0x00;
}
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
Modify_UserName(3);
}
break;
case 15: // 下载用户信息。
if(netlock){
id=buf[45]+buf[46]*0x100;
UDPdownload_user(id,buf+26);
}
break;
case 16: //上传用户信息
if(netlock){
for(i=61;i<77;i++)
buf[i]=0xFF;
for(i=0;i<32;i++)
infbuf[i]=buf[45+i];
id=infbuf[0]+infbuf[1]*0x100;
if(Find_ID_addr(id,&R_addr,&F_addr)==0){
if(Write_record(infbuf,buf[60])){
buf[45]=0;
}else{
buf[45]=2;
}
}else{
buf[45]=1;
}
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 18: //删除用户
if(netlock){
id=buf[45]+buf[46]*0x100;
if(Del_ID(id,3)==0){
buf[47]=1;
LCD_clrflash();///整理FLASH;
FLASH_clear();
LCD_clear();
LCD_wcenter(3,work[Language],0);
}else{
buf[47]=0;
}
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 20: // update programme
if(netlock){
LCD_wcenter(3,(U8*)"Update Programm!",0);
code_len=buf[45]+buf[46]*0x100+buf[47]*0x10000+buf[48]*0x1000000;
code_sum=buf[49]+buf[50]*0x100+buf[51]*0x10000+buf[52]*0x1000000;
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76); //76包含UDP包头(8B)+UDP数据
update_done=1;
}
break;
case 22:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Read_TimeZone(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 23:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Set_TimeZone(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 24:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Read_TZGRP(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 25:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Set_TZGRP(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 26:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Read_UserAcc(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 27:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Set_UserAcc(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 28:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Read_Comb(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 29:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Set_Comb(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 30:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Read_LockTime(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 31:
if(netlock){
MyMemcpy(FF232_rbuf,buf+44,35);
Set_LockTime(2);
MyMemcpy(buf+45,FF232_sbuf+5,35);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
case 0x55://veryfy image
if(netlock){
if(buf[45]==1){
gSendUDP=1;
MyMemcpy(gMyDestIP, buf+26, 4);
Init_7640(4, buf[46]*2, buf[47], 380, 276);//初始化指纹采集器
}
else if(buf[45]==0)
gSendUDP=0;
else if(buf[45]==2&&gSendUDP){//写指纹初始化的XY坐标
gSendUDP=0;
for(i=0;i<Max_index;i++)
pkey[i]=MCU_para[i];
pkey[initxy_index]=buf[46]+buf[47]*256;
Init_7640(4, buf[46]*2, buf[47], 380, 276);//初始化指纹采集器
addr=(U32)flash_para/2;
Flash_SectorErase(addr);//删除
for(i=0;i<Max_index;i++,addr++){//重写
if(pkey[i]!=0xFFFF)
Flash_WriteWord(addr,pkey[i]);
}
At24c_write(X_START,buf[46]);
At24c_write(Y_START,buf[47]);
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
else if(buf[45]==3&&gSendUDP==0){
gSendUDP=1;
MyMemcpy(gMyDestIP, buf+26, 4);
}
}
break;
case 0xfe://send image
if(netlock){
LCD_clear();//清屏
LCD_wcenter(3,Pnet_dis[3],0);
Capture_7120(380*276-1);
UDP_SendImg(buf+26);
}
break;
case 0x81:
MyMemcpy(FF232_rbuf,buf+44,12);
EnOrDisable_RealTime(0xFF);
for(i=0;i<65;i++)
buf[i+45]=0;
buf[45]=b_sendrealtime;
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
break;
case 0x8F: //按ID号查找、下载用户信息
if(netlock){
type=Find_ID_addr(buf[45]+buf[46]*0x100,&R_addr,&F_addr);
if(type){
if(type==1){
MyMemcpy(buf+45,(U8*)&RAM_user[R_addr],32);
}else{
MyMemcpy(buf+45,(U8*)&RAM_admin[R_addr],32);
}
}else{
buf[45]=0;
buf[46]=0;
}
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);//76包含UDP包头(8B)+UDP数据
}
break;
}
}else if(len==313){ //上传指纹数据,id+指纹模板
if(buf[43]==17){
if(netlock){
MyMemcpy((U8*)&comtmp,buf+45,302);
buf[45]=0;
temp=Find_ID_addr(comtmp.UploadID,&R_addr,&F_addr);
if(temp==1){ //一般用户
faddr1=WF.fprint_addr/0x10000+0x100;
faddr2=WF.fprint_addr%0x10000;
buf[45]=0;
for(i=0;i<4;i++){
if((FMCU_user[F_addr+8+i*2]==0xFFFF)&&(FMCU_user[F_addr+9+i*2]==0xFFFF)){
addr=F_addr+8+i*2+FLASH_user/2;
if((comtmp.Uploadtmp[0]+comtmp.Uploadtmp[1]*0x100)>300){
buf[45]=0;
break;
}
if(Write_fprint(comtmp.Uploadtmp)){
Flash_WriteWord(addr,faddr1);
Flash_WriteWord(addr+1,faddr2);
buf[45]=1;
}
break;
}
}
}else if(temp==2){ //管理者
faddr1=WF.fprint_addr/0x10000+0x100;
faddr2=WF.fprint_addr%0x10000;
for(i=0;i<4;i++){
if((FMCU_admin[F_addr+8+i*2]==0xFFFF)&&(FMCU_admin[F_addr+9+i*2]==0xFFFF)){
addr=F_addr+8+i*2+FLASH_admin/2;
if((comtmp.Uploadtmp[0]+comtmp.Uploadtmp[1]*0x100)>300){
buf[45]=0;
break;
}
if(Write_fprint(comtmp.Uploadtmp)){
Flash_WriteWord(addr,faddr1);
Flash_WriteWord(addr+1,faddr2);
buf[45]=1;
}
break;
}
}
}
MyMemcpy(SendBuf+42,buf+42,68);
UDP_Send(SendBuf, buf+26, 76);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -