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

📄 yc.c

📁 msp430为核心
💻 C
📖 第 1 页 / 共 5 页
字号:
	                     if(ps_leng==0)udl=yxname_udl+0x06;
		                   else if(ps_leng==4)udl=yxname_udl+0x02+0x06;
		                   else if(ps_leng==8)udl=yxname_udl+0x04+0x06;
		                   else if(ps_leng==12)udl=yxname_udl+0x06+0x06;
		                   else if(ps_leng==16)udl=yxname_udl+0x08+0x06;
	                     ascll_num=hex_asc(udl);
		                   	
		                   *pt++=ascll_num>>8; 
		                   *pt++=ascll_num&0x00ff;     /*短信的全部长度的16进制 一个汉字,数字,标点加2 */			
		                   for(n=0;n<yxname_len;n++) *pt++=temp_name[n];
		                   for(n=0;n<4;n++) *pt++=enter[n];
		                   
		                   if (m==0x8000 )
		                     for(n=0;n<4;n++) *pt++=he[n];        
		                   else  
		                     for(n=0;n<4;n++) *pt++=fen[n];
		                   
		                   for(n=0;n<4;n++) *pt++=enter[n];
		                   if(ps_leng!=0)
	                        for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
		                   *pt=26;   //^z 短信结束符
		                   len=15+ps_leng+yxname_len;//发送缓冲区的长度
	                     }     
				        }
				    else if(k==5)  
			        	{//遥信6
				      	    for(i=0;i<4;i++)
									  	{if((yx_name[i*2+24]==0x00)||(yx_name[i*2+24]==0xff))
									  	 	  {temp_name[i*4+1]='\0';
									  	 	  	tran_len=i*2;
									  	 	  	break;
									  	 	  	}
									  	 else
									  	 	  {temp_name[16]='\0';
									  	 	  	tran_len=8;}	  
									  	}
				      	     for(i=0;i<tran_len;i++)
											{
											 ascll_num=hex_asc(yx_name[i+24]);
											 temp_name[i*2]=ascll_num>>8;
											 temp_name[i*2+1]=ascll_num&0x00ff;
											}
								  	 yxname_len=strlen(temp_name);
				      	     if(yxname_len==0)
				      	     	 {
						      	     if(ps_leng==0)udl=0x0a;
			                   else if(ps_leng==4)udl=0x0a+0x02;
			                   else if(ps_leng==8)udl=0x0a+0x04;
			                   else if(ps_leng==12)udl=0x0a+0x06;
			                   else if(ps_leng==16)udl=0x0a+0x08;
		                     ascll_num=hex_asc(udl);
			                   	
			                   *pt++=ascll_num>>8; 
			                   *pt++=ascll_num&0x00ff;     /*短信的全部长度的16进制 一个汉字,数字,标点加2 */			
			                   for(n=0;n<8;n++) *pt++=yaoxin[n];
			                   
			                   *pt++=48;//0的ascll码
								         *pt++=48;//0的ascll码
								         *pt++=51;//3的ascll码
								         *pt++=k+1+48;//遥信序号的ascll码

			                   if(m==0x8000 )
			                     for(n=0;n<4;n++) *pt++=he[n];        
			                   else  
			                     for(n=0;n<4;n++) *pt++=fen[n];
			                   for(n=0;n<4;n++) *pt++=enter[n];
		                     if(ps_leng!=0)
	                          for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
		                     *pt=26;   // ^z 短信结束符
			                   len=23+ps_leng; 
	                      }
	                   else
	                     {
	                     yxname_udl=yxname_len>>1;	
	                     if(ps_leng==0)udl=yxname_udl+0x06;
		                   else if(ps_leng==4)udl=yxname_udl+0x02+0x06;
		                   else if(ps_leng==8)udl=yxname_udl+0x04+0x06;
		                   else if(ps_leng==12)udl=yxname_udl+0x06+0x06;
		                   else if(ps_leng==16)udl=yxname_udl+0x08+0x06;
	                     ascll_num=hex_asc(udl);
		                   	
		                   *pt++=ascll_num>>8; 
		                   *pt++=ascll_num&0x00ff;     /*短信的全部长度的16进制 一个汉字,数字,标点加2 */			
		                   for(n=0;n<yxname_len;n++) *pt++=temp_name[n];
		                   for(n=0;n<4;n++) *pt++=enter[n];
		                   
		                   if (m==0x8000 )
		                     for(n=0;n<4;n++) *pt++=he[n];        
		                   else  
		                     for(n=0;n<4;n++) *pt++=fen[n];
		                   
		                   for(n=0;n<4;n++) *pt++=enter[n];
		                   if(ps_leng!=0)
	                        for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
		                   *pt=26;   //^z 短信结束符
		                   len=15+ps_leng+yxname_len;//发送缓冲区的长度
	                     }     
				        }
				    else
				    	 {//其余遥信
                 if(ps_leng==0)udl=0x0a;
                 else if(ps_leng==4)udl=0x0a+0x02;
                 else if(ps_leng==8)udl=0x0a+0x04;
                 else if(ps_leng==12)udl=0x0a+0x06;
                 else if(ps_leng==16)udl=0x0a+0x08;
                 ascll_num=hex_asc(udl);
                 	
                 *pt++=ascll_num>>8; 
                 *pt++=ascll_num&0x00ff;     /*短信的全部长度的16进制 一个汉字,数字,标点加2 */			
                 for(n=0;n<8;n++) *pt++=yaoxin[n];
                 
                 *pt++=48;//0的ascll码
				         *pt++=48;//0的ascll码
				         *pt++=51;//3的ascll码
				         *pt++=k+1+48;//遥信序号的ascll码

                 if(m==0x8000 )
                   for(n=0;n<4;n++) *pt++=he[n];        
                 else  
                   for(n=0;n<4;n++) *pt++=fen[n];
                 for(n=0;n<4;n++) *pt++=enter[n];
                 if(ps_leng!=0)
                    for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
                 *pt=26;   // ^z 短信结束符
                 len=23+ps_leng; 
				    	 }            
	       
	      } 
     else if(sms_type==SMS_ALL_DAT)/* 频率:xx.xxHz;电压:xxx.xV;电流:xxx.xA;压力:x.xxMPa */ 
       {           	  
		 	   pt=&com1_tx_buf[30];
		 	   if(ps_leng==0)udl=0x5e;
		     else if(ps_leng==4)udl=0x5e+0x02;
		     else if(ps_leng==8)udl=0x5e+0x04;
		     else if(ps_leng==12)udl=0x5e+0x06;
		     else if(ps_leng==16)udl=0x5e+0x08;
		     ascll_num=hex_asc(udl);
		     	
		     *pt++=ascll_num>>8; 
		     *pt++=ascll_num&0x00ff;    // 短信的全部长度的16进制 一个汉字,数字,标点加2 			
		
		 	   for(n=0;n<8;n++) *pt++=pinlv[n];
		     for(n=0;n<4;n++) *pt++=maohao[n];
		     value=bpq_f;	
		     for(n=0;n<4;n++) *pt++=number[value/1000][n];
		     for(n=0;n<4;n++) *pt++=number[value%1000/100][n];
		     for(n=0;n<4;n++) *pt++=d_point[n]; 
		     for(n=0;n<4;n++) *pt++=number[value%1000%100/10][n];
		     for(n=0;n<4;n++) *pt++=number[value%1000%100%10][n];
		     for(n=0;n<8;n++) *pt++=Hz[n];
		     for(n=0;n<4;n++) *pt++=enter[n];
		     
		     for(n=0;n<8;n++) *pt++=dianya[n];
		       for(n=0;n<4;n++) *pt++=maohao[n];
		       value=bpq_v;	
		     for(n=0;n<4;n++) *pt++=number[value/1000][n];
		     for(n=0;n<4;n++) *pt++=number[value%1000/100][n];			      
		     for(n=0;n<4;n++) *pt++=number[value%1000%100/10][n];
		     for(n=0;n<4;n++) *pt++=d_point[n];
		     for(n=0;n<4;n++) *pt++=number[value%1000%100%10][n];
		     for(n=0;n<4;n++) *pt++=fu[n];
		     for(n=0;n<4;n++) *pt++=enter[n];
		     
		     for(n=0;n<8;n++) *pt++=dianliu[n];
		       for(n=0;n<4;n++) *pt++=maohao[n];
		       value=bpq_i;	
		     for(n=0;n<4;n++) *pt++=number[value/1000][n];
		     for(n=0;n<4;n++) *pt++=number[value%1000/100][n];			      
		     for(n=0;n<4;n++) *pt++=number[value%1000%100/10][n];
		     for(n=0;n<4;n++) *pt++=d_point[n];
		     for(n=0;n<4;n++) *pt++=number[value%1000%100%10][n];
		     for(n=0;n<4;n++) *pt++=A[n];
		     for(n=0;n<4;n++) *pt++=enter[n];
		     
		     for(n=0;n<8;n++) *pt++=yali[n];
		       for(n=0;n<4;n++) *pt++=maohao[n];
		       value=bpq_p;	
		     for(n=0;n<4;n++) *pt++=number[value/100][n];
		     for(n=0;n<4;n++) *pt++=d_point[n];
		     for(n=0;n<4;n++) *pt++=number[value%100/10][n];			      
		     for(n=0;n<4;n++) *pt++=number[value%100%10][n];
		     for(n=0;n<12;n++) *pt++=MPa[n];
		     for(n=0;n<4;n++) *pt++=enter[n];
		     for(n=0;n<16;n++) *pt++=xtzc[n];
		     for(n=0;n<4;n++) *pt++=enter[n];

		     if(ps_leng!=0)
	          for(n=0;n<ps_leng;n++)*pt++=ps_name[n];  
		     *pt=26;   /* ^z 短信结束符com_tx_buf[1][164]=26**/ 
		      len=184+3+4+ps_leng; //pt的长度
       }
     else if(sms_type==SMS_UI_FAULT)
       {
       	alarm_time++;
       	if (asp_rdp==0) rdp=30;
       	else rdp=asp_rdp-1;
       		if(asp_buf[rdp]!=0)
       			{
		         	if(asp_buf[rdp]==1)     /*压力过高报警*/
		         	  {
		         	   pt=&com1_tx_buf[30];
	           	   if(ps_leng==0)udl=0x0e;
                 else if(ps_leng==4)udl=0x0e+0x02;
                 else if(ps_leng==8)udl=0x0e+0x04;
                 else if(ps_leng==12)udl=0x0e+0x06;
                 else if(ps_leng==16)udl=0x0e+0x08;
                 ascll_num=hex_asc(udl);
                 	
                 *pt++=ascll_num>>8; 
                 *pt++=ascll_num&0x00ff;     /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
	           	   
	           	   for(n=0;n<8;n++) *pt++=yali[n];
			         	 for(n=0;n<8;n++) *pt++=guogao[n];
			         	 for(n=0;n<8;n++) *pt++=baojing[n];
			         	 for(n=0;n<4;n++) *pt++=enter[n];
			         	 if(ps_leng!=0)
	                  for(n=0;n<ps_leng;n++)*pt++=ps_name[n];  
			         	 *pt=26;   /* ^z 短信结束符com_tx_buf[1][164]=26**/ 
		             len=24+3+4+ps_leng; 
		         	  }	         	  
		        else if(asp_buf[rdp]==2)     /*加速时过电流*/
		         	  {
			         	 pt=&com1_tx_buf[30];
	           	   if(ps_leng==0)udl=0x0e;
                 else if(ps_leng==4)udl=0x0e+0x02;
                 else if(ps_leng==8)udl=0x0e+0x04;
                 else if(ps_leng==12)udl=0x0e+0x06;
                 else if(ps_leng==16)udl=0x0e+0x08;
                 ascll_num=hex_asc(udl);
                 	
                 *pt++=ascll_num>>8; 
                 *pt++=ascll_num&0x00ff;     /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
	           	   
	           	   for(n=0;n<12;n++) *pt++=jasushi[n];
			         	 for(n=0;n<4;n++) *pt++=guo[n];
			         	 for(n=0;n<8;n++) *pt++=dianliu[n]; 	
			         	 for(n=0;n<4;n++) *pt++=enter[n];
			         	 if(ps_leng!=0)
	                  for(n=0;n<ps_leng;n++)*pt++=ps_name[n];  
			         	 *pt=26;   /* ^z 短信结束符com_tx_buf[1][164]=26**/ 
		             len=24+3+4+ps_leng; 
		         	  }	         	 
		        else if(asp_buf[rdp]==3)     /*散热片温度高*/
		         	  {
			         	 pt=&com1_tx_buf[30];
	           	   if(ps_leng==0)udl=0x0e;
                 else if(ps_leng==4)udl=0x0e+0x02;
                 else if(ps_leng==8)udl=0x0e+0x04;
                 else if(ps_leng==12)udl=0x0e+0x06;
                 else if(ps_leng==16)udl=0x0e+0x08;
                 ascll_num=hex_asc(udl);
                 	
                 *pt++=ascll_num>>8; 
                 *pt++=ascll_num&0x00ff;     /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
	           	   for(n=0;n<12;n++) *pt++=sanrepian[n];
			         	 for(n=0;n<12;n++) *pt++=wendugao[n];
			         	 for(n=0;n<4;n++) *pt++=enter[n];
			         	 if(ps_leng!=0)
	                  for(n=0;n<ps_leng;n++)*pt++=ps_name[n];  
			         	 *pt=26;   /* ^z 短信结束符com_tx_buf[1][164]=26**/ 
		             len=24+3+4+ps_leng;  	
		         	  }	         	  
		        else if(asp_buf[rdp]==4)     /*系统异常报警*/
		         	  {
			         	 pt=&com1_tx_buf[30];
	           	   if(ps_leng==0)udl=0x0e;
                 else if(ps_leng==4)udl=0x0e+0x02;
                 else if(ps_leng==8)udl=0x0e+0x04;
                 else if(ps_leng==12)udl=0x0e+0x06;
                 else if(ps_leng==16)udl=0x0e+0x08;
                 ascll_num=hex_asc(udl);
                 	
                 *pt++=ascll_num>>8; 
                 *pt++=ascll_num&0x00ff;     /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
	           	   for(n=0;n<16;n++) *pt++=xtyc[n]; 
		             for(n=0;n<8;n++) *pt++=baojing[n]; 	
		             for(n=0;n<4;n++) *pt++=enter[n];
		             if(ps_leng!=0)
	                  for(n=0;n<ps_leng;n++)*pt++=ps_name[n];  
		             *pt=26;   /* ^z 短信结束符com_tx_buf[1][164]=26**/ 
		             len=24+3+4+ps_leng;  	
		         	  } 
       	     }
       	  else return;   
       }
     else if(sms_type==SMS_POWER_OFF)
     	{
     	 pt=&com1_tx_buf[30];
     	 if(ps_leng==0)udl=0x20;
       else if(ps_leng==4)udl=0x20+0x02;
       else if(ps_leng==8)udl=0x20+0x04;
       else if(ps_leng==12)udl=0x20+0x06;
       else if(ps_leng==16)udl=0x20+0x08;
       ascll_num=hex_asc(udl);
       	
       *pt++=ascll_num>>8; 
       *pt++=ascll_num&0x00ff;     /*短信的全部长度的16进制一个汉字,数字,标点加2 */
     	  
       for(n=0;n<8;n++)*pt++=dianchi[n];
       for(n=0;n<8;n++)*pt++=dianliang[n];
       for(n=0;n<8;n++)*pt++=buzu[n];
       for(n=0;n<4;n++)*pt++=douhao[n];
       for(n=0;n<8;n++)*pt++=zhuangzhi[n];
       for(n=0;n<8;n++)*pt++=sanshi[n];
       for(n=0;n<4;n++)*pt++=seconde[n];
       for(n=0;n<8;n++)*pt++=guanji[n];
       for(n=0;n<4;n++)*pt++=tanhao[n];
       for(n=0;n<4;n++) *pt++=enter[n];
       if(ps_leng!=0)
	        for(n=0;n<ps_leng;n++)*pt++=ps_name[n];  
       *pt=26;   /* ^z 短信结束符com_tx_buf[1][164]=26**/ 
       len=60+3+4+ps_leng; 
     	} 
     else if(sms_type==SMS_SIMULAT_DAT)
     	{
     	  pt=&com1_tx_buf[30];
     	  		 	     
		 	   for(i=0;i<4;i++)
			  	{if((dc_name[i*2]==0x00)||(dc_name[i*2]==0xff))
			  	 	  {dc1_temp[i*4+1]='\0';
			  	 	  	tran_len=i*2;
			  	 	  	break;
			  	 	  	}
			  	 else
			  	 	  {dc1_temp[16]='\0';
			  	 	  	tran_len=8;}	  
			  	}		     
				for(i=0;i<tran_len;i++)
					{
					 ascll_num=hex_asc(dc_name[i]);
					 dc1_temp[i*2]=ascll_num>>8;
					 dc1_temp[i*2+1]=ascll_num&0x00ff;
					}
		  	 dc1_len=strlen(dc1_temp);		      
         
         if(dc1_len==0) 
         	  dc1_udllen=20;
         else 
         	  dc1_udllen=(dc1_len>>1)+14;
          
		 	   for(i=0;i<4;i++)
			  	{if((dc_name[i*2+8]==0x00)||(dc_name[i*2+8]==0xff))
			  	 	  {dc2_temp[i*4+1]='\0';
			  	 	  	tran_len=i*2;
			  	 	  	break;
			  	 	  	}
			  	 else
			  	 	  {dc2_temp[16]='\0';
			  	 	  	tran_len=8;}	  
			  	}		     
				for(i=0;i<tran_len;i++)
					{
					 ascll_num=hex_asc(dc_name[i+8]);
					 dc2_temp[i*2]=ascll_num>>8;
					 dc2_temp[i*2+1]=ascll_num&0x00ff;
					}
		  	 dc2_len=strlen(dc2_temp);
		 	   
		 	   if(dc2_len==0) 
         	  dc2_udllen=20;
         else 
         	  dc2_udllen=(dc2_len>>1)+14;
		 	   
		 	   if(ps_leng==0)udl=dc1_udllen+dc2_udllen;
		     else if(ps_leng==4)udl=dc1_udllen+dc2_udllen+0x02;
		     else if(ps_leng==8)udl=dc1_udllen+dc2_udllen+0x04;
		     else if(ps_leng==12)udl=dc1_udllen+dc2_udllen+0x06;
		     else if(ps_leng==16)udl=dc1_udllen+dc2_udllen+0x08;
		     ascll_num=hex_asc(udl);
		     	
		     *pt++=ascll_num>>8;
		     *pt++=ascll_num&0x00ff;    // 短信的全部长度的16进制 一个汉字,数字,标点加2
		 	  
     	   if(dc1_len==0)
        	 {
	        	for(n=0;n<8;n++) *pt++=simulate[n];
	        	*pt++=48;//0的ascll码
	          *pt++=48;//0的ascll码
	          *pt++=51;//0的ascll码
	          *pt++=49;//1的ascll码
	        	for(n=0;n<4;n++) *pt++=maohao[n];
	        	value_temp=yc.DC[0];
	        	value_temp=((value_temp*2.5)/4096)*4*mandu_dc1;
	        	dc1_value=value_temp*100;

	          for(n=0;n<4;n++) *pt++=number[dc1_value/1000][n];
			      for(n=0;n<4;n++) *pt++=number[dc1_value%1000/100][n];
			      for(n=0;n<4;n++) *pt++=d_point[n]; 
			      for(n=0;n<4;n++) *pt++=number[dc1_value%1000%100/10][n];
			      for(n=0;n<4;n++) *pt++=number[dc1_value%1000%100%10][n];

				    //for(n=0;n<4;n++) *pt++=fu[n];
				    for(n=0;n<4;n++) *pt++=enter[n];
				    
				    dc1_ptlen=40;
        	}
        else
        	{
        		for(n=0;n<dc1_len;n++) *pt++=dc1_temp[n];
						for(n=0;n<4;n++) *pt++=maohao[n];
	        	value_temp=yc.DC[0];
	        	value_temp=((value_temp*2.5)/4096)*4*mandu_dc1;
	        	dc1_value=value_temp*100;
	        	
		        for(n=0;n<4;n++) *pt++=number[dc1_value/1000][n];
			      for(n=0;n<4;n++) *pt++=number[dc1_value%1000/100][n];
			      for(n=0;n<4;n++) *pt++=d_point[n]; 
			      for(n=0;n<4;n++) *pt++=number[dc1_value%1000%100/10][n];
			      for(n=0;n<4;n++) *pt++=number[dc1_value%1000%100%10][n];	        	
		        
	          //for(n=0;n<4;n++) *pt++=fu[n];
				    for(n=0;n<4;n++) *pt++=enter[n]; 
				    
				    dc1_ptlen=dc1_len+28;    	
        	}	

         if(dc2_len==0)
        	{
	        	for(n=0;n<8;n++) *pt++=simulate[n];
	        	*pt++=48;//0的ascll码
	          *pt++=48;//0的ascll码
	          *pt++=51;//0的ascll码
	          *pt++=50;//1的ascll码
	        	for(n=0;n<4;n++) *pt++=maohao[n];
	        	value_temp=0;
	        	value_temp=yc.DC[1];
	        	value_temp=((value_temp*2.5)/4096)*4*mandu_dc2;
	        	dc2_value=value_temp*100;
	        	
	       	  for(n=0;n<4;n++) *pt++=number[dc2_value/1000][n];
		        for(n=0;n<4;n++) *pt++=number[dc2_value%1000/100][n];
		        for(n=0;n<4;n++) *pt++=d_point[n]; 
		        for(n=0;n<4;n++) *pt++=number[dc2_value%1000%100/10][n];
		        for(n=0;n<4;n++) *pt++=number[dc2_value%1000%100%10][n];	  	        	
	        	
	        	//for(n=0;n<4;n++) *pt++=fu[n];
				    for(n=0;n<4;n++) *pt++=enter[n];
				   
				    dc2_ptlen=40;
        	}
        else
        	{

⌨️ 快捷键说明

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