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

📄 hualong_v10.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 5 页
字号:
	{0xee02,EPLOCK_I_TYPE_IB,EPLOCK,5},//l18
	{0xee03,EPLOCK_I_TYPE_MAX,EPLOCK,5},//l19
	{0xee04,EPLOCK_V_TYPE,EPLOCK,5},//l20
	{0xee05,EPLOCK_P_JINGDU,EPLOCK,3},//l21
	{0xee06,EPLOCK_Q_JINGDU,EPLOCK,3},//l22
	{0xee07,EPLOCK_METER_TYPE,EPLOCK,1},//l23
	{0xee08,EPLOCK_FACTORY_TIME,EPLOCK,6},//l24
	{0xee10,EPLOCK_TYPE_INSIDE,EPLOCK,1},//l25
	{0xee11,EPLOCK_TYPE_OUTSIDE,EPLOCK,20},//l26
	{0xee12,EPLOCK_FUNCTION_MA,EPLOCK,1},//l27
	{0xee13,47,ROM,2},//l28
	{0xee14,43,ROM,4},//l29
	{0xee15,49,ROM,3},//l30
	{0xee20,EPLOCK_XIANLUBAN_CODE_Z,EPLOCK,20},//l31
	{0xee21,EPLOCK_XIANLUBAN_CODE_A,EPLOCK,20},//l32
	{0xee22,EPLOCK_XIANLUBAN_CODE_B,EPLOCK,20},//l33
	{0xee23,EPLOCK_XIANLUBAN_CODE_C,EPLOCK,20},//l34
	{0xee24,EPLOCK_XIANLUBAN_CODE_D,EPLOCK,20},//l35
	{0xee25,EPLOCK_XIANLUBAN_CODE_E,EPLOCK,20},//l36
	{0xee26,EPLOCK_XIANLUBAN_CODE_F,EPLOCK,20},//l37
	{0xee27,EPLOCK_XIANLUBAN_CODE_G,EPLOCK,20},//l38
	{0xee28,EPLOCK_XIANLUBAN_CODE_H,EPLOCK,20},//l39
	{0xee29,EPLOCK_XIANLUBAN_CODE_I,EPLOCK,20},//l40
       {0xee30,EPLOCK_CUT_KWH_TIME,EPLOCK,2},	//l41
       {0xee31,EP1_TIMER_8025_CLOCK,EP1,2},//l42
       {0xee40,EPLOCK_KWHF_FEILV_ENABLE,EPLOCK,13},//l43
       {0xee41,EPLOCK_KW_MUL,EPLOCK,0x8},//l44
       {0xee71,EP1_PLUS_CONSTANT,EPLOCK,0x3},//l45
       {0xee81,R_KWPLUS_MODE,RRAM,0x1}//l46
	
};
unsigned char result_from_class(classtype,point,len)
unsigned char classtype,*point,*len;
// classtype------------------command type
// point-------------data  to *point
// len -------------->read num byte
{unsigned char a[200],l;
  unsigned char addr,l1,codel;
  unsigned char value,l2,l3;
  value=1;
 codel=0xf&(*(rbuffer+10)-0x33); 
 *len=0;
 l1=0;
switch(classtype)
{
	case class_lostv_currentnum:
		// 3000-3002
			for(l=0;l<6;l++)
				{
					a[l]=RAM[classaddr+l];//RAM[R_LOSTV_NUM+l];
				}
			a[6]=1;
			if(codel<2)
				{addr=3*codel;
		         	  l1=3;
				}
		        else
				if(codel==2)
						{addr=6;
				         	  l1=1;
						}
				else
						{addr=0;
				         	  l1=7;
						}		
	       break;
      case class_lostv_currentblock:
	  		for(l=0;l<50;l++)
				a[l]=0;
			data_addr.addri=classaddr;
	  		read(RRAM,34);
			for(l=0;l<34;l++)
				a[l]=wr_data[l];
			for(l=0;l<3;l++)
				{
					a[6+l]=wr_data[25+l];// ss mm hour
					a[9+l]=wr_data[22+l];// dd mm yy
					a[12+l]=wr_data[31+l];// ss mm hh
					a[15+l]=wr_data[28+l];	// dd mm yy				
				}
			for(l=0;l<16;l++)
				a[18+l]=wr_data[6+l];
			if(codel==0xf)
				{addr=0;
			         l1=50;
				}
			else
				{
				  addr=table_classcurrentlostv[codel].addr;
				  l1=table_classcurrentlostv[codel].len;
				}			
			break;
	case class_lostv_historynum:
			data_addr.addri=current_twobiaofm_block_addr(classstor,classaddr);
			read(FM,29);
			a[0]=wr_data[0];
			for(l=0;l<3;l++)
				{
					a[1+l]=wr_data[4+l];// ss mm hh
					a[4+l]=wr_data[1+l];// dd mm yy
					a[7+l]=wr_data[23+3+l];// ss mm hh
					a[10+l]=wr_data[23+l];// dd mm yy
				}
			addr=0;
			l1=6;
			if(codel==0xf)
				{//addr=0;
				  l1=13;
				}
			else
				if(codel==0)
					{//addr=0;
				         l1=1;
					}
				else
					if(codel==1)
						{addr=1;
					        // l1=6;
						}
					else
						{addr=7;
					        // l1=6;
						}		
			break;
	case class_lostv_historyblock:// kwh
			if(classaddr==0)// zui jing yi ci
				{
					if(classstor==TYPE_FM_LOSTV_RECORD)
						data_addr.addri=R_LOSTV_CURRENT_KWH_F;
					else
						data_addr.addri=R_CUTV_CURRENT_KWH_F;
					read(RRAM,16);
				}
			else// zui jing 2------5ci
				{
					data_addr.addri=current_twobiaofm_block_addr(classstor,classaddr)+7;
					read(FM,16);
				}
			for(l=0;l<16;l++)
				{
					a[l]=wr_data[l];
					a[l+16]=0;
				}			
			if(codel==0xf)
				{addr=0;
				  l1=32;			
				}
			else
				{addr=4*codel;
				  l1=4;
				}		       
			break;
	case class_overkw_currentnum:
			for(l=0;l<6;l++)
				a[l]=RAM[classaddr+l];
			if(codel==0xf)
				{addr=0;
			         l1=6;
				}
			else
				if(codel==0)
					{addr=0;
					  l1=3;
					}
				else
					{addr=3;
				         l1=3;
					}
			break;
	   case class_overkw_historyblock:
	   	     data_addr.addri=current_twobiaofm_block_addr(classstor,classaddr);
		     read(FM,32);
		     for(l=0;l<3;l++)
		     	{
		     		a[l]=wr_data[3+l];// ss mm hh
				a[l+3]=wr_data[l];// dd mm yy
				a[l+6]=wr_data[9+l];// ss mm hh
				a[l+9]=wr_data[6+l];// dd mm yy
		     	}
			
		      if(classaddr==0)// zui jing yi ci
		      		{
		      			if(classstor==TYPE_FM_KWOVER_RECORD)
						data_addr.addri=R_OVERKW_CURRENT_KWH_F;
					else
						{
						if(classstor==TYPE_FM_A_KWOVER_RECORD)
							data_addr.addri=R_OVERKW_CURRENT_KWH_A_F;
						else
							{
								if(classstor==TYPE_FM_B_KWOVER_RECORD)
									data_addr.addri=R_OVERKW_CURRENT_KWH_B_F;
								else
									data_addr.addri=R_OVERKW_CURRENT_KWH_C_F;
							}
						}
					for(l=0;l<16;l++)
			  			{
			  				a[12+l]=RAM[data_addr.addri+l];
			         			a[12+16+l]=0;
		      	       			}
					for(l=0;l<3;l++)
			  			a[44+l]=RAM[data_addr.addri+17+l];							
		      		}
			  else// zui jing 2-----5 ci
			  	{
		      			for(l=0;l<16;l++)
			  			{
			  				a[12+l]=wr_data[12+l];
			         			a[12+16+l]=0;
		      	       		}
					for(l=0;l<3;l++)
			  			a[44+l]=wr_data[28+l+1];
			  	}
		      if(codel==0xf)
				{addr=0;
			         l1=47;
				}
			else
				{
				  addr=table_classoverkw_historyblock[codel].addr;
				  l1=table_classoverkw_historyblock[codel].len;
				}
			// add by zhanglong ---->start
			if ((5<codel) && (codel<0x0a))
				value=0;
			// add by zhanglong ---->end
			break;
          case class_powerdownup_block://------------------->

		  	for(l=0;l<3;l++)
				{a[l]=RAM[R_POWERDOWN_NUM+l];
			         a[l+3]=RAM[R_BATTERY_WORKTIME+l];
		  		}
			for(l1=0;l1<10;l1++)
				{
		  	          data_addr.addri=current_twobiaofm_block_addr(TYPE_FM_POWERDOWNUP_RECORD,l1);
		                 read(FM,12);
			          for(l=0;l<3;l++)
			          	{
			          	       l3=l+12*l1;
			          		a[6+l3]=wr_data[3+l];// ss mm hh
						a[9+l3]=wr_data[l];// dd mm yy
						a[12+l3]=wr_data[9+l];// ss mm hh
						a[15+l3]=wr_data[6+l];// dd mm yy
			          	}
				}			
			if(codel==0xf)
				{addr=0;
			         l1=126;
				}
			else
				{
				  addr=table_classpowerdownup_block[codel].addr;
				  l1=table_classpowerdownup_block[codel].len;
				}			
			break;
	case class_currentnumtime_historyblock:// num + time +history record
		       for(l=0;l<6;l++)
			   	a[l]=RAM[classaddr+l];
			if(classaddr==R_ALLLOSTV_NUM)
				classstor=TYPE_FM_ALLLOSTV_RECORD;
			else
				if(classaddr==R_V_REVERSE_NUM)
					classstor=TYPE_FM_SEQERR_RECORD;
				else
					if(classaddr==R_BIAOGAI_NUM)
						classstor=TYPE_EP1_BIAOGAI_RECORD;
					else
						classstor=TYPE_EP1_DUANNIUGAI_RECORD;
			for(l1=0;l1<5;l1++)
				{
				  data_addr.addri=current_twobiaofm_block_addr(classstor,l1);
				  if(classstor<20)
				  	read(EP1,12);
				  else
				  	read(FM,12);
				  for(l=0;l<3;l++)
			          	{
			          		l3=l+12*l1;
			          		a[6+l3]=wr_data[3+l];// ss mm hh
						a[9+l3]=wr_data[l];// dd mm yy
						a[12+l3]=wr_data[9+l];// ss mm hh
						a[15+l3]=wr_data[6+l];// dd mm yy
			          	}				  
				}
			if(codel==0xf)
				{addr=0;
			         l1=66;
				}
			else
				{
				  addr=table_classpowerdownup_block[codel].addr;
				  l1=table_classpowerdownup_block[codel].len;
				}			
			break;
   case class_kwreverse_historyblock:
				  data_addr.addri=current_twobiaofm_block_addr(classstor,classaddr);				  
				  	read(FM,16);
				  for(l=0;l<3;l++)
			          	{
			          		a[l]=wr_data[3+l];// ss mm hh
						a[3+l]=wr_data[l];// dd mm yy
						a[6+l]=wr_data[9+l];// ss mm hh
						a[9+l]=wr_data[6+l];// dd mm yy
			          	}
				  if(classaddr==0)
				  	{
				  		if(classstor==TYPE_FM_KWREVERSE_RECORD)
							data_addr.addri=R_KW_REVERSE_KWH;
						else
							if(classstor==TYPE_FM_AKWREVERSE_RECORD)
								data_addr.addri=R_A_KW_REVERSE_KWH;
							else
								if(classstor==TYPE_FM_BKWREVERSE_RECORD)
									data_addr.addri=R_B_KW_REVERSE_KWH;
								else
									data_addr.addri=R_C_KW_REVERSE_KWH;
						 for(l=0;l<4;l++)
				  			a[12+l]=RAM[data_addr.addri+l];
				  	}
				  else
				  	{
				  		for(l=0;l<4;l++)
				  			a[12+l]=wr_data[12+l];
				  	}
			        if(codel==0xf)
				       {addr=0;
			                l1=16;
				       }
				else
					if(codel==0)
						{addr=0;
					         l1=6;
						}
					else
						if(codel==1)
							{addr=6;
						         l1=6;
							}
						else
							{addr=12;
						         l1=4;
							}			
			break;
	case class_abckwreverse_num:
			for(l=0;l<3;l++)
				{a[l]=RAM[classaddr+l];
			         a[3+l]=0;
				}
			if(codel==0xf)
				{addr=0;
			         l1=6;
				}
			else
				if(codel==0)
					{addr=0;
				         l1=3;
					}
				else
					{addr=3;
				         l1=3;
					}		
			break;
	case class_biancheng_history:
		       data_addr.addri=current_twobiaofm_block_addr(TYPE_FM_PROGRAM_RECORD,classaddr);
			read(FM,12);
			for(l=0;l<3;l++)
				{
					a[l]=wr_data[3+l];// ss mm hh
					a[l+3]=wr_data[l];// dd mm yy
				}
			for(l=0;l<6;l++)
				a[6+l]=wr_data[6+l];
			if(codel==0xf)
				{addr=0;
			         l1=12;
				}
			else
				if(codel==0)
					{addr=0;
				         l1=6;
					}
				else
					if(codel==1)
						{addr=6;
					         l1=4;
						}
					else
						{addr=10;
					         l1=2;
						}			
			break;
	case class_kwhkvarh_historyprog:
			data_addr.addri=current_twobiaofm_block_addr(classstor,classaddr);
			read(EP1,90);
			for(l=0;l<3;l++)
				{
					a[l]=wr_data[3+l];// ss mm hh
					a[l+3]=wr_data[l];// dd mm yy
				}
			for(l=0;l<84;l++)
				a[6+l]=wr_data[6+l];
			if(codel==0xf)
				{addr=0;
			         l1=90;
				}
			else
				{
				  addr=table_classkwhkvarh_historyprog[codel].addr;
				  l1=table_classkwhkvarh_historyprog[codel].len;
				}		
			break;
	case class_priceprog_recorde:
			data_addr.addri=current_twobiaofm_block_addr(classstor,classaddr);
			read(EP1,83);
			for(l=0;l<3;l++)
				{
					a[l]=wr_dat

⌨️ 快捷键说明

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