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

📄 zhejiang.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 5 页
字号:
            	  							{
            	  	  							if(*(rbuffer+5)==0)
            	  	  								{
            	  	  									zhejiang_movedateblock(&a[0],rbuffer+5,21,0x10,0x6);
            	  	         								zhejiang_movedateblock(&a[21],rbuffer+5+23,21,0x20,0x6);
            	  	         								zhejiang_send_read(44);
											}
            	  	  							else
            	  	  								{
            	  	         								for(l=0;l<num;l++)
            	  	            									*(rbuffer+7+l)=a[addr+l];
            	                								zhejiang_send_read(num);
            	  	  								}
            	  							}
            						}
            					break;
				case 7:  // changed
          					if(*(rbuffer+5)==00)
          						{ 
          							addr=0;
                						for(l=0;l<5;l++)
                							{
                      							a[addr]=(l+1)<<4;// command low
                      							a[addr+1]=0x7;//command high
                      							addr=addr+2;
                	 							addr=addr+zhe_oneshitao(l,&a[addr]);
                							}
          	   						if(addr!=0)
            	  	    						{
            	  	    							for(l=0;l<addr;l++)
            	  	          							*(rbuffer+5+l)=a[l];
									// first command must sub  (send()  3+==commandl,commandh,addr
            	             							zhejiang_send_read(addr-2);//10 07
            	  	    						}    
          						}
          					else
          	 					{
          	 						if(((0xf&(*(rbuffer+5)))==0)&&((*(rbuffer+5)>>4)<6))// 30  40 50  question
          	      							{
          	      								addr=zhe_oneshitao((*(rbuffer+5)>>4)-1,&a[0]);
                       							if(addr!=0)
            	  	    								{
            	  	    									for(l=0;l<addr;l++)
            	  	          									*(rbuffer+7+l)=a[l];
            	             									zhejiang_send_read(addr);
            	  	    								}    
               							}
          	   						else 	   	     
                         						zhejiang_send_readerr();
          	   					}  	  
            					break;//case 7
 				case 8:
            // dong jie
             					l1=0;
            					for(l=0;l<4;l++)
            	 					if(*(rbuffer+5)==table_zhejiang_read_800[l][0])
            	 						{
            	 							num=table_zhejiang_read_800[l][2];
                       						addr=table_zhejiang_read_800[l][1];
                       						l1=1;
                       						l=4;
								}
            					if(l1==0) 
							zhejiang_send_readerr();
            					else 
            						{// zhi shu ju
            	  						fm_800_set_ed(&a[0]);            
            	  						if(num!=0)
            	  							{
            	  								for(l=0;l<num;l++)
            	  	      								*(rbuffer+7+l)=a[addr+l];
            	         							zhejiang_send_read(num);
            	  							}
            						}
            					break;//case 8 	    
				default: 
						zhejiang_send_readerr();  
						break;
	    	 
				}
		}
}


// mima err chu li
unsigned char zhejiang_mima_ok_err(value)
unsigned char value;
{unsigned char l,l1,l2;
  unsigned int addr;
  l1=*(rbuffer+7);// mima quanxian
  l=value;
  if(progfunction_security==yes)
  	{
     		if(value==0)  // err num
   	 		g_errmima_function(); 
        	if(RSTATUS_RUN==LOCK_DEED) 
			l=0;
        	if(l==1) 
            		if(RAM[R_SECURITY_LOCK_NUM]!=0)
               		{
                 			RAM[R_SECURITY_LOCK_NUM]=0;
                 			data_addr.addri=FM_SECURITY_LOCK_NUM;
                 			wr_data[0]=RAM[R_SECURITY_LOCK_NUM];
                 			write(FM,1);
                 		} 
    		if(RSTATUS_RUN==LOCK_DEED) 
			l=0;  
      	}
return l;
}

unsigned char zhejiang_canwrite_kwh_kw2006()
{
	if((progfunction_security==yes)&&(RSTATUS_RUN==TEST)) 
		return 1;
	else 
		return 0;
}


unsigned char zhejiang_canwrite_kwh()
{
	if((progfunction_security!=yes)||(RSTATUS_RUN==TEST)) 
		return 1;
	else 
		return 0;
}
unsigned char zhejiang_canwrite_price()
{
	if((progfunction_security==yes)&&((RSTATUS_RUN==LOCK_90DAY)||(RSTATUS_RUN==LOCK_DEED))) 
		return 0;
	else 
		return 1;
}

void zhe_jiang_time_use()
{  
	rtc8025_timevalue[3]=week_from_day_month_year(&rtc8025_timevalue[4]);
    	move_rtc8025_to_softrtc();
	powerup_changedtime_priceswitch=1;//time changed
    	rtc8025_write();
    	copy_ram_to_fm(R_SOFT_SECOND,7,R_SOFT_SECOND);
}


const unsigned char table_zhejiang_write_kwh[]={0,2,3,4,1};  // zon--0.fen--2,ping---3,guo ---4,jian--1
// 0----700  1---710
unsigned char zhe_700or710()
{unsigned char l;
	l=*(rbuffer+7);// shi duan shu  (hex)
	if(*(rbuffer+5)==0x10)
        	{// code  68 len len 68 addr 10 c7 num1 day month 3*l ed 20 c7  
        		if((l<13)&&(*(rbuffer+1)>(3+3+3*l))&&(*(rbuffer+5+5+3*l+1)==0x20)) 
					return 0;
          		else 
					return 1;
		}
	else 
		return 1;
}


unsigned char zhejiang_peizhi_use()
{
	if((yes==progfunction_security)&&((zhejiang_mima_enable==0)||(zhejiang_mima_quanxiang!=0))) 
       	return 0;
   	else 
		return 1;
}
   
void zhejiang_kwh_set_use(unsigned char *point)
{unsigned char l,l1;
 // you gong
   for(l1=0;l1<40;l1++)
        bianchengqian[l1]=RAM[R_KWH_F_BAKA+l1];
   for(l1=0;l1<5;l1++)
 	 { 	  
 	   	for(l=0;l<4;l++)
 	  	  	RAM[R_KWH_F_BAKA+4*table_zhejiang_write_kwh[l1]+l]=*(point+l+4*l1);
 	  }
   for(l=0;l<5;l++)
 	  dianliang_write(l);
   onetime_kwhp(1,bianchengqian,&RAM[R_KWH_F_BAKA]);
   onetime_biancheng(1,3,0x30);
}

void zhejiang_kvarh_set_use(unsigned char *point)
{unsigned char l,l1;
// wu gong 	  	        	                                                               	        
  for(l1=0;l1<40;l1++)
       bianchengqian[l1]=RAM[R_KWH_F_BAKA+l1+40];
  for(l1=0;l1<5;l1++)
 	 {
 	  	for(l=0;l<4;l++)
 	  		{
 	  	  		RAM[R_KWH_F_BAKA+40+4* table_zhejiang_write_kwh[l1]+l]=*(point+l+4*l1); 	  	  
 	  	  	} 
 	  }
  for(l=0;l<4;l++)
  	RAM[R_KWH_F_BAKA+80+l]=RAM[R_KWH_F_BAKA+40+l];// zheng xiang wu gong--->one
  for(l=0;l<12;l++)
  	RAM[R_KWH_F_BAKA+80+4+l]=0;
  for(l=10;l<24;l++)
 	 dianliang_write(l); 	  	        	         	  	  
  onetime_kvarhp(1,bianchengqian,&RAM[R_KWH_F_BAKA+40]);
  onetime_biancheng(1,3,0x31);
}



pzhejiang(rlen,rdisplay_info_status,rstatus)
unsigned char *rlen,*rdisplay_info_status,*rstatus;
// rlen----------     len num  rec
// rdisplay_info_status------myaddr, broadcast, start
// rstatus----------------> rec,send,start,err 
{unsigned char value,cs,l,l1,displayerr,l2,l3,num;
  unsigned int code,addr;
  unsigned char a[5][40],len,datelen,len7;
value=1;
displayerr=0;
datelen=*(rbuffer+1);
len7=*(rbuffer+7);
if(*rlen>=(datelen+6))
 	{// end==0xd
 	  	if(*(rbuffer+5+datelen)!=0xd) 
			value=0;
 	  	else
 	  		{
 	  			if((datelen==0)||(datelen!=*(rbuffer+2))) 
					value=0;
 	         		else
 	         			{
 	  	        			//cs
 	  	        			cs=0;
 	  	        			for(l=0;l<datelen;l++)
 	  	        				cs=cs+*(rbuffer+4+l);
 	  	        			if(cs!=*(rbuffer+4+datelen)) 
							value=0;
 	  	        			else
 	  	        				{// address
 	  	        	 				if(*(rbuffer+4)==0xff)
 	  	        	 					// guanbo
 	  	        	 					{ 
 	  	        	 						if(*rdisplay_info_status!=INFO_GUANGBO)   
      	                                  						{
      	                                  							*rdisplay_info_status=INFO_GUANGBO;   	  	        	              
	                                    						 display_comm=2;
											}
 	  	        	 					}
 	  	        	 				else
 	  	        	 					{
 	  	        	 						if(*(rbuffer+4)==RAM[R_BIAOADDR_L])
 	  	        	 	  						// NY ADDRESS
 	  	        	 	       					{ 
 	  	        	 	       						if(*rdisplay_info_status!=INFO_ME)   
      	                                           						{
      	                                           							*rdisplay_info_status=INFO_ME;  
 	  	        	                         							display_comm=2;	                                            
                                                   						}
 	  	        	 	        					}
 	  	        	          					else
 	  	        	          						{
                                           						my_tongdao_start();
 	  	        	          						}
 	  	        	 	  				}
 	  	        	    // guanbo or my address
 	  	        	     		if((*rdisplay_info_status==INFO_ME)||(*rdisplay_info_status==INFO_GUANGBO))
 	  	        	     	   		{// add------------------->start
 	  	        	     	    			*rstatus=RERR;
 	  	        	     	    			// add---------------------->end
 	  	        	     	     			code=*(rbuffer+6);
 	  	        	            			code=256*code+*(rbuffer+5);// commandlh
 	  	        	     	     			switch(code)
 	  	        	     	     				{
 	  	        	     	     					case 0x5dd:  // mima quan xian (tong quan guo) 	  	        	     	     	                     
 	  	        	     	     	                    				if(*rdisplay_info_status!=INFO_ME) // bu neng guang bo deng lu
													displayerr=1;
 	  	        	     	     	                    				else
 	  	        	     	     	                    	    				{
 	  	        	     	     	                           					if((datelen!=7)||(len7>1)) 
															value=0;
 	  	        	     	     	                           					else
 	  	        	     	     	                    	            					{// mima
 	  	        	     	     	                    	              					data_addr.addri=FM_MIMA1+3*len7;      // QIU CHU MI MA DE EEPROM WEI ZHI
                                                                             					if(1==read(FM,3))
                                                                      	     						{
                                                                      	     							l1=0;
                                                                                    						if(wr_data[0]==*(rbuffer+8))
                                                                               	      							if(wr_data[1]==*(rbuffer+9))
                                                                               	  	     							if(wr_data[2]==*(rbuffer+10))
                                                                               	 	 								l1=1;
                                                                                     						if(0==zhejiang_mima_ok_err(l1))
                                                                                     	 						value=0;
                                                                                     						else
                                                                                     							{// mima ok
                                                                                     	 							if(len7<2) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -