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

📄 hualong.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 4 页
字号:

//unsigned char bcdaddbuffer[10];
void init_hualong()
{
	clr_mima_enable();
	rtime_zhangjimima=0;
	rtime_485_5second=0;// comm1 
	rtime_485_5second_0=0;// comm 0
	rtime_remote_5second=0;
	rtime_485_zhangjimima=0;
	rtime_485_zhangjimima_0=0;
}

unsigned char hualong_canwrite_kwh()
{
	if((progfunction_security==yes)&&(hualong_mima_quanxiang!=0)) 
		return 0;//l0
	else
     		{
       		if((progfunction_security!=yes)||(RSTATUS_RUN==TEST)) 
				return 1;
       		else 
				return 0;
      		}
}
unsigned char hualong_canwrite_price()
{
	if((progfunction_security==yes)&&((RSTATUS_RUN==LOCK_90DAY)||(RSTATUS_RUN==LOCK_DEED))) 
		return 0;
	else 
		return 1;
}
unsigned char hualong_peizhi_use()
{
	if((yes==progfunction_security)&&(hualong_mima_quanxiang!=0))
       		return 0;
   	else 
		return 1;
}


void hualong_send(a)
// send data  num=a
// addr--------->rbuffer
unsigned char a;
{unsigned char l,l1;
// ADDD----------------->START
if(tongdao==comm_remote) 
	remote_status=remote_phase_err;
else
	if(tongdao==comm485_1) 
		RSTATUS_485_1=RERR;
	else
		RSTATUS_485_0=RERR;
// ADD---------------->END	
*(rbuffer+5)=a;
for(l=0;l<a;l++)
	*(rbuffer+l+6)=wr_data[l];
l1=0;
for(l=0;l<3+a;l++)
	l1=l1+(*(rbuffer+3+l));
*(rbuffer+6+a)=l1;
*(rbuffer+7+a)=0xd;
send_from_tongdao(8+a);
// gen ju tong dao
}
void hualong_send_noack()
{
// ADD 2003-5-9
if((RSTATUS_RUN==LOCK_DEED)&&(progfunction_security==yes))
 	{    
      		if(tongdao==comm485_1) 
      	      		RSTATUS_485_1=RERR; 
      		else
             		{
             			if(tongdao==comm485_0) 
      	               		RSTATUS_485_0=RERR;       
              			else 
              				remote_status=remote_phase_err; 
      			}
       }
else
  	{      
    		*(rbuffer+1)=0xbc;
    		*(rbuffer+2)=0xd;
    		send_from_tongdao(3);   
	}
}

void hualong_send_ack()
{
	*(rbuffer+1)=0xad;
	*(rbuffer+2)=0xd;
 	send_from_tongdao(3);
}
// must cut
// add 00 f0 ming ling
// xiang zhi  addr len
void read_hualong_f0(rlen)
unsigned char *rlen;
{unsigned char a1,a2;
	if(*rlen>=13)
		{
			if((*(rbuffer+3)==0)&&(*(rbuffer+5)==5))
   				{
   					a2=0;//cs
    					for(a1=3;a1<11;a1++)
	   					a2=a2+*(rbuffer+a1);
    					if((a2==*(rbuffer+11))&&(*(rbuffer+12)==0xd))
    	  					{
    	  						for(a1=0;a1<3;a1++)// set addr
    	      							data_addr.addrc[a1]=*(rbuffer+7+a1);          
         			 			a1=1;
          						if(*(rbuffer+6)==1)//fm
          							{
          								a1=0;
               							if((FM_MIMA1>=(data_addr.addri+(*(rbuffer+10))))||(data_addr.addri>=FM_QUANXIAN_C0))
               								a1=1;
          							}
          						if(a1==1)
            							if((*(rbuffer+10)<81)&&(*(rbuffer+10)!=0))          	
               							if(1==read(*(rbuffer+6),*(rbuffer+10)))
                  	 							hualong_send(*(rbuffer+10));
          						}
     						else 
							hualong_send_noack();
   					}
				else 
					hualong_send_noack();
				comm_do_endcheck();// >=13   had do
		}
}       
// must cut
/*
const unsigned char table_allwrite_control[][]=
{// low command,high command,----address
 // datatype--0--hex,1---bcd
 // stor type 10--ram,fm_eeprom,fm_eeprom1,  2--eeprom,01 fm_eeprom
 // code low code ,high---0x4
// low command,high command, max len,datatype,stor type,code
 
   	{0xee,0x2,0x3,0,10,0},//sheng guang baojing 2  0
 	{0xeb,0x2,3,0,10,1},//sheng guang baojing 1     1
 	
 	{0xd1,0x3,90,1,10,3},//jie jia ri                      2
 	
 	{0x3d,0x4,5,1,10,5},//shi ya tiao jian              3
 	
 	{0x46,0x4,0x8,1,10,0x8},//zon fen gong lv gu zai 4
 	{0x4f,0x4,2,1,10,0x9},//huan xing mode boud     5
 	{0x69,0x4,1,1,10,0x10},//prog time                  6
 	{0x6a,0x4,2,1,10,0x11},//lost v lost i --timevalue7
 	
 	{0xce,0x1d,2,1,2,0x13},//auto display set num    8
 	
 	{0xD0,0x1D,32,1,2,0x13},//auto displayset 1--8   9
 	{0xF0,0x1D,32,1,2,0x13},//auto diaplay set 9--16  10
 	{0x10,0x1E,32,1,2,0x13},// auto display set 17--24 11
 	{0x30,0x1E,32,1,2,0x13},//auto display set 25---32  12

       {0x50,0x1E,32,1,2,0x13},//auto displayset 33--40    13
 	{0x70,0x1E,32,1,2,0x13},//auto diaplay set 41--48   14
 	{0x90,0x1E,32,1,2,0x13},// auto display set 49--56  15
 	{0xB0,0x1E,32,1,2,0x13},//auto display set 57---64  16


       {0xd0,0x1e,32,1,2,0x13},//auto displayset 65-72     17
 	{0xf0,0x1e,32,1,2,0x13},//auto diaplay set 73--80  18
 	{0x10,0x1f,32,1,2,0x13},// auto display set 81--88  19
 	{0x30,0x1f,32,1,2,0x13},//auto display set 89---96  20
 	 
       {0x50,0x1f,32,1,2,0x13},//auto displayset 97--104   21
  	{0x70,0x1f,32,1,2,0x13},//auto diaplay set 105--112 22
 	{0x90,0x1f,32,1,2,0x13},// auto display set 113--120 23
 	{0xb0,0x1f,32,1,2,0x13},//auto display set 121---128 24


       {0xbe,0x1b,2,1,2,0x14},//key display set num           25
       {0xc0,0x1b,32,1,2,0x14},//key displayset 1--8          26
 	{0xe0,0x1b,32,1,2,0x14},//key diaplay set 9--16       27
 	{0x00,0x1c,32,1,2,0x14},// key display set 17--24    28
 	{0x20,0x1c,32,1,2,0x14},//key display set 25---32   29

       {0x40,0x1c,32,1,2,0x14},//key displayset 33--40     30
 	{0x60,0x1c,32,1,2,0x14},//key diaplay set 41--48    31
 	{0x80,0x1c,32,1,2,0x14},// key display set 49--56   32
 	{0xa0,0x1c,32,1,2,0x14},//key display set 57---64  33


       {0xc0,0x1c,32,1,2,0x14},//key displayset 65-72     34
 	{0xe0,0x1c,32,1,2,0x14},//key diaplay set 73--80  35
 	{0x00,0x1d,32,1,2,0x14},// key display set 81--88 36
 	{0x20,0x1d,32,1,2,0x14},//key display set 89---96 37

       {0x40,0x1d,32,1,2,0x14},//key displayset 97--104  38
 	{0x60,0x1d,32,1,2,0x14},//key diaplay set 105--112  39
 	{0x80,0x1d,32,1,2,0x14},// key display set 113--120 40
 	{0xa0,0x1d,32,1,2,0x14},//key display set 121---128 41
 	
 	
 	{0x35,0x04,0x2,1,10,0x16} //you gong diang liang ji liang fan shi 42
 	
};
 	
*/

// old	
/*
 write_hualong_f0(rlen)
 unsigned char *rlen;	
{unsigned char a1,a2;
	if(*rlen>=(8+*(rbuffer+5)))
		if(*(rbuffer+3)==0)
			if(*(rbuffer+5)==(5+*(rbuffer+10)))
   				{
   					a2=0;
     					for(a1=3;a1<6+*(rbuffer+5);a1++)
	    					a2=a2+*(rbuffer+a1);
     					if(a2==*(rbuffer+6+*(rbuffer+5)))
     						{
        						if(*(rbuffer+7+*(rbuffer+5))==0xd)
        							{
        								if((*(rbuffer+10)<33)&&(*(rbuffer+10)!=0))
	           								{
	           									data_addr.addrc[0]=*(rbuffer+7);
                    									data_addr.addrc[1]=*(rbuffer+8);
                     								data_addr.addrc[2]=*(rbuffer+9);
                    									for(a1=11;a1<11+*(rbuffer+10);a1++)
        	         			 						wr_data[a1-11]=*(rbuffer+a1);
                   										 //add---------------start
                         								write(*(rbuffer+6),*(rbuffer+10));  
                   									hualong_send_ack();
        	     								}
                							else 
										hualong_send_noack();
           					}
        				else 
						hualong_send_noack();
    				}
     			else 
				hualong_send_noack();
		}
}
    */ 
unsigned char zhangjizhuangtai()
{
	if(tongdao==comm485_1)
     		{
     			if(rstatus_485_mima_youxiao==zhangji_mima_youxiao_inhao) 
				return 1;
      			else 
				return 0;
     		}
  	else
  	  	if(tongdao==comm485_0)
             		{
             			if(rstatus_485_mima_youxiao_0==zhangji_mima_youxiao_inhao) 
					return 1;
               			else 
					return 0;
	       		}
         	else
  	            	{
  	            		if(rstatus_zhangji_mima_youxiao==zhangji_mima_youxiao_inhao) 
					return 1;
                      		else 
					return 0;
		     	}
}
// mima deng lu
unsigned char hualongdenglu()
{
	if(tongdao==comm485_1)
     		{
     			if(rstatus_485_mima_youxiao!=zhangji_mima_youxiao_start) 
				return 1;
      			else 
				return 0;
		}
  	else
  		  if(tongdao==comm485_0)
             		{
             			if(rstatus_485_mima_youxiao_0!=zhangji_mima_youxiao_start) 
					return 1;
               		else 
					return 0;
			}
               else
  	            	{
  	            		if(rstatus_zhangji_mima_youxiao!=zhangji_mima_youxiao_start) 
					return 1;
                      		else 
					return 0;
			}
}
// yu yue  status  cant write 1   changed  must------------------------->
/*
void write_hualong_f0(rlen)
 unsigned char *rlen;	
{unsigned char a1,a2,l,value,m,code,code1;
  unsigned int addr;
  unsigned long g3;
  value=0;
if(*rlen>=(8+*(rbuffer+5)))
	{
 		if(*(rbuffer+3)==0)
   			if(*(rbuffer+5)==(5+*(rbuffer+10)))
   				{
   					a2=0;
     					for(a1=3;a1<6+*(rbuffer+5);a1++)
	    					a2=a2+*(rbuffer+a1);
     					if(a2==*(rbuffer+6+*(rbuffer+5)))
     						{// cs ok      	
        						if(*(rbuffer+7+*(rbuffer+5))==0xd)
        							{
        								if((*(rbuffer+10)<97)&&(*(rbuffer+10)!=0))
	           								{
	           									value=0;
                    									m=0;
                    									for(l=0;l<43;l++)
                    	  								if(( table_allwrite_control[m][0]==(*(rbuffer+7)))&&(table_allwrite_control[m][1]==(*(rbuffer+8))))
                    	  									{
                    	  										value=1;
                    	         									l=43;
                    	         								}
                    	  								else 
                    	  									m=m+1;
                    	 			 					if(value==1)
                    	  									{                   
                    	         									if(*(rbuffer+10)>table_allwrite_control[m][2]) 
                    	         										value=0;   // len
                    	         									if(table_allwrite_control[m][3]==1)// bcd
                    	             										if(*(rbuffer+10)!=testbcdnum(rbuffer+11,*(rbuffer+10)))
                    	       	  					 					value=0;//
                             											 // an quan ren zhen
                              									code=table_allwrite_control[m][5];
                             									if(code==3) // jie jia ri
                              										{
                              											if(0==hualong_canwrite_price()) 
                              												value=0;
                                     										if(0==zhangjizhuangtai()) 
                                     											value=0;
                                    									}
                              									else
                              										if(code==0x16)
                              											{
                              												if(0==hualong_canwrite_kwh()) 

⌨️ 快捷键说明

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