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

📄 main1_1.c.bak

📁 基于485的51单片机多机通讯程序
💻 BAK
📖 第 1 页 / 共 2 页
字号:
				delt++;
			}
			p_received=0;
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();

			while(p_received==0)
			{
				if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
				if(resend==1)
				{
					ini_sbuf(M_PC,answer,S_ANSW,0,0);
					s_byte_nums=4;
					TR_noans();
					p_received=0;
					resend=0;
				}
			}
			point=&pp.k4;
			delt=0;
			for(i=2;i<53;i++)
			{
				*(point+i-2)=rbuffer[i+delt]*256+rbuffer[i+delt+1];
				delt++;
			}
			pp.sec_num=rbuffer[52];
			p_received=0;
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();

			if(pp.sec_num>0)
			{
				for(j=0;j<pp.sec_num;j++)
				{
					while(p_received==0)
					{
						if(urgent_stop==1)
						{
							if(pc_stop==1)
							{
								ini_sbuf(M_PC,answer,S_ANSW,0,0);
								s_byte_nums=4;
								TR_noans();
								stop=0;
								while(err_ok==0);
							}
							goto BEGIN;
						}
						if(resend==1)
						{
							ini_sbuf(M_PC,answer,S_ANSW,0,0);
							s_byte_nums=4;
							TR_noans();
							resend=0;
							p_received=0;
						}
					}
					p_received=0;
					nonce_sec=rbuffer[2];
					point=&pp.x[nonce_sec][0];
					i=3;
					for(delt=0;delt<30;delt++)
					{
						*(point+delt)=rbuffer[i]*256+rbuffer[i+1];
						i=i+2;
					}
					ini_sbuf(M_PC,answer,S_ANSW,0,0);
					s_byte_nums=4;
					TR_noans();
				}
			}
			while(edit_finish==0)
			{
				if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
			}
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			edit_finish=0;
		}

		if(need_para==1)
		{
			s_p=1;
			c_err=0;
			point=&pp.t01;
			temp_delt=2;
			sbuffer1[0]=M_current;		//电流和面板接收
			sbuffer1[1]=p_out_sec;			//电流区间外参数
			sbuffer1[52]=pp.syn_type%256;
			sbuffer1[53]=0;
			sbuffer1[54]=0;
			for(temp_pc=2;temp_pc<52;temp_pc++)
			{
				if(temp_pc%2==0)
				{
					sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
					temp_delt++;
				}
				else
					sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
			}
			s_byte_nums=55;
			TR_ans();
/*
	RESEND:	if(resend==1||overtime==1)
		{
			c_err++;
			resend=0;
			overtime=0;
			if(c_err<5)
			{			
				TR_ans();
				goto RESEND;
			}
			else
			{
				c_err=0;
				main_err=1;
				err=2;
				stop=0;
				while(urgent_stop==0);
				goto END_P;
			}
		}
		else
			c_err=0;
*/
			s_p=1;
			point=&pp.k2;
			temp_delt=2;
			sbuffer1[0]=M_RW;			//旋转/送丝和面板接收
			sbuffer1[1]=p_out_sec;			//旋转/送丝区间外参数
			for(temp_pc=2;temp_pc<50;temp_pc++)
			{
				if(temp_pc%2==0)
				{
					sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
					temp_delt++;
				}
				else
					sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
			}
			sbuffer1[50]=pp.k1%256;
			for(temp_pc=51;temp_pc<55;temp_pc++)
				sbuffer1[temp_pc]=0;
			s_byte_nums=55;
			TR_ans();
/*
	RESEND1: if(resend==1||overtime==1)
		{
			c_err++;
			resend=0;
			overtime=0;
			if(c_err<5)
			{			
				TR_ans();
				goto RESEND1;
			}
			else
			{
				c_err=0;
				main_err=1;
				err=2;
				stop=0;
				while(urgent_stop==0);
				goto END_P;
			}
		}
		else
			c_err=0;
*/		
			s_p=1;
			point=&pp.k4;
			temp_delt=2;
			sbuffer1[0]=M_OSC;			//横摆和面板接收
			sbuffer1[1]=p_out_sec;			//横摆区间外参数
			for(temp_pc=2;temp_pc<26;temp_pc++)
			{
				if(temp_pc%2==0)
				{
					sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
					temp_delt++;
				}
				else
					sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
			}
			sbuffer1[26]=pp.t17/256;
			sbuffer1[27]=pp.t17%256;
			sbuffer1[28]=0;
			sbuffer1[29]=pp.sec_num%256;
			for(temp_pc=30;temp_pc<55;temp_pc++)
				sbuffer1[temp_pc]=0;
			s_byte_nums=55;
			TR_ans();
/*
	RESEND2: if(resend==1||overtime==1)
		{
			c_err++;
			resend=0;
			overtime=0;
			if(c_err<5)
			{			
				TR_ans();
				goto RESEND2;
			}
			else
			{
				c_err=0;
				main_err=1;
				err=2;
				stop=0;
				while(urgent_stop==0);
				goto END_P;
			}
		}
		else
			c_err=0;
*/
			s_p=1;
			point=&pp.k5;
			temp_delt=2;
			sbuffer1[0]=M_AVC;			//横摆和面板接收
			sbuffer1[1]=p_out_sec;			//横摆区间外参数
			for(temp_pc=2;temp_pc<28;temp_pc++)
			{
				if(temp_pc%2==0)
				{
					sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
					temp_delt++;
				}
				else
					sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
			}
			sbuffer1[28]=pp.k1/256;
			sbuffer1[29]=pp.k1%256;
			for(temp_pc=30;temp_pc<55;temp_pc++)
				sbuffer1[temp_pc]=0;
			s_byte_nums=55;
			TR_ans();
/*
	RESEND3: if(resend==1||overtime==1)
		{
			c_err++;
			resend=0;
			overtime=0;
			if(c_err<5)
			{			
				TR_ans();
				goto RESEND3;
			}
			else
			{
				c_err=0;
				main_err=1;
				err=2;
				stop=0;
				while(urgent_stop==0);
				goto END_P;
			}
		}
		else
			c_err=0;
*/
		for(anum=0;anum<4;anum++)
		{
				s_p=1;
				for(snum=0;snum<10;snum++)
				{
					s_p=1;
					temp_delt=3;
					sbuffer1[0]=axis[anum];
					sbuffer1[1]=p_in_sec;
					sbuffer1[2]=snum;
					switch(anum)
					{
						case 0:	{
								point=&pp.x[snum][0];
								for(temp_pc=3;temp_pc<23;temp_pc++)
								{
									if(temp_pc%2==1)
									{
										sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
										temp_delt++;
									}
									else
										sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
								}
								sbuffer1[23]=0;
							}break;
						case 1:	{
								point=&pp.x[snum][10];
								for(temp_pc=3;temp_pc<23;temp_pc++)
								{
									if(temp_pc%2==1)
									{
										sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
										temp_delt++;
									}
									else
										sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
								}
								sbuffer1[23]=0;
							}break;
						case 2:	{
								point=&pp.x[snum][20];
								for(temp_pc=3;temp_pc<15;temp_pc++)
								{
									if(temp_pc%2==1)
									{
										sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
										temp_delt++;
									}
									else
										sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
								}
								for(temp_pc=15;temp_pc<24;temp_pc++)
									sbuffer1[temp_pc]=0;
							}break;
						case 3: {
								point=&pp.x[snum][26];
								for(temp_pc=3;temp_pc<11;temp_pc++)
								{
									if(temp_pc%2==1)
									{
										sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
										temp_delt++;
									}
									else
										sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
								}
								for(temp_pc=11;temp_pc<24;temp_pc++)
									sbuffer1[temp_pc]=0;
							}break;
						default:break;
					}
					s_byte_nums=get_byte_nums(p_in_sec);
					TR_ans();
/*
	RESEND4:			if(resend==1||overtime==1)
					{
						c_err++;
						resend=0;
						overtime=0;
						if(c_err<5)
						{			
							TR_ans();
							goto RESEND4;
						}
						else
						{
							c_err=0;
							main_err=1;
							err=2;
							stop=0;
							while(urgent_stop==0);
							goto END_P;
						}
					}
					else
						c_err=0;

				}
		}
*/
			}
		}
//END_P:	s_p=0;
		}
/*		
		if(p_active==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			p_forbided=0;
			p_actived=1;
			p_active=0;
		}
		
		if(rc_active==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			rc_forbided=0;
			rc_actived=1;
			rc_active=0;
		}
*/		
		if(new_switch1==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			new_switch11=1;
			new_switch1=0;
		}
		
		if(new_switch2==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			new_switch22=1;
			new_switch2=0;
		}

		if(new_switch3==1)
		{
			ini_sbuf(M_PC,answer,S_ANSW,0,0);
			s_byte_nums=4;
			TR_noans();
			delt_switch=1;
			new_switch3=0;
		}

		if(urgent_stop==1)
		{
			if(pc_stop==1)
			{
				ini_sbuf(M_PC,answer,S_ANSW,0,0);
				s_byte_nums=4;
				TR_noans();
				stop=0;
				while(err_ok==0);
				stop=1;
			}
			goto BEGIN;
		}
				
	}
/*
	if(rc_forbided==1)
	{
		ini_sbuf(M_PC,answer,S_ANSW,0,0);
		s_byte_nums=4;
		TR_noans();
	}
*/
	s_p=1;
	while(decrease==0)
	{
/*
		if(need_para==1)
		{
			temp_c++;
			sbuffer1[0]=M_PC;
			sbuffer1[1]=para_pc;
			sbuffer1[2]=FINISH/256;
			sbuffer1[3]=FINISH%256;
			sbuffer1[4]=CURRENT/256;
			sbuffer1[5]=CURRENT%256;
			sbuffer1[6]=VOLTAGE/256;
			sbuffer1[7]=VOLTAGE%256;
			sbuffer1[8]=err;
			sbuffer1[9]=0;
			s_byte_nums=10;
			TR_noans();
			need_para=0;
		}
*/
		if(urgent_stop==1)
		{
			if(pc_stop==0)
			{
				ini_sbuf(M_PC,command,com_urgent_stop,0,0);
				s_byte_nums=4;
				TR_ans();
//				answer_judge();
			}
			if(pc_stop==1)
			{
				ini_sbuf(M_PC,answer,S_ANSW,0,0);
				s_byte_nums=4;
				TR_noans();
				stop=0;
				while(err_ok==0);
			}
			goto BEGIN;
		}
	}
	s_p=0;
/*
	if(rc_forbided==1)
	{
		ini_sbuf(M_PC,answer,S_ANSW,0,0);
		s_byte_nums=4;
		TR_noans();
	}
*/
	while(decrease_ok==0)
	{
/*
		if(need_para==1)
		{
			sbuffer[0]=M_PC;
			sbuffer[1]=parameter1;
			sbuffer[2]=FINISH/256;
			sbuffer[3]=FINISH%256;
			sbuffer[4]=0;
			s_byte_nums=5;
			TR_noans();
			need_para=0;
		}
*/
		if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
	}
/*
	if(pp.b==ON)
	{
		while(return_ok==0)
		{
			if(need_para==1)
			{
				sbuffer[0]=M_PC;
				sbuffer[1]=parameter1;
				sbuffer[2]=FINISH/256;
				sbuffer[3]=FINISH%256;
				sbuffer[4]=0;
				s_byte_nums=5;
				TR_noans();
				need_para=0;
			}
			if(urgent_stop==1)
				{
					if(pc_stop==1)
					{
						ini_sbuf(M_PC,answer,S_ANSW,0,0);
						s_byte_nums=4;
						TR_noans();
						stop=0;
						while(err_ok==0);
					}
					goto BEGIN;
				}
		}
	}
*/
	goto BEGIN;
}

⌨️ 快捷键说明

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