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

📄 sweepkey.cpp

📁 串口可交换程序
💻 CPP
字号:
#include <graphics.h>
#include <stdio.h>
#include <string.h>
#include  "keydef.h"
#include "g_func.h"
#include "global.h"
#include "updown.h"
#include "sweepkey.h"
#include "cursor.h"
#include "numkeyp.h"

const char *sweep[]={"扫  描","","","扫描点数>>","触发方式>>","","",""};
const char *sweep_t[]={"输入数值","ms","s","","","","","返回"};
const char *swp_point[]={"扫描点数"," 51 "," 101 "," 251 "," 501 ","","","返   回"};
const char *trig_way[]={"触发方式","重   复","保   持","","","","","返   回"};
void flags_s2()///显示开关程序
{		if(alternative==OFF)
		{
//			clear_rect(105,462,499,475);
			Outchar12(B_LX+12,5*59+22,"开",TEXTMENU);
			Outchar12(B_RX-25,5*59+22,"关",TEXTDIGITAL);
		}

		else if(alternative==ON)
		{
//			clear_rect(105,462,499,472);
			Outchar12(B_LX+12,5*59+22,"开",TEXTDIGITAL);
			Outchar12(B_RX-25,5*59+22,"关",TEXTMENU);
		}
}
void flags_s1()///显示开关程序         written by maoweiying
{		if(_sweep[ch_sel].flag1==0)
		{
//			clear_rect(105,462,499,475);
			Outchar12(B_LX+10,2*59+22,"手动",TEXTMENU);
			Outchar12(B_RX-38,2*59+22,"自动",TEXTDIGITAL);
		}

		else if(_sweep[ch_sel].flag1==1)
		{
//			clear_rect(105,462,499,472);
			Outchar12(B_LX+10,2*59+22,"手动",TEXTDIGITAL);
			Outchar12(B_RX-38,2*59+22,"自动",TEXTMENU);
		}
}
void sweep_hardkey()
{
	_keyid=SWEEP;
	rst_num_mem();
/*		  if(_chab[ch_sel].on_off==1&&_chab[!ch_sel].on_off==0)
			ch_sel=!ch_sel;


	  else  if(_chab[ch_sel].on_off==1&&count==0&&_chab[!ch_sel].on_off==1)
	   {		ch_sel=!ch_sel;
			count++;
	   }
*/
	refresh_up();
	vision();
	disp_menu12((char **)sweep,7);
	draw_big_menu(1,2,1,0,0,"扫描时间");
	ms_ors();
	draw_big_menu(2,2,1,0,0,"扫描方式");
	flags_s1();
	draw_big_menu(5,2,1,0,0,"交替扫描");
	flags_s2();
	if(_lst_swpkey[ch_sel][0]==0)
	{	if(_sweep[ch_sel].flag1==1)
		{    _softkeyid=2;
			clear_rect(35,462,499,475);
			refr_swp_f2();
		}
		else if(_sweep[ch_sel].flag1==0)
		{	_softkeyid=1;

			clear_rect(35,462,499,475);
			Outchar12(35,462,"扫描时间:",TEXTFURLN);
		}
	}
	else
	{	_softkeyid=_lst_swpkey[ch_sel][0];

	}
	if(_softkeyid==2&&_sweep[ch_sel].flag1==1){
		init_cur_swpp(_sweep[ch_sel].swp_pc);
	}
	else if(_softkeyid==1)
		init_cur_swp(_sweep[ch_sel].sweep_time);
	if(_sweep[ch_sel].flag1==0&&_softkeyid==1)
	{	digital_en=1;
		curs_flag=1;
		cursor();

	}
	else
	{  digital_en=0;
		curs_flag=0;
	}
	border_sweep();
	refresh_updown_s();
}



void sweep_softkey(KEY key)
{switch(key)
   {
	case F1:   
/*		
		 if(_sweep[ch_sel].flag1==1)// 手动
		{		digital_en=1;
				_sweep[ch_sel].flag1=0;
				flags_s1();
		}
		else if(_sweep[ch_sel].flag1==0)// 自动
		{	 
			digital_en=1;
	
		}
*/
		if(_softkeyid==3){
				_softkeyid1=31;
				_lst_statkey[ch_sel][1]=1;
				_status[ch_sel].sweep_points=51;
				
			
				sokey1();
				stat_xch=1;
			
				

		
			}
		else if(_softkeyid==4){
//				_softkeyid=2;
				_softkeyid1=41;
				_lst_statkey[ch_sel][2]=1;
				_status[ch_sel].trig_way=0;
				stat_xch=1;
				_status[ch_sel].keep_start=1;
				refresh_updown_s();
//				refresh_down_status();
//				border_status();
				erase_smal_border(1);
				erase_smal_border(2);
				draw_smal_border(1);
		
			}
		else if(_softkeyid==1&&index>0)                      //在按下是f1或其他情况下的f1功能   written by maoweiying
			{	_softkeyid1=11;
				set_sweep_time();
				_softkeyid=1;
				_softkeyid1=0;
				disp_menu12((char **)sweep,7);
				draw_big_menu(1,2,1,0,0,"扫描时间");
				ms_ors();
				draw_big_menu(2,2,1,0,0,"扫描方式");
				flags_s1();
				draw_big_menu(5,2,1,0,0,"交替扫描");
				flags_s2();
				stat_xch = 1;
				draw_big_border(1);
				init_cur_swp(_sweep[ch_sel].sweep_time);
				refresh_updown_s();
			}
		else
			{ 	_softkeyid=1;

				_lst_swpkey[ch_sel][0]=1;
				if(_sweep[ch_sel].flag1==1)// 手动
				{		digital_en=1;
						_sweep[ch_sel].flag1=0;
						flags_s1();
				}	
				else if(_sweep[ch_sel].flag1==0)// 自动
				{	 
					digital_en=1;
	
				}
					set_sweep_time();
//			disp_menu12((char **)sweep_t,7);
				refresh_updown_s();
				border_sweep();
			}
	
	

			break;
	case F2:
		
		if(_softkeyid==3){
			if(_freq[ch_sel].freq_width<100)
					return;
				_softkeyid1=32;
				_lst_statkey[ch_sel][1]=2;
				_status[ch_sel].sweep_points=101;
			
					sokey1();
				stat_xch=1;
				

					
		}
		else if(_softkeyid==4){
		
//				_softkeyid=2;
				_softkeyid1=42;
				_lst_statkey[ch_sel][2]=2;
				_status[ch_sel].trig_way=1;
				stat_xch=1;
				_status[ch_sel].keep_start=1;
				refresh_updown_s();
//				refresh_down_status();
//				border_status();
				erase_smal_border(1);
				erase_smal_border(2);
				draw_smal_border(2);
		
		
		}
		else if(_softkeyid==1&&index>0)                       //在按下是f2或其他情况下的f2功能   written by maoweiying
		{  	_softkeyid1=12;
			set_sweep_time();
			_softkeyid=1;
			_softkeyid1=0;

			disp_menu12((char **)sweep,7);
	draw_big_menu(1,2,1,0,0,"扫描时间");
	ms_ors();
	draw_big_menu(2,2,1,0,0,"扫描方式");
	flags_s1();
	draw_big_menu(5,2,1,0,0,"交替扫描");
	flags_s2();

//			disable();
///			setfillstyle(SOLID_FILL,TEXTMENUBK);
//			bar(B_LX,139,B_RX-3,161);
//			flags_s1();
//			disable();
//			setfillstyle(SOLID_FILL,TEXTMENUBK);
//			bar(B_LX,318,B_RX-3,338);
//			flags_s2();
//			disable();
//			setfillstyle(SOLID_FILL,TEXTMENUBK);
//			bar(B_LX,80,B_RX-3,102);
//			ms_ors();
			draw_big_border(1);
			stat_xch = 1;
			init_cur_swp(_sweep[ch_sel].sweep_time);
			refresh_updown_s();
		}
		else
		{
			if(_freq[ch_sel].is_dot_freq){
				CLR_LN4;
				Outchar12(35,462,"现在点频,请切换状态",TEXTDIGITAL);
				break;
			}
			_softkeyid=2;
			_lst_swpkey[ch_sel][0]=2;
			init_cur_swpp(_sweep[ch_sel].swp_pc);

			digital_en=0;
			curs_flag=0;	//add at 04-05-31,lingyi

			flags_s2();
			if(_sweep[ch_sel].flag1==1){
				_sweep[ch_sel].flag1=0;

			}
			else {
				_sweep[ch_sel].flag1=1;
			}
			stat_xch = 1;
			 flags_s1();
			 refresh_updown_s();
			border_sweep();
			//printf("a");
		}
		break;
	case F3:
			if(_softkeyid==3&&_softkeyid1!=0)
			{
				if(_freq[ch_sel].freq_width<250)
					return;
				_softkeyid1=33;
				_lst_statkey[ch_sel][1]=3;
				_status[ch_sel].sweep_points=251;
				stat_xch=1;
				
				sokey1();
				
			}
		
			else
			{	_softkeyid=3;
				_lst_statkey[ch_sel][0]=1;
				if(_lst_statkey[ch_sel][1]==0){
					if(_status[ch_sel].sweep_points==51)
						_softkeyid1=31;
					if(_status[ch_sel].sweep_points==101)
						_softkeyid1=32;
					if(_status[ch_sel].sweep_points==251)
						_softkeyid1=33;
					if(_status[ch_sel].sweep_points==501)
						_softkeyid1=34;
				}
				else
					_softkeyid1=_lst_statkey[ch_sel][1]+30;
//				refresh_down_status();
				disp_menu12((char **)swp_point,7);
				draw_smal_border(_softkeyid1-10);
//				border_status();
			}	
			digital_en=0;
			break;
	case F4:
			if(_softkeyid==3&&_softkeyid1!=0)
			{
				if(_freq[ch_sel].freq_width<500)
					return;
				_softkeyid1=34;
				_lst_statkey[ch_sel][1]=4;
				_status[ch_sel].sweep_points=501;
				stat_xch=1;
				
				sokey1();

			}

		
			else
			{	_softkeyid=4;
				_lst_statkey[ch_sel][0]=2;
				 _softkeyid1=_status[ch_sel].trig_way+41;
//				refresh_down_status();
				disp_menu12((char **)trig_way,7);
				draw_smal_border(_softkeyid1-40);
			}
			refresh_updown_s();
			digital_en=0;
			break;
case F5:
	if(_softkeyid==1&&index>0)
		{
				 digital_en=0;
			curs_flag=0; //add at 04-05-31
		}
		else if(_softkeyid1==0)
		{
			_softkeyid=5;
			_lst_swpkey[ch_sel][0]=5;
			digital_en=0;
			curs_flag=0; //add at 04-05-31
			disable();
//			setfillstyle(SOLID_FILL,TEXTMENUBK);
//			bar(B_LX,141,B_RX-3,161);

			flags_s1();
			if(alternative==OFF)
			{	   alternative=ON;

				_chab[ch_sel].on_off=ON;
				_chab[1-ch_sel].on_off=ON;
			}
			else if(alternative==ON){
					 _chab[1-ch_sel].on_off=OFF;
					 alternative=OFF;
//					 ch_sel=chs;
			}
			stat_xch = TRUE;
			flags_s2();
			refresh_updown_s();
			refresh_up();
			vision();
			border_sweep();

  		}
			break;
 case F7:
		if(_softkeyid==1||_softkeyid==3||_softkeyid==4)            			
		{
			
			_softkeyid1=0;
			digital_en=1;
			curs_flag=1;	//add at 04-05-31,lingyi
			rst_num_mem();
disp_menu12((char **)sweep,7);
			draw_big_menu(1,2,1,0,0,"扫描时间");
			ms_ors();
			draw_big_menu(2,2,1,0,0,"扫描方式");
			flags_s1();
			draw_big_menu(5,2,1,0,0,"交替扫描");
			flags_s2();
			stat_xch = 1;
			
			init_cur_swp(_sweep[ch_sel].sweep_time);
			if(_softkeyid==1)
				draw_big_border(1);
			else if(_softkeyid==3)
				draw_smal_border(3);
			else if(_softkeyid==4)
				draw_smal_border(4);

			_softkeyid=0;

/*			disp_menu12((char**)sweep,7);
			draw_big_menu(1,2,1,0,0,"扫描时间","50  Ms");
			draw_big_menu(2,1,1,0,0,"扫描方式");
			draw_big_menu(5,1,1,0,0,"交替扫描");

			disable();
			setfillstyle(SOLID_FILL,TEXTMENUBK);
			bar(B_LX,139,B_RX-3,159);
			flags_s1();
			disable();
			setfillstyle(SOLID_FILL,TEXTMENUBK);
			bar(B_LX,318,B_RX-3,338);
			flags_s2();
			disable();
			setfillstyle(SOLID_FILL,TEXTMENUBK);
			bar(B_LX,80,B_RX-3,102);
			ms_ors();
			border_sweep();*/
			refresh_updown_s();
		}
		break;

}
}

void refresh_updown_s()
{
	char msg[20];

	if((_softkeyid==1)||(_softkeyid1==11)||(_softkeyid1==12))
	{
		CLR_LN4;
		Outchar12(35,462,"扫描时间:",TEXTFURLN);
		clear_rect(105,462,499,475);
		clear_rect(105,462,499,475);
		ms_ors();
		init_cur_swp(_sweep[ch_sel].sweep_time);
	}
	else  if(_softkeyid==2)
	{
		CLR_LN4;
		if(_sweep[ch_sel].flag1==1)
		{   refr_swp_f2();

		}
		else if(_sweep[ch_sel].flag1==0)
		{	 Outchar12(35,462,"扫描方式:",TEXTFURLN);
			Outchar12(105,462,"自动",TEXTDIGITAL);
		}
	}
	else if(_softkeyid==3){
		
		CLR_LN4;
		Outchar12(35,462,"扫描点数:",TEXTFURLN);
		if(_status[ch_sel].sweep_points==51)
			Outchar12(105,462,"51",TEXTDIGITAL);
		else if(_status[ch_sel].sweep_points==101)
			Outchar12(105,462,"101",TEXTDIGITAL);
		else if(_status[ch_sel].sweep_points==251)
			Outchar12(105,462,"251",TEXTDIGITAL);
		else if(_status[ch_sel].sweep_points==501)
			Outchar12(105,462,"501",TEXTDIGITAL);
	}
	else if(_softkeyid==4){
		CLR_LN4;
		Outchar12(35,462,"扫描方式:",TEXTFURLN);
		if(_status[ch_sel].trig_way==0)
			Outchar12(105,462,"重复",TEXTDIGITAL);
		else if(_status[ch_sel].trig_way==1)
			Outchar12(105,462,"保持",TEXTDIGITAL);
	}
	else  if(_softkeyid==5)
	{
		CLR_LN4;
		if(/*_sweep[ch_sel].flag2*/alternative==OFF)
		{
			Outchar12(35,462,"交替扫描:",TEXTFURLN);
			Outchar12(105,462,"关",TEXTDIGITAL);

		}
		else if(/*_sweep[ch_sel].flag2*/alternative==ON)
		{
			Outchar12(35,462,"起始频率:                终止频率:",ch_sel==0?TEXTSEDLN:TEXTFRTLN);
			if(_freq[1-ch_sel].start_freq<1000000){
				sprintf(msg,"%.3f",(double)_freq[1-ch_sel].start_freq/1000);
				disable();
				setcolor(ch_sel==0?TEXTSEDLN:TEXTFRTLN);
				outtextxy(230,464,"KHz");
			}
			else{
				sprintf(msg,"%.6f",(double)_freq[1-ch_sel].start_freq/1000000);
				disable();
				setcolor(ch_sel==0?TEXTSEDLN:TEXTFRTLN);
				outtextxy(230,464,"MHz");
			}
			Outchar12(105,462,msg,ch_sel==0?TEXTSEDLN:TEXTFRTLN);

			if(_freq[1].end_freq<1000000){
				sprintf(msg,"%.3f",(double)_freq[1-ch_sel].end_freq/1000);
				disable();
				setcolor(ch_sel==0?TEXTSEDLN:TEXTFRTLN);
				outtextxy(500,464,"KHz");
			}
			else{
				sprintf(msg,"%.6f",(double)_freq[1-ch_sel].end_freq/1000000);
				disable();
				setcolor(ch_sel==0?TEXTSEDLN:TEXTFRTLN);
				outtextxy(500,464,"MHz");
			}
			Outchar12(375,462,msg,ch_sel==0?TEXTSEDLN:TEXTFRTLN);

//			khz_ormhz(_freq[1].start_freq,2);
//			khz_ormhz(_freq[1].end_freq,3);
		}
	}
}
void ms_ors()
{
	char msg[20];  float sp;
	setfillstyle(SOLID_FILL,TEXTMENUBK);
	bar(B_LX+2,1*59+20,B_RX-2,1*59+40);
	bar(B_LX+2,1*59+20,B_RX-2,1*59+40);
	if(50<=_sweep[ch_sel].sweep_time && _sweep[ch_sel].sweep_time<1000)
	{
		sprintf(msg,"%d",_sweep[ch_sel].sweep_time);
		setcolor(TEXTMENU);
		outtextxy(B_LX+10,85,msg);
		setcolor(TEXTMENU);
		outtextxy(B_RX-30,85,"ms");
		clear_rect(105,462,540,475);
		strcat(msg," ms");
		Outchar12(105,462,msg,TEXTDIGITAL);
	}
	else if(1000<=_sweep[ch_sel].sweep_time)
	{
		sp=_sweep[ch_sel].sweep_time;
		sp/=1000;
		sprintf(msg,"%.3f",sp);
		setcolor(TEXTMENU);
		outtextxy(B_LX+10,85,msg);
		setcolor(TEXTMENU);
		outtextxy(B_RX-22,85,"s");
		clear_rect(105,462,499,475);
		strcat(msg," s");
		Outchar12(105,462,msg,TEXTDIGITAL);
	}
}
void border_sweep()
{static int s2_3=-1;    int i;
if((_softkeyid==2)||(_softkeyid==5))
{		erase_big_border(s2_3);
		erase_big_border(1);
		erase_big_border(5);
		erase_smal_border(3);
		erase_smal_border(4);
	if(_softkeyid==2)
	 {	i=2;
		setcolor(2);
		draw_big_border(2);
		s2_3=i;
	}
	else if(_softkeyid==5)
	{	i=5;
		setcolor(2);
		draw_big_border(5);
		s2_3=i;
	 }

}
else if(_softkeyid==1)
{		erase_big_border(2);
		erase_big_border(5);
			draw_big_border(1);

	   }
}
void sokey1()
{

				_softkeyid1=0;
				disp_menu12((char **)sweep,7);
		
			draw_big_menu(1,2,1,0,0,"扫描时间");
			ms_ors();	
			refresh_updown_s();
			draw_big_menu(2,2,1,0,0,"扫描方式");
			flags_s1();
			draw_big_menu(5,2,1,0,0,"交替扫描");
			flags_s2();
				draw_smal_border(_softkeyid);

				_softkeyid=0;

}

⌨️ 快捷键说明

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