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

📄 marker.cpp

📁 串口可交换程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
void marker_show4(int i)	//show max,min,cen markers
{
	char msg[20],msg1[20];
	float freq1;
	clear_rect(B_LX+2,i*59,B_RX-2,i*59+40);
//	disable();
//	setfillstyle(SOLID_FILL,TEXTMENUBK);
//	bar(B_LX,i*59+8-5,B_RX-3,i*59+8+20+15);
	if(i==1){
//		Outchar12(B_LX+10,i*59+8-5+5,"最 大 值",TEXTMENU);
		if(_marker[ch_sel].max_mkr.on_off==OFF){
			Outchar12(B_LX+35,i*59+8-5+5+18,"关",TEXTMENU);
			draw_big_menu(1,2,1,1,0,"最 大 值 ","  关");
		}
		else{
			if(_marker[ch_sel].max_mkr.freq>=1000000)
				sprintf(msg,"%.3fMHz",_marker[ch_sel].max_mkr.freq/1000000.0);
			else if(_marker[ch_sel].max_mkr.freq>=1000)
				sprintf(msg,"%.2fkHz",_marker[ch_sel].max_mkr.freq/1000.0);
//			disable();
//			setcolor(TEXTMENU);
//			outtextxy(B_LX+10,1*59+8-5+19,msg);
			sprintf(msg1,"%.2f",_marker[ch_sel].max_mkr.power);
			if(_chab[ch_sel].flag==0)
				strcat(msg1,"dB");
			else
				strcat(msg1,"dBm");
//			disable();
//			setcolor(TEXTMENU);
//			outtextxy(B_LX+10,1*59+8-5+18+14,msg);
			draw_big_menu(1,3,1,0,0,"最 大 值 ",msg,msg1);
		}
	}
	else if(i==2){
//		Outchar12(B_LX+10,2*59+8-5+5,"最 小 值",TEXTMENU);
		if(_marker[ch_sel].min_mkr.on_off==OFF){
//			Outchar12(B_LX+35,2*59+8-5+5+18,"关",TEXTMENU);
			draw_big_menu(2,2,1,1,0,"最 小 值 ","  关");
		}
		else{
			if(_marker[ch_sel].min_mkr.freq>=1000000)
				sprintf(msg,"%.3fMHz",_marker[ch_sel].min_mkr.freq/1000000.0);
			else if(_marker[ch_sel].min_mkr.freq>=1000)
				sprintf(msg,"%.2fkHz",_marker[ch_sel].min_mkr.freq/1000.0);
//			disable();
//			setcolor(TEXTMENU);
//			outtextxy(B_LX+10,2*59+8-5+19,msg);
			sprintf(msg1,"%.2f",_marker[ch_sel].min_mkr.power);
			if(_chab[ch_sel].flag==0)
				strcat(msg1,"dB");
			else
				strcat(msg1,"dBm");
			draw_big_menu(2,3,1,0,0,"最 小 值 ",msg,msg1);
//			disable();
//			setcolor(TEXTMENU);
//			outtextxy(B_LX+10,2*59+8-5+18+14,msg);
		}
	}
	else if(i==3){
//		Outchar45(B_LX+10,3*59+8-5+5,"中心频标",TEXTMENU);
		if(_marker[ch_sel].cen_mkr.on_off==OFF){
			Outchar12(B_LX+35,3*59+8-5+5+18,"关",TEXTMENU);
			draw_big_menu(3,2,1,1,0,"中心频标","  关");
		}
		else{
			if(_marker[ch_sel].cen_mkr.freq>=1000000)
				sprintf(msg,"%.3fMHz",_marker[ch_sel].cen_mkr.freq/1000000.0);
			else if(_marker[ch_sel].cen_mkr.freq>=1000)
				sprintf(msg,"%.2fkHz",_marker[ch_sel].cen_mkr.freq/1000.0);
//			disable();
//			setcolor(TEXTMENU);
//			outtextxy(B_LX+10,3*59+8-5+19,msg);
			sprintf(msg1,"%.2f",_marker[ch_sel].cen_mkr.power);
			if(_chab[ch_sel].flag==0)
				strcat(msg1,"dB");
			else
				strcat(msg1,"dBm");
//			disable();
//			setcolor(TEXTMENU);
//			outtextxy(B_LX+10,3*59+8-5+18+14,msg);
			draw_big_menu(3,3,1,0,0,"中心频标",msg,msg1);
		}
	}
}

void mff_show()
{
//	clear_rect(B_LX,4*59+8-5+18,B_RX-3,4*59+8+20+15);
//	clear_rect(B_LX,4*59+8-5+18,B_RX-3,4*59+8+20+15);
//	disable();
//	setfillstyle(SOLID_FILL,TEXTMENUBK);
//	bar(B_LX,4*59+8-5+18,B_RX-3,4*59+8+20+15);
	draw_big_menu(4,2,1,0,0,"频标跟踪");
	if(_marker[ch_sel].marker_follow_flag==OFF)
	{
		Outchar12(B_LX+10,4*59+22,"开",TEXTMENU);
		Outchar12(B_RX-25,4*59+22,"关",TEXTDIGITAL);
	//	Outchar12(105,462,"关",TEXTDIGITAL);
	}
	else if(_marker[ch_sel].marker_follow_flag==1)
	{
		Outchar12(B_LX+10,4*59+22,"开",TEXTDIGITAL);
		Outchar12(B_RX-25,4*59+22,"关",TEXTMENU);
	//	Outchar12(105,462,"开",TEXTDIGITAL);
	}
}
void refresh_down_mark()
{
	char msg[20];
	int i;
	clear_rect(35,462,540,475);
	clear_rect(35,462,540,475);
	if((_softkeyid==1)||(_softkeyid==2)||(_softkeyid==3)||(_softkeyid1==41)||
		(_softkeyid1==42)||(_softkeyid1==43)||(_softkeyid1==44)||(_softkeyid1==45))
	{
		if(_softkeyid==1)
		{	Outchar12(35,462,"频标 1:",TEXTFURLN);
			if(_marker[ch_sel].mark[0].on_off==OFF)
				Outchar12(105,462,"关",TEXTDIGITAL);
			else
				khz_ormhz(_marker[ch_sel].mark[0].freq,2);
		}
		else if(_softkeyid==2)
		{	Outchar12(35,462,"频标 2:",TEXTFURLN);
			if(_marker[ch_sel].mark[1].on_off==OFF)
				Outchar12(105,462,"关",TEXTDIGITAL);
			else
				khz_ormhz(_marker[ch_sel].mark[1].freq,2);
		}
		else if(_softkeyid==3)
		{	Outchar12(35,462,"频标 3:",TEXTFURLN);
			if(_marker[ch_sel].mark[2].on_off==OFF)
				Outchar12(105,462,"关",TEXTDIGITAL);
			else
				khz_ormhz(_marker[ch_sel].mark[2].freq,2);
		}
		else if(_softkeyid1==41)
		{	Outchar12(35,462,"频标 4:",TEXTFURLN);

			if(_marker[ch_sel].mark[3].on_off==ON)
				khz_ormhz(_marker[ch_sel].mark[3].freq,2);
			else
				Outchar12(105,462,"关",TEXTDIGITAL);
		}
		else if(_softkeyid1==42)
		{	Outchar12(35,462,"频标 5:",TEXTFURLN);
			if(_marker[ch_sel].mark[4].on_off==ON)
				khz_ormhz(_marker[ch_sel].mark[4].freq,2);
			else
				Outchar12(105,462,"关",TEXTDIGITAL);
		}
		else if(_softkeyid1==43)
		{	Outchar12(35,462,"频标 6:",TEXTFURLN);
			if(_marker[ch_sel].mark[5].on_off==ON)
				khz_ormhz(_marker[ch_sel].mark[5].freq,2);
			else
				Outchar12(105,462,"关",TEXTDIGITAL);
		}
		else if(_softkeyid1==44)
		{	Outchar12(35,462,"频标 7:",TEXTFURLN);
			if(_marker[ch_sel].mark[6].on_off==ON)
				khz_ormhz(_marker[ch_sel].mark[6].freq,2);
			else
				Outchar12(105,462,"关",TEXTDIGITAL);
		}
		else if(_softkeyid1==45)
		{	Outchar12(35,462,"频标 8:",TEXTFURLN);
			if(_marker[ch_sel].mark[7].on_off==ON)
				khz_ormhz(_marker[ch_sel].mark[7].freq,2);
			else
				Outchar12(105,462,"关",TEXTDIGITAL);
		}
	}
	else if(_softkeyid==4&&_softkeyid1==0)
		Outchar12(35,462,"更多频标",TEXTFURLN);
	else if(_softkeyid==6&&_softkeyid1==0)
		Outchar12(35,462,"频标函数",TEXTFURLN);
	else if(_softkeyid==7&&_softkeyid1==0)
		Outchar12(35,462,"频标搜索",TEXTFURLN);

	else if(_softkeyid==5)
	{	Outchar12(35,462,"所有频标:",TEXTFURLN);
		Outchar12(105,462,"关",TEXTDIGITAL);
		border_marker();
		for(i=0;i<3;i++)
		{
			//marker_show1(i);
			//mkr_show_mark_all(i);
			refr_menu_mkr_all(i);
		}
	}
	else if((_softkeyid1==61)||(_softkeyid1==62)||(_softkeyid1==63))
	{
		Outchar12(35,462,"频标 Δ:",TEXTFURLN);
		CLR_DIGITAL;
		for(i=0;i<3;i++)
		{
			if(_softkeyid1==60+i+1)
				if(_marker[ch_sel].marker_fun[i].on_off==OFF)
					Outchar12(105,462,"关",TEXTDIGITAL);
				else
				{	sprintf(msg,"%.2f",_marker[ch_sel].marker_fun[i].power);					
					if(_marker[ch_sel].marker_fun[i].power>-1e-3)
						Outchar12(118,462,msg,TEXTDIGITAL);
					else
						Outchar12(105,462,msg,TEXTDIGITAL);
//					init_cur_pwr(_marker[ch_sel].marker_fun[i].power);
					curs_flag=1;
					digital_en=1;
					cursor();
				}
		}
	}
	else if(_softkeyid==7)
	{
		if(_softkeyid1==71)
		{	Outchar12(35,462,"最大值 :",TEXTFURLN);
			if(_marker[ch_sel].max_mkr.on_off==OFF)
			{	CLR_DIGITAL;
				Outchar12(105,462,"关",TEXTDIGITAL);
			}
		}
		else if(_softkeyid1==72)
		{	Outchar12(35,462,"最小值 :",TEXTFURLN);
				if(_marker[ch_sel].min_mkr.on_off==OFF)
				{	CLR_DIGITAL;
					Outchar12(105,462,"关",TEXTDIGITAL);
				}
		}
		else if(_softkeyid1==73)
		{	clear_rect(105,462,540,475);
			Outchar12(35,462,"中心频标:",TEXTFURLN);
			if(_softkeyid2!=0&&(_lst_mkrkeys[ch_sel][2]==731||_lst_mkrkeys[ch_sel][2]==732||
			_lst_mkrkeys[ch_sel][2]==733))
			{	CLR_DIGITAL;
				sprintf(msg,"%.2f dB",_marker[ch_sel].cen_mkr.set_attenuate);
				if(_marker[ch_sel].cen_mkr.set_attenuate<0)
					Outchar12(105,462,msg,TEXTDIGITAL);
				else
					Outchar12(105+13,462,msg,TEXTDIGITAL);
			}
			else if(_softkeyid2==734)
			{	clear_rect(105,462,540,475);
				Outchar12(105,462,"关",TEXTDIGITAL);
			}
		}
		else if(_softkeyid1==74)
		{	Outchar12(35,462,"频标跟踪:",TEXTFURLN);
			if(_marker[ch_sel].marker_follow_flag==OFF){
				clear_rect(105,464,540,475);
				Outchar12(105,462,"关",TEXTDIGITAL);
			}
			else if(_marker[ch_sel].marker_follow_flag==ON){
				clear_rect(105,464,540,475);
				Outchar12(105,462,"开",TEXTDIGITAL);
			}
		}
	}

}

void border_marker()
{
	static int m1_3=-1;
	static int m4=-1;
	static int m5=-1;
	static int m6=-1;
	static int m7=-1;
	int i,t,s,p;

if((_softkeyid==1)||(_softkeyid==2)||(_softkeyid==3)||(_softkeyid==5))
{erase_smal_border(4);erase_smal_border(6);	erase_smal_border(7);
			erase_big_border(m5);

if(_softkeyid==m1_3+1)
{	if(_marker[ch_sel].mark[m1_3].on_off==OFF)
	{	erase_big_border(m1_3+1);

	}
	else if(_marker[ch_sel].mark[m1_3].on_off==ON)
	{
	}
}
else
 {	if	(_marker[ch_sel].mark[m1_3].on_off==OFF)
		{	erase_smal_border(m1_3+1);
		}
	else if(_marker[ch_sel].mark[m1_3].on_off==ON)
		{	erase_big_border(m1_3+1);
		}

}


	for(i=0;i<3;i++)
	{

			if(_softkeyid==i+1)
			{		m1_3=i;
			if(_marker[ch_sel].mark[i].on_off==OFF)
			{
				draw_smal_border(i+1);
			}
			else if(_marker[ch_sel].mark[i].on_off==ON)
			{
				draw_big_border(i+1);
			}
			}
	}



	if(_softkeyid==5)
	{
	   if	(_marker[ch_sel].mark[m1_3].on_off==OFF)
		{	erase_smal_border(m1_3+1);
		}
		else if(_marker[ch_sel].mark[m1_3].on_off==ON)

		{


		erase_big_border(m1_3+1);
		}
		draw_big_border(5);
		m5=5;
	}
}
else if(_softkeyid==4)
{
	if(_softkeyid1==m4+40+1)
	{	if(_marker[ch_sel].mark[m4+3].on_off==OFF)
		{	erase_big_border(m4+1);
		}
		else if(_marker[ch_sel].mark[m4+3].on_off==ON)
		{
		}
	}
	else
	{		if(_marker[ch_sel].mark[m4+3].on_off==OFF)
			{	erase_smal_border(m4+1);
			}
			else if(_marker[ch_sel].mark[m4+3].on_off==ON)
			{	erase_big_border(m4+1);
			}
	}
//	else if(_softkeyid1!=0)
	if(_softkeyid1!=0)
		for(t=0;t<5;t++)
			{if(_softkeyid1==40+t+1)
				{		m4=t;
					if(_marker[ch_sel].mark[t+3].on_off==OFF)
					{
						draw_smal_border(t+1);
					}
					else if(_marker[ch_sel].mark[t+3].on_off==ON)
					{
						draw_big_border(t+1);
					}
				}
			}
	else{erase_smal_border(6);	erase_smal_border(7);	 draw_smal_border(4);}

}
else if(_softkeyid==6)
{

		erase_big_border(m6);
	if(_softkeyid1!=0)
	for(s=1;s<4;s++)
		{if(_softkeyid1==60+s)
			{	m6=s;



				draw_big_border(s);
			}

		}
	else{ erase_smal_border(4);	erase_smal_border(7);	draw_smal_border(6);}

}
else if(_softkeyid==7)
{		erase_big_border(m7);
	if(_softkeyid1!=0){
		for(p=1;p<3;p++)
		{	if(_softkeyid1==70+p)
			{	m7=p;
				draw_big_border(p);
			}

		}
		if(_softkeyid1==74){
			draw_big_border(4);m7=4;
		}
		else if(_softkeyid1==73&&_softkeyid2==0){
			draw_big_border(3);m7=3;
		}
		else if(_softkeyid1==73&&_softkeyid2!=0){

			for(i=1;i<5;i++){
			erase_smal_border(i);
			if(	mark_last==i+730)
			draw_smal_border(i);

			}


		}
	}
	   else{erase_smal_border(4);	erase_smal_border(6); draw_smal_border(7);}
   }


}

void dispmenu_mark(int i)
{    char msg[20];
	 float freq1;
	 if(_marker[ch_sel].mark[i].freq>=1000000.0){
		freq1=_marker[ch_sel].mark[i].freq/1000000.0;
//		sprintf(msg,"%");
	 }
	 else if(_marker[ch_sel].mark[i].freq<1000000.0&&_marker[ch_sel].mark[i].freq>=1000.0){
		  freq1=_marker[ch_sel].mark[i].freq/1000.0;
	 }
		sprintf(msg,"%f",freq1);
		msg[7]='\0';
		disable();
		setcolor(TEXTMENU);
		if(i<=3)
		{
			outtextxy(B_LX+4,i*59+8-5+1+18,msg);
			if(_marker[ch_sel].mark[i].freq>=1000000.0)
				outtextxy(B_LX+60,i*59+8-5+1+18,"MHz");
			else if(_marker[ch_sel].mark[i].freq<1000000.0&&_marker[ch_sel].mark[i].freq>=1000.0)
				outtextxy(B_LX+60,i*59+8-5+1+18,"kHz");
		}
		else if(i>3)
		{	outtextxy(B_LX+4,(i-3)*59+8-5+1+18,msg);
//			outtextxy(B_LX+56,(i-3)*59+8-5+1+18,"MHz");
			if(_marker[ch_sel].mark[i].freq>=1000000.0)
			outtextxy(B_LX+56,(i-3)*59+8-5+1+18,"MHz");
			else if(_marker[ch_sel].mark[i].freq<1000000.0&&_marker[ch_sel].mark[i].freq>=1000.0)
				outtextxy(B_LX+56,(i-3)*59+8-5+1+18,"kHz");

		}
}
void mark_fun(float attenuate,float max_power,int i_max,long &freqr,long &freql)
{
	if(i_max<0||i_max>_status[chs].sweep_points-1)
		return;
	int  j=i_max;
	long freq_step=(double)_freq[chs].freq_width/(_status[chs].sweep_points-1);

	while(--j>=0){
		if((conv(chs==0?y_a[j]:y_b[j])-max_power-attenuate)<=0)
		{
//			freql=_freq[chs].start_freq+j*freq_step;
			freql = _freq[chs].start_freq+(j)*freq_step +
				(double)(attenuate + max_power - conv(chs==0?y_a[j]:y_b[j]))/
				(double)(conv(chs==0?y_a[j+1]:y_b[j+1])-conv(chs==0?y_a[j]:y_b[j]))*freq_step;
//			printf("%d %d %ld %ld %ld %.2f %.2f %.2f %.2f\n",i_max,j,_freq[chs].start_freq+j*freq_step,
//				_freq[chs].start_freq+(j+1)*freq_step,freql,conv(y_a[22]),conv(y_a[23]),conv(y_a[24]),
//				conv(y_a[25]));
			break;
		}
	}
	if(j==-1)
		freql=0;
	j=i_max;
	while(++j<_status[chs].sweep_points){
		if(conv(chs==0?y_a[j]:y_b[j])-max_power-attenuate<=0)
		{
//			freqr=_freq[chs].start_freq+j*freq_step;
			freqr = _freq[chs].start_freq+(j-1)*freq_step +
				(double)(attenuate +max_power - conv(chs==0?y_a[j-1]:y_b[j-1]))/
				(conv(chs==0?y_a[j]:y_b[j])-conv(chs==0?y_a[j-1]:y_b[j-1]))*freq_step;
			break;
		}
	}
	if(j==_status[chs].sweep_points)
		freqr=0;
//	printf("%d ",j);
//	printf("%ld ",freql);
//	printf("%ld\n ",freqr);
}
BOOL StoreMarker()
{
	FILE* fp;
	if((fp = fopen("Marker.dat","wb"))==NULL){
		return FALSE;
	}
	fwrite(_marker,sizeof(_MARKER),2,fp);
	fclose(fp);
	return TRUE;
}

⌨️ 快捷键说明

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