⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udp.c

📁 S3C2440驱动DM9000A的裸机程序
💻 C
📖 第 1 页 / 共 2 页
字号:
		    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 + -