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

📄 main.cpp

📁 串口可交换程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		if(_marker[chs].marker_follow_flag==ON){
			_marker[chs].max_mkr.freq=_freq[chs].start_freq+
				(double)x_max*(double)_freq[chs].freq_width/swp_pnt;
			_marker[chs].min_mkr.freq=_freq[chs].start_freq+
				(double)x_min*(double)_freq[chs].freq_width/swp_pnt;
		}//end if
	 if(_disp.disp_way==0||_disp.disp_way==2)
		draw_graph(chs==0?_system.colora:_system.colorb);
/*
		for(i=0;i<the_points;i++)
		{
			power_in=conv(chs==0?y_a[i]:y_b[i]);
			if(_chab[chs].flag==0)
				power_in-=_power[chs].output_power;
			draw_map(_status[chs].sweep_points-1,i,power_in);
//		 if(i>0&&y_map>=0&&y_map<=DISP_Y2-36){
//				disable();
//				mda_map->Line(x_old,y_old,x_map,y_map);
//				enable();
//			}
			if(i>0){
				if(y_old<0){
					if(y_map<0){
					}
					else if(y_map<DISP_Y2-36){
						mda_map->Line(((double)x_old*y_map-(double)x_map*y_old)/(y_map-y_old),0,x_map,y_map);
//						printf("(%d,%d) (%d,%d) %d, ",x_old,y_old,x_map,y_map,(x_old*y_map-x_map*y_old)/(y_map-y_old));
					}
					else{
						mda_map->Line(((double)x_old*y_map-(double)x_map*y_old)/(y_map-y_old),0,((double)x_old*y_map-(double)x_map*y_old+(double)(DISP_Y2-36)*(x_map-x_old))/(y_map-y_old),DISP_Y2-36);
					}
				}
				else if(y_old<DISP_Y2-36){
					if(y_map<0){
						mda_map->Line(x_old,y_old,((double)x_old*y_map-(double)x_map*y_old)/(y_map-y_old),0);
					}
					else if(y_map<DISP_Y2-36){
						mda_map->Line(x_old,y_old,x_map,y_map);
					}
					else{
						mda_map->Line(x_old,y_old,((double)x_old*y_map-(double)x_map*y_old+(double)(DISP_Y2-36)*(x_map-x_old))/(y_map-y_old),DISP_Y2-36);
					}
				}
				else
				{
					if(y_map<0){
						mda_map->Line(((double)x_old*y_map-(double)x_map*y_old+(double)(DISP_Y2-36)*(x_map-x_old))/(y_map-y_old),DISP_Y2-36,((double)x_old*y_map-(double)x_map*y_old)/(y_map-y_old),0);
					}
					else if(y_map<DISP_Y2-36){
						mda_map->Line(((double)x_old*y_map-(double)x_map*y_old+(double)(DISP_Y2-36)*(x_map-x_old))/(y_map-y_old),DISP_Y2-36,x_map,y_map);
					}
					else{
					}
				}
			}
			x_old=x_map;
			y_old=y_map;
		}*/
	 //////
//printf("  1");
		if(_marker[chs].max_mkr.on_off==ON){
			if(_marker[chs].marker_follow_flag==ON){
				draw_map(_marker[chs].max_mkr.freq,_marker[chs].max_mkr.power);
			}
			else if(_marker[chs].marker_follow_flag==OFF){
				follow_max=(int)((double)(_marker[chs].max_mkr.freq-_freq[chs].start_freq)\
					*(_status[chs].sweep_points-1)/_freq[chs].freq_width);
				_marker[chs].max_mkr.power = conv(chs==0?y_a[follow_max]:y_b[follow_max]);
				if(_chab[chs].flag==0)
					_marker[chs].max_mkr.power -= _power[chs].output_power;
				draw_map(_marker[chs].max_mkr.freq,_marker[chs].max_mkr.power);
			}
			draw_marker(x_map,y_map,mda_map);
		}
	 //////
//printf("2");
		if(_marker[chs].min_mkr.on_off==ON){
			if(_marker[chs].marker_follow_flag==ON){
				draw_map(_marker[chs].min_mkr.freq,_marker[chs].min_mkr.power);
			}
			else if(_marker[chs].marker_follow_flag==OFF){
				follow_min=(int)((double)(_marker[chs].min_mkr.freq-_freq[chs].start_freq)\
					*(_status[chs].sweep_points-1)/_freq[chs].freq_width);
					_marker[chs].min_mkr.power = conv(chs==0?y_a[follow_min]:y_b[follow_min]);
				if(_chab[chs].flag==0)
					_marker[chs].min_mkr.power -= _power[chs].output_power;
				draw_map(_marker[chs].min_mkr.freq,_marker[chs].min_mkr.power);
			}
			draw_marker(x_map,y_map,mda_map);
		}
	//////
//printf("3");
		if(_marker[chs].cen_mkr.on_off==ON||_disp.disp_way==1||_disp.disp_way==2)
		{
			mark_fun(_marker[chs].cen_mkr.set_attenuate,
//			chs==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power,
				_chab[chs].flag==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power,
				x_max,freq[1],freq[0]);
//			printf("%ld,%ld, ",freq[0],freq[1]);
			if(_marker[chs].marker_follow_flag==ON){
				if(freq[0]==0||freq[1]==0)
					_marker[chs].cen_mkr.freq=0;
				else{
					_marker[chs].cen_mkr.freq=(freq[0]+freq[1])/2;

					follow_cen=(int)((double)(_marker[chs].cen_mkr.freq-_freq[chs].start_freq)\
						*(_status[chs].sweep_points-1)/_freq[chs].freq_width);
					assert(follow_cen>=0&&follow_cen<_status[chs].sweep_points);
					_marker[chs].cen_mkr.power=conv(chs==0?y_a[follow_cen]:y_b[follow_cen]);
				}
//				if(_marker[chs].cen_mkr.freq<_freq[chs].start_freq||_marker[chs].cen_mkr.freq>_freq[chs].end_freq)
//					_marker[chs].cen_mkr.freq = _freq[chs].center_freq;
			}
			else if(_marker[chs].marker_follow_flag==OFF){
				if(_marker[chs].cen_mkr.freq<_freq[chs].start_freq||_marker[chs].cen_mkr.freq>_freq[chs].end_freq)
					_marker[chs].cen_mkr.freq = _freq[chs].center_freq;
					follow_cen=(int)((double)(_marker[chs].cen_mkr.freq-_freq[chs].start_freq)\
						*(_status[chs].sweep_points-1)/_freq[chs].freq_width);
					assert(follow_cen>=0&&follow_cen<_status[chs].sweep_points);
					_marker[chs].cen_mkr.power=conv(chs==0?y_a[follow_cen]:y_b[follow_cen]);

//				cen_i=(int)((double)(_marker[chs].cen_mkr.freq-_freq[chs].start_freq)\
//					*(_status[chs].sweep_points-1)/_freq[chs].freq_width);
//				_marker[chs].cen_mkr.power=conv(chs==0?y_a[cen_i]:y_b[cen_i]);
			}
			if(_chab[chs].flag==0)
				_marker[chs].cen_mkr.power -= _power[chs].output_power;
			if(_disp.disp_way!=1&&_marker[chs].cen_mkr.on_off==ON){
				draw_map(_marker[chs].cen_mkr.freq,_marker[chs].cen_mkr.power);
				draw_marker(x_map,y_map,mda_map);
			}
		 }
  //printf("4");
		for(i=0;i<3;i++){
			if(_marker[chs].marker_fun[i].on_off==ON){
				mark_fun(_marker[chs].marker_fun[i].power,
						(_chab[chs].flag==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power),
						x_max,_marker[chs].marker_fun[i].freq[0],
						_marker[chs].marker_fun[i].freq[1]);
				if( _marker[chs].min_mkr.power - _marker[chs].max_mkr.power < _marker[chs].marker_fun[i].power){
					draw_map(_marker[chs].marker_fun[i].freq[0],
						_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power);
					draw_marker(x_map,y_map,mda_map);

					draw_map(_marker[chs].marker_fun[i].freq[1],
						_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power);
					draw_marker(x_map,y_map,mda_map);
//				}
					if(ch_sel==chs&&_keyid==MARKER&&_softkeyid==6&&_softkeyid1!=0)
						marker_show3(i);
				}
		  }
		}
//		marker();
//printf("5");
		if(_marker[chs].max_mkr.on_off==ON){
			if(ch_sel==chs&&_keyid==MARKER&&_softkeyid==7&&_softkeyid1!=0&&_softkeyid2==0){
			  marker_show4(1);
			  if(_softkeyid1==71){
				CLR_DIGITAL;
				sprintf(msg,"%.2f",_marker[chs].max_mkr.power);
				if(_chab[chs].flag==0)
					strcat(msg," dB");
				else
					strcat(msg," dBm");
				Outchar12(300,462,msg,TEXTDIGITAL);
				if(_marker[chs].max_mkr.freq>=1000000)
					sprintf(msg,"%.6f MHz",(double)_marker[chs].max_mkr.freq/1000000.0);
				else
					sprintf(msg,"%.3f kHz",(double)_marker[chs].max_mkr.freq/1000.0);
				Outchar12(105,462,msg,TEXTDIGITAL);
			  }
			}
		}
		if(_marker[chs].min_mkr.on_off==ON){
		  if(ch_sel==chs&&_keyid==MARKER&&_softkeyid==7&&_softkeyid1!=0&&_softkeyid2==0){
			marker_show4(2);
			if(_softkeyid1==72){
				CLR_DIGITAL;
				sprintf(msg,"%.2f",_marker[chs].min_mkr.power);
				if(_chab[chs].flag==0)
					strcat(msg,"dB");
				else
					strcat(msg,"dBm");
				Outchar12(300,462,msg,TEXTDIGITAL);
				if(_marker[chs].min_mkr.freq>=1000000)
					sprintf(msg,"%.6f MHz",(double)_marker[chs].min_mkr.freq/1000000.0);
				else
					sprintf(msg,"%.3f kHz",(double)_marker[chs].min_mkr.freq/1000.0);
				Outchar12(105,462,msg,TEXTDIGITAL);
			}
		  }
		}
		if(_marker[chs].cen_mkr.on_off==ON){
		  if(ch_sel==chs&&_keyid==MARKER&&_softkeyid==7&&_softkeyid1!=0&&_softkeyid2==0){
			marker_show4(3);
			if(_softkeyid1==73){
				CLR_DIGITAL;
				sprintf(msg,"%.2f",_marker[chs].cen_mkr.power);
				if(_chab[chs].flag==0)
					strcat(msg,"dB");
				else
					strcat(msg,"dBm");
				Outchar12(300,462,msg,TEXTDIGITAL);
				if(_marker[chs].cen_mkr.freq>=1000000)
					sprintf(msg,"%.6f MHz",(double)_marker[chs].cen_mkr.freq/1000000.0);
				else
					sprintf(msg,"%.3f kHz",(double)_marker[chs].cen_mkr.freq/1000.0);
				Outchar12(105,462,msg,TEXTDIGITAL);
			}
		  }
		}
//printf("6");

//modify on 2004/06/02 , mwy

		for(i=0;i<8;i++){
			if(_marker[chs].mark[i].on_off==ON){
				if(chs==0){
					if(_freq[chs].is_dot_freq||_freq[chs].start_freq==_freq[chs].end_freq){
						_marker[0].mark[i].power=conv(y_a[0]);
					}
					else{
						for(j=0;j<_status[0].sweep_points-1;j++)
							if(_freq[0].start_freq+(j+1)*freq_step>=_marker[0].mark[i].freq)
								break;
//						printf(" %d ",y_a[j]);
						if(y_a[j]==y_a[j+1])
							_marker[0].mark[i].power=conv(y_a[j]);
						else{
							_marker[0].mark[i].power=((double)(_marker[0].mark[i].freq-(_freq[0].start_freq+j*freq_step))/freq_step)*(conv(y_a[j+1])-conv(y_a[j]))+conv(y_a[j]);
						}
//						printf("a.%f ",_marker[0].mark[i].power);
				   }
			  }
			  else if(chs==1){
				   if(_freq[chs].is_dot_freq||_freq[chs].start_freq==_freq[chs].end_freq)
						_marker[1].mark[i].power=conv(y_b[0]);
				   else{
						for(j=0;j<_status[1].sweep_points-1;j++)
							if(_freq[1].start_freq+(j+1)*freq_step>=_marker[1].mark[i].freq)
								break;
//						printf(" %d,%d ",j,y_b[j]);
						if(y_b[j]==y_b[j+1])
							_marker[1].mark[i].power=conv(y_b[j]);
						else{
							_marker[1].mark[i].power=((double)(_marker[1].mark[i].freq-(_freq[1].start_freq+j*freq_step))/freq_step)*(conv(y_b[j+1])-conv(y_b[j]))+conv(y_b[j]);
						}
//						printf("b.%f ",_marker[1].mark[i].power);

				   }

//					_marker[1].mark[i].power=
//					conv(y_b[(long) ((float)(_marker[1].mark[i].freq-_freq[1].start_freq)\
//													   *(_status[chs].sweep_points-1)/(_freq[1].freq_width))]);
			  }
//printf("7");

			  if(_keyid==MARKER&&ch_sel==chs){//modified on 7-6
						refr_menu_mkr(i);
			  }
			  if(_chab[chs].flag==0)
				  if(_freq[chs].is_dot_freq||_freq[chs].start_freq==_freq[chs].end_freq){
					x_map=DISP_X1+250;
					y_map=(10.0-(_scale[chs].ref_pos+(_marker[chs].mark[i].power-_power[chs].output_power-_scale[chs].ref_vol)/_scale[chs].scale_unit))*40-1;
				  }
				  else
					draw_map(_marker[chs].mark[i].freq,_marker[chs].mark[i].power-_power[chs].output_power);
			  else
				  if(_freq[chs].is_dot_freq||_freq[chs].start_freq==_freq[chs].end_freq){
					x_map=DISP_X1+250;
					y_map=(10.0-(_scale[chs].ref_pos+(_marker[chs].mark[i].power-_scale[chs].ref_vol)/_scale[chs].scale_unit))*40-1;
				  }
				  else
					draw_map(_marker[chs].mark[i].freq,_marker[chs].mark[i].power);
//printf("x");
			  draw_marker(x_map,y_map,mda_map);
			  x_mark[chs][i]=x_map;
			  y_mark[chs][i]=y_map;
			}
		}//end for
//printf("8");

		if(_disp.disp_way==0||_disp.disp_way==2){
			disable();
			mda_map->Line(0,0,0,0,(chs==0?_system.colora:_system.colorb));
			disable();
			mda_map->ScreenMove();
			enable();
		}
		for(i=0;i<8;i++){
			if(_marker[chs].mark[i].on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
				sprintf(msg,"%d",i+1);
				wrt_num(msg,x_mark[chs][i],y_mark[chs][i],color,mda_map);
				disable();
				mda_map->Line(0,0,0,0,color);    //strage???
			}
		}

		for(i=0;i<3;i++)
			if(_marker[chs].marker_fun[i].on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
			  if( _marker[chs].min_mkr.power - _marker[chs].max_mkr.power < _marker[chs].marker_fun[i].power){
				sprintf(msg,"mf%d",i+1);
//				if(_chab[chs].flag==0)
//					draw_map(_marker[chs].marker_fun[i].freq[0],_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power-_power[chs].output_power);
//				else
					draw_map(_marker[chs].marker_fun[i].freq[0],_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power);
				wrt_num(msg,x_map,y_map,color,mda_map);
//				if(_chab[chs].flag==0)
//					draw_map(_marker[chs].marker_fun[i].freq[1],_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power-_power[chs].output_power);
//				else
					draw_map(_marker[chs].marker_fun[i].freq[1],_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power);
				wrt_num(msg,x_map,y_map,color,mda_map);
			  }
			}
		if(_marker[chs].max_mkr.on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
			if(_marker[chs].marker_follow_flag==ON)
				draw_map(_marker[chs].max_mkr.freq,_marker[chs].max_mkr.power);
			else if(_marker[chs].marker_follow_flag==OFF)
				if(_chab[chs].flag==0)
					draw_map(_marker[chs].max_mkr.freq,conv(chs==0?y_a[follow_max]:y_b[follow_max])-_power[chs].output_power);
				else
					draw_map(_marker[chs].max_mkr.freq,conv(chs==0?y_a[follow_max]:y_b[follow_max]));
			wrt_num("max",x_map,y_map,color, mda_map);
		}
		if(_marker[chs].min_mkr.on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
			if(_marker[chs].marker_follow_flag==ON)
				draw_map(_marker[chs].min_mkr.freq,_marker[chs].min_mkr.power);
			else if(_marker[chs].marker_follow_flag==OFF)
				if(_chab[chs].flag==0)
					draw_map(_marker[chs].min_mkr.freq,conv(chs==0?y_a[follow_min]:y_b[follow_min])-_power[chs].output_power);
				else
					draw_map(_marker[chs].min_mkr.freq,conv(chs==0?y_a[follow_min]:y_b[follow_min]));
			wrt_num("min",x_map,y_map,color, mda_map);
		}
		if(_marker[chs].cen_mkr.on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
			if(_marker[chs].marker_follow_flag==ON)
//				if(_chab[chs].flag==0)
//					draw_map(_marker[chs].cen_mkr.freq,_marker[chs].cen_mkr.power-_power[chs].output_power);
//				else
					draw_map(_marker[chs].cen_mkr.freq,_marker[chs].cen_mkr.power);
			else if(_marker[chs].marker_follow_flag==OFF)
				if(_chab[chs].flag==0)
					draw_map(_marker[chs].cen_mkr.freq,conv(chs==0?y_a[follow_cen]:y_b[follow_cen])-_power[chs].output_power);
				else
					draw_map(_marker[chs].cen_mkr.freq,conv(chs==0?y_a[follow_cen]:y_b[follow_cen]));
			wrt_num("cen",x_map,y_map,color, mda_map);
		}

		if(_disp.disp_way==0||_disp.disp_way==2){
			disable();
			mda_map->Line(0,0,0,0,chs==0?_system.colora:_system.colorb);
			mda_map->ScreenClear();
			enable();
		}
//		disable();
//		if(flag_disp == 1){
//			DispSwitchBusy = 0;
//			flag_disp = 0;
//		}

//		if(disp_switch!=0){
//			DispSwitch();
//			flag_disp = 1;
//		}
		if(chs==0&&(_disp.disp_way==1||_disp.disp_way==2)){
//printf("a");
			_disp.r_cen_freq=_marker[0].cen_mkr.freq;
			_disp.r_freq_diff=_disp.r_cen_freq-_disp.cen_freq;
//printf("b");

			if(_disp.r_freq_diff<0)
				_disp.r_freq_diff=0-_disp.r_freq_diff;
			if(_disp.r_freq_diff<_disp.freq_diff)
				_disp.flag_freq_diff=TRUE;
			else
				_disp.flag_freq_diff=FALSE;
			_disp.r_loss = 0 - _marker[0].cen_mkr.power;
			if(_disp.r_loss < _disp.loss)
				_disp.flag_loss = TRUE;
			else
				_disp.flag_loss = FALSE;
//printf("c");

			max_in_pb = Max(_disp.r_cen_freq - _disp.ripple_bw/2,_disp.r_cen_freq + _disp.ripple_bw/2,0);
			min_in_pb = Min(_disp.r_cen_freq - _disp.ripple_bw/2,_disp.r_cen_freq + _disp.ripple_bw/2,0);
			_disp.r_ripple = max_in_pb - min_in_pb;
			if(_disp.r_ripple < _disp.ripple)
				_disp.flag_ripple = TRUE;
			else
				_disp.flag_ripple = FALSE;

//printf("d");
			mark_fun(_disp.db_bw1.attenuation,
					(_chab[chs].flag==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power),
					 x_max,
					 _disp.db_bw1.r_freq_r,
					 _disp.db_bw1.r_freq_l);
			if(((_disp.db_bw1.r_freq_r>_disp.db_bw1.freq.freq_r.freq&&_disp.db_bw1.freq.freq_r.above_below==1)
			  ||(_disp.db_bw1.r_freq_r<_disp.db_bw1.freq.freq_r.freq&&_disp.db_bw1.freq.freq_r.above_below==0))
			 &&((_disp.db_bw1.r_freq_l<_disp.db_bw1.freq.freq_l.freq&&_disp.db_bw1.freq.freq_l.above_below==0)
			  ||(_disp.db_bw1.r_freq_l>_disp.db_bw1.freq.freq_l.freq&&_disp.db_bw1.freq.freq_l.above_below==1)))
				_disp.flag_db_bw1=TRUE;
			else
				_disp.flag_db_bw1=FALSE;
			_disp.db_bw1.r_bandwidth=_disp.db_bw1.r_freq_r-_disp.db_bw1.r_freq_l;
			if((_disp.db_bw1.r_bandwidth>_disp.db_bw1.bandwidth.freq&&_disp.db_bw1.bandwidth.above_below==1)||
			   (_disp.db_bw1.r_bandwidth<_disp.db_bw1.bandwidth.freq&&_disp.db_bw1.bandwidth.above_below==0))
				_disp.flag_bandwidth1=TRUE;
			else
				_disp.flag_bandwidth1=FALSE;

//printf("e");
			mark_fun(_disp.db_bw2.attenuation,
					(_chab[chs].flag==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power),
					 x_max,
					 _disp.db_bw2.r_freq_r,
					 _disp.db_bw2.r_freq_l);
			if(((_disp.db_bw2.r_freq_r>_disp.db_bw2.freq.freq_r.freq&&_disp.db_bw2.freq.freq_r.above_below==1)
			  ||(_disp.db_bw2.r_freq_r<_disp.db_bw2.freq.freq_r.freq&&_disp.db_bw2.freq.freq_r.above_below==0))
			 &&((_disp.db_bw2.r_freq_l<_disp.db_bw2.freq.freq_l.freq&&_disp.db_bw2.freq.freq_l.above_below==0)
			  ||(_disp.db_bw2.r_freq_l>_disp.db_bw2.freq.freq_l.freq&&_disp.db_bw2.freq.freq_l.above_below==1)))

⌨️ 快捷键说明

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