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

📄 zhejiang.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 5 页
字号:
 	*(rbuffer+2)=1;
 	*(rbuffer+3)=0x68;
 	*(rbuffer+4)=RAM[R_BIAOADDR_L];
 	*(rbuffer+5)=*(rbuffer+4);
 	*(rbuffer+6)=0xd;
  	send_from_tongdao(7);
}


void zhejiang_send_read(num)
unsigned char num;
{unsigned char l,cs;
	*rbuffer=0x68;
 	*(rbuffer+1)=3+num;
 	*(rbuffer+2)=3+num;
 	*(rbuffer+3)=0x68;
 	// cs
 	cs=0;
 	for(l=0;l<num+3;l++)
 		cs=cs+*(rbuffer+4+l);
 	*(rbuffer+7+num)=cs;
 	*(rbuffer+8+num)=0xd;
  	send_from_tongdao(9+num);// changed ----comm_i_mode
}


// 2003-6-4------>add  move and add command
void zhejiang_movedateblock(fromaddr,toaddr,num,commandlow,commandhigh)
unsigned char *fromaddr,*toaddr,num,commandlow,commandhigh;
{unsigned char l;
	*toaddr=commandlow;
	*(toaddr+1)=commandhigh;
	for(l=0;l<num;l++)
  		*(toaddr+2+l)=*(fromaddr+l);
}
 

// read ---->p  len>=
void zhejiang_read()

{unsigned char l,l1,num,addr,had,l3,a[220];
 unsigned char *fp;
 unsigned int code;
 code=*(rbuffer+5)+256*(*(rbuffer+6));
 num=gread_cuofengyuyue(code);// 2003-7-5 add
 if(num!=0)// yes
     	{
     		for(l=0;l<num;l++)
  	    		*(rbuffer+7+l)=wr_data[l];
       	zhejiang_send_read(num);
   	}    
else// no
   	{ 
   		switch(*(rbuffer+6))
    			{
    				case 1:
      				case 2:
  	             				l1=0;
                    				for(l=0;l<37;l++)
            	          				if(*(rbuffer+5)==table_zhejiang_read_kkwh_kw[l][0])
            	 	        				{
            	 	        					num=table_zhejiang_read_kkwh_kw[l][2];
                               					addr=table_zhejiang_read_kkwh_kw[l][1];
                                					l1=1;
                                					l=37;
								}
                   				if(l1==0) 
							zhejiang_send_readerr();
                   				else 
                        				{// zhi shu ju
            	           					if(*(rbuffer+6)==1) 
									ram_kwh_kva_set_ed(&a[0]);
            	           					else 
									eeprom_kwh_kva_set_ed(&a[0]);
            	           					if(num!=0)
            	  	       					{
            	  	       						if(*(rbuffer+5)==0)
            	  	           							{
                                 								l1=*(rbuffer+6);
            	  	            								zhejiang_movedateblock(&a[0],rbuffer+5,21,0x10,l1);
            	  	            								zhejiang_movedateblock(&a[21],rbuffer+5+23,21,0x20,l1);
            	  	            								zhejiang_movedateblock(&a[42],rbuffer+5+46,21,0x30,l1);
            	  	            								zhejiang_movedateblock(&a[63],rbuffer+5+69,21,0x40,l1);
            	  	            								zhejiang_movedateblock(&a[84],rbuffer+5+92,36,0x50,l1);
            	  	            								zhejiang_movedateblock(&a[84+36],rbuffer+5+92+38,36,0x60,l1);
            	  	            								zhejiang_send_read(166);           	  	 
            	  	  	    							}
            	  	       						else
            	  	  	     							{
            	                     							for(l=0;l<num;l++)
            	  	                 								*(rbuffer+7+l)=a[addr+l];
            	                     							zhejiang_send_read(num);
            	  	  	      							}
            	  	       					}
            	          				}  	      	   
           					 break;
				case 3:
	   					l1=0;
	    					for(l=0;l<10;l++)
	    						{
	    	 						if(progfunction_biaotype==type_3_3) 
	    	              					l3=table_zhejiang_read_300_33[l][0];
	    	 						else 	
	    	 	       					l3=table_zhejiang_read_300_34[l][0];
	    	
	    	 						if(*(rbuffer+5)==l3)
	    	 							{
	    	         							if(progfunction_biaotype==type_3_3) 
	    	         								{
	    	         									num=table_zhejiang_read_300_33[l][2];
	    	                								addr=table_zhejiang_read_300_33[l][1];
	    	               	 							had=table_zhejiang_read_300_33[l][3];
											}
	    	          							else
	    	          	 							{
	    	          	 								num=table_zhejiang_read_300_34[l][2];
	    	                								addr=table_zhejiang_read_300_34[l][1];
	    	                								had=table_zhejiang_read_300_34[l][3];
											}   	         
	    	          							l=10;
	    	          							l1=1;
	    	 							}
	    						}
           					if(l1==0) 
							zhejiang_send_readerr();
           					else 
           	   					if(had!=0) 
								zhejiang_send_readkong();
                 					else 
                 						{// zhi shu ju
                 	  						if(progfunction_biaotype==type_3_3) 
                 	           						ram_33_lostv_to_point_with_ed(&a[0]);
                 	  						else 
                 	           						ram_34_lostv_to_point_with_ed(&a[0]);                 	 
                 	  						if(num!=0)
            	  	     							{
            	  	     								for(l=0;l<num;l++)
            	  	          								*(rbuffer+7+l)=a[addr+l];
            	              							zhejiang_send_read(num);
            	  	     							}
                 						}
           					break;
				case 4:
	    					l1=0;
	   	 				for(l=0;l<12;l++)
	    						{
	    	  						if(progfunction_biaotype==type_3_3) 
	    	              					l3=table_zhejiang_read_400_33[l][0];
	    	 						else 	
	    	 	       					l3=table_zhejiang_read_400_34[l][0];	    	 
	    	 						if(*(rbuffer+5)==l3)
	    	 							{
	    	        							if(progfunction_biaotype==type_3_3) 
	    	         								{
	    	         									num=table_zhejiang_read_400_33[l][2];
	    	                								addr=table_zhejiang_read_400_33[l][1];
	    	                								had=table_zhejiang_read_400_33[l][3];
											}
	    	          							else
	    	          	 							{
	    	          	 								num=table_zhejiang_read_400_34[l][2];
	    	                								addr=table_zhejiang_read_400_34[l][1];
	    	                								had=table_zhejiang_read_400_34[l][3];
											}	    	          
	    	          							l=12;
	    	          							l1=1;
	    	 							}
	    						}
           					if(l1==0) 
							zhejiang_send_readerr();
           					else 
           	   					if(had!=0) 
								zhejiang_send_readkong();
                 					else 
                 						{// zhi shu ju
                 	 						if(progfunction_biaotype==type_3_3) 
                 	           						ram_400_set_ed_33(&a[0]);
                 	  						else 
                 	            						ram_400_set_ed_34(&a[0]);                 	  
                 	  						if(num!=0)
            	  	     							{
            	  	     								for(l=0;l<num;l++)
            	  	          								*(rbuffer+7+l)=a[addr+l];
            	              							zhejiang_send_read(num);
            	  	     							}
                 						}
           					break;
				case 5:
          // add 2003--7-5
          					fp=rbuffer+7;
           					switch(*(rbuffer+5))
           						{
           							case 0xa1: 
											*fp=RAM[R_KVARHMODE_F];// wu gong zu he
                                  							zhejiang_send_read(1);
                                  							break;
                						case 0xb1: 
											*fp=RAM[R_XULIANGZHOUQI];// 
                                   						zhejiang_send_read(1);
                                  							break;
               		 				case 0xb2: 
											*fp=RAM[R_HUACHA];// 
                                   						zhejiang_send_read(1);
                                  							break;
                						case 0xb3: 
											*fp=RAM[R_CURRENT_KW];// 
                                 							*(fp+1)=RAM[R_CURRENT_KW+1];// 
                                 							*(fp+2)=RAM[R_CURRENT_KW+2];// 
                                   						zhejiang_send_read(3);
                                  							break;                 
                						case 0xc1:
                						case 0xc2:
                						case 0xc3:
                						case 0xc4: 
                						case 0xc5:
             						 //  case 0xc6: 
                	            							*fp=RAM[*(rbuffer+5)-0xc1+R_PLUSEMODE];// mo chong shu cuo
                	            							 if(*(rbuffer+5)==0xc5) 
												*fp=0;//add
                	             							 zhejiang_send_read(1);
                                  							 break;
                						case 0xd1: 
											*fp=STATUS_PRICE;
                                 							if(*fp==0) 
												*fp=4;// 1,2,3,4 
                                 							zhejiang_send_read(1);
                                  							break;
                						case 0xd2:
                	            							data_addr.addri=FM_CURRENT_TYPE_PRICE;
                	           	 						read(FM,1);
                	            							*fp=0x1&wr_data[0];
                	            							if(status_cuofeng_price==1) 
												*fp=*fp|0x2;// cuo feng
                	            							if(RCURRENT_TAOSHIDUAN!=0) 
												*fp=*fp|0x4;  // 1 ,2tao
                	            							data_addr.addri=FM_CURRENT_CUOFENGSHIDUAN;
                	            							read(FM,2);
                	            							if((0x1&wr_data[0])==1)  
												*fp=*fp|0x10;// cuo feng shi duan
                	            							if((0x1&wr_data[1])==1)  
												*fp=*fp|0x40;// ding zhi
                	            							if(status_cuofeng_price==1) 
                                       		 					if(arm_cuofeng==1) 
                                        	  							*fp=*fp|0x80;
                	             							zhejiang_send_read(1);
                                  							break; 
	         						default:
	                    								l1=0;
                           								for(l=0;l<16;l++)
            	                 								if(*(rbuffer+5)==table_zhejiang_read_500[l][0])
            	                									{
            	                										num=table_zhejiang_read_500[l][2];
                                     									addr=table_zhejiang_read_500[l][1];
                                     									l1=1;
                                     									l=16;
													}
                           								 if(l1==0) 
												 zhejiang_send_readerr();
                           								 else 
                            								{// zhi shu ju
                             	   								ram_500_set_ed(&a[0]);            	 
            	                         								if(num!=0)
            	  	                      								{
                                              									if(*(rbuffer+5)==0)
                      	                      									{
                      	                      										zhejiang_movedateblock(&a[0],rbuffer+5,19,0x10,05);
                                                    										zhejiang_movedateblock(&a[19],rbuffer+5+19+2,43,0x20,05);
                                                     										zhejiang_send_read(64);
                                                    									}
                                               									else
                      	                          									{
            	  	                                   									for(l=0;l<num;l++)
            	  	                                       										*(rbuffer+7+l)=a[addr+l];
            	                                          									zhejiang_send_read(num);
                      	                           									}
            	  	                              							}
                                         								}
                                    							break;
           	          						 }
            							break;
				case 6:
	  		 			l1=0;
            					for(l=0;l<13;l++)
            	 					if(*(rbuffer+5)==table_zhejiang_read_600[l][0])
            	 						{
            	 							num=table_zhejiang_read_600[l][2];
                       						addr=table_zhejiang_read_600[l][1];
                       						l1=1;
                       						l=13;
								}
            					if(l1==0) 
							zhejiang_send_readerr();
            					else 
            						{// zhi shu ju
            	  						ram_600_set_ed(&a[0]);
            	  						if(num!=0)

⌨️ 快捷键说明

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