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

📄 ch.cpp

📁 串口可交换程序
💻 CPP
字号:
#include <graphics.h>
#include <stdio.h>
#include <string.h>

#include "freqkey.h"
#include "keydef.h"
#include "g_func.h"
#include "global.h"
#include "ch.h"

const char *cha[]={"踪迹  A","幅频特性","功率测量","","","","",""};
const char *v_width[]={"视频带宽","自动","10Hz","100Hz","1KHz","","","返   回"};
const char *chb[]={"踪迹  B","幅频特性","功率测量","","","","",""};

void StoreData(int i);

void chab_hardkey(KEY key)
{	_softkeyid1=0;
	digital_en=0;
	curs_flag=0;
	if(key=='a')
	{	_keyid=CHA;
		ch_sel=0;
	   if(alternative==OFF){
			_chab[0].on_off=ON;
			_chab[1].on_off=OFF;
		}
		disp_menu12((char **)cha,7);
	}
	else if(key=='b')
	{	_keyid=CHB;
		 ch_sel=1;
		if(alternative==OFF){
			_chab[1].on_off=ON;
			_chab[0].on_off=OFF;
		}

		disp_menu12((char **)chb,7);
	}
	if(_lst_chkey[ch_sel][0]==0)
	{
	_softkeyid=4;
	refresh_updown_chab();
	if(_chab[ch_sel].on_off==OFF)
	Outchar12(105,462,"关",TEXTDIGITAL);
	else if(_chab[ch_sel].on_off==ON)
	Outchar12(105,462,"开",TEXTDIGITAL);

	}
	else
	{
		_softkeyid=_lst_chkey[ch_sel][0];

		if(_softkeyid!=4)
		{	refresh_updown_chab();
			show();


		}
		else if(_softkeyid==4)
			{	refresh_updown_chab();
				//show();
				if(_chab[ch_sel].on_off==OFF)
				Outchar12(105,462,"关",TEXTFURLN);
				else if(_chab[ch_sel].on_off==ON)
				Outchar12(105,462,"开",TEXTFURLN);
			}
	}
	refresh_up();				//上边的显示
				//右边和下边的处理显示
	vision();
	border_ch();
	stat_xch=1;
	_softkeyid=0;			//the left side
}




void chab_softkey(KEY key)
{switch (key)
	{
	case F1:
		if(_softkeyid==6)
		 {
/*			_softkeyid1=61;
			_lst_chkey[ch_sel][1]=1;
			_chab[ch_sel].bandwidth=0;
			cmd_word&=0xffe7;
//			cmd_word|=0x
			outport(0x370,cmd_word);*/
		 }
		else{
			_softkeyid=1;
			_lst_chkey[ch_sel][0]=1;
			_chab[ch_sel].flag = 0;
			stat_xch = TRUE;
		}
		refresh_updown_chab();border_ch();
		break;

	case F2:
		if(_softkeyid==6)
		{
/*			_softkeyid1=62;
			_lst_chkey[ch_sel][1]=2;
			_chab[ch_sel].bandwidth=10;
			cmd_word&=0xffe7;
//			cmd_word|=0x
			outport(0x370,cmd_word);*/
		}
		else{
			_softkeyid=2;
			_lst_chkey[ch_sel][0]=2;
			_chab[ch_sel].flag = 1;
			stat_xch = TRUE;
		}refresh_updown_chab();border_ch();
		break;
	case F3:
		if(_softkeyid==6)
		{
/*			_softkeyid1=63;
			_lst_chkey[ch_sel][1]=3;
			_chab[ch_sel].bandwidth=100;
			cmd_word&=0xffe7;
			cmd_word|=0x08;
			outport(0x370,cmd_word);
			refresh_updown_chab();
			border_ch();*/
		}
		//else{
		//	_softkeyid=3;
		//	_lst_chkey[ch_sel][0]=3;
		//}
		break;
	case F4:
		if(_softkeyid==6)
		{
/*			_softkeyid1=64;
			_lst_chkey[ch_sel][1]=4;
			_chab[ch_sel].bandwidth=1000;
			cmd_word&=0xffe7;
			cmd_word|=0x10;
			outport(0x370,cmd_word);
			refresh_updown_chab();*/
		}
		else
		{_softkeyid=4;
		_lst_chkey[ch_sel][0]=4;
		if(_chab[ch_sel].on_off==ON){
			_chab[ch_sel].on_off=OFF;
			if(alternative)
				StoreData(ch_sel);
		}
		else
			_chab[ch_sel].on_off=ON;
		stat_xch = TRUE;
		refresh_updown_chab();
		if(_chab[ch_sel].on_off==OFF)
			Outchar12(105,462,"关",TEXTFURLN);
		else if(_chab[ch_sel].on_off==ON)
			Outchar12(105,462,"开",TEXTFURLN);
		}
		border_ch();
		break;

	case F6:
/*		if(_softkeyid==6)
			break;
		_softkeyid=6;
		_lst_chkey[ch_sel][0]=6;
		if(_lst_chkey[ch_sel][1]==0){
			if(_chab[ch_sel].bandwidth==0)
				_softkeyid1=61;
			if(_chab[ch_sel].bandwidth==10)
				_softkeyid1=62;
			if(_chab[ch_sel].bandwidth==100)
				_softkeyid1=63;
			if(_chab[ch_sel].bandwidth==1000)
				_softkeyid1=64;
		}
		else
		_softkeyid1=60+_lst_chkey[ch_sel][1];

		refresh_updown_chab();
		disp_menu12((char**)v_width,7);	border_ch();*/
		break;
	case F7:
		if(_softkeyid==6)
		{

			_softkeyid1=67;
			refresh_updown_chab();
			_softkeyid1=0;
			disp_menu12((char **)cha,7);
			border_ch();
			_softkeyid=0;

			show();
		}
		break;
	}
	
}
void refresh_updown_chab()
{                char msg[20];
					int i;
		CLR_LN4;
		refr_ln3();
		if(_softkeyid==0)
		Outchar12(35,462,"踪  迹:",TEXTFURLN);
		if(_softkeyid==1)
		{	clear_rect(35,3,499,29);
//			_chab[ch_sel].flag=0;			///这里的flag用来存按下的是哪个键,以便refresh_up使用并显示
			Outchar12(35,462,"幅频特性",TEXTFURLN);
			refresh_up();

		}
		else if(_softkeyid==2)
		{	clear_rect(35,3,499,29);
//			_chab[ch_sel].flag=1;
			Outchar12(35,462,"功率测量",TEXTFURLN);
			refresh_up();

		}
		else if(_softkeyid==3)
		{	clear_rect(35,3,499,29);
//			_chab[ch_sel].flag=2;
			Outchar12(35,462,"转换损耗",TEXTFURLN);
			refresh_up();
		}

		else if(_softkeyid==4)
		{	clear_rect(35,3,499,29);

			Outchar12(35,462,"踪  迹:",TEXTFURLN);

			show();
			refresh_up();
		}

		else if((_softkeyid==6)||(_softkeyid1==61)||(_softkeyid1==62)||(_softkeyid1==63)||(_softkeyid1==64)||(_softkeyid1==67))
		{
			Outchar12(35,462,"视频带宽:",TEXTFURLN);
			if(_softkeyid1==61)
			{
				if(_chab[ch_sel].bandwidth==0)
				Outchar12(105,462,"自动",TEXTFURLN);
			}
			else if((_softkeyid1==62)||(_softkeyid1==63)||(_softkeyid1==64))
			{
			
				for(i=1;i++;i<5)
				{	if(_softkeyid1==60+i)
					{
					sprintf(msg,"%d",_chab[ch_sel].bandwidth);
					strcat(msg,"Hz");
					Outchar12(105,462,msg,TEXTDIGITAL );
					}
				}
			}
			else if(_softkeyid1==67||_softkeyid==6)
			{	 clear_rect(105,462,540,475);
				 clear_rect(105,462,540,475);
				//Outchar12(35,462,"视频带宽:",TEXTFURLN);
				
				 if(_chab[ch_sel].bandwidth==0)
					Outchar12(105,462,"自动",TEXTFURLN);

				else if(_chab[ch_sel].bandwidth==10)
				{	sprintf(msg,"%d",_chab[ch_sel].bandwidth);
					strcat(msg,"Hz");
					Outchar12(105,462,msg,TEXTDIGITAL);
				}
				else if(_chab[ch_sel].bandwidth==100)
				{	sprintf(msg,"%d",_chab[ch_sel].bandwidth);
					strcat(msg,"Hz");
					Outchar12(105,462,msg,TEXTDIGITAL);
				}
				else if(_chab[ch_sel].bandwidth==1000)
				{	sprintf(msg,"%d",_chab[ch_sel].bandwidth);
					strcat(msg,"Hz");
					Outchar12(105,462,msg,TEXTDIGITAL);
				}

				
			}

			refresh_up();
		}


}



void show()
{
	clear_rect(B_LX+2,4*59+8,B_RX-2,4*59+28);
	if(_chab[ch_sel].on_off==OFF)
	{
//	disable();
//	setfillstyle(SOLID_FILL,TEXTMENUBK);
//	bar(B_LX,4*59+8-5,B_RX-3,4*59+8-5+20);
	draw_small_menu(4,1,"踪迹 关");
//	Outchar45(B_LX+10,4*59+8-5+3,"踪迹  ",TEXTMENU);
//	Outchar12(B_LX+60,4*59+8-5+3,"关",TEXTDIGITAL);
	//Outchar12(105,462,"关",TEXTFURLN);
	}
	else if(_chab[ch_sel].on_off==ON)
	{
//	clear_rect(B_LX,4*59+8-5,B_RX-3,4*59+8-5+20);
//	disable();
//	setfillstyle(SOLID_FILL,TEXTMENUBK);
//	bar(B_LX,4*59+8-5,B_RX-3,4*59+8-5+20);
//	Outchar45(B_LX+10,4*59+8-5+3,"踪迹  ",TEXTMENU);
//	Outchar12(B_LX+60,4*59+8-5+3,"开",TEXTDIGITAL);
	//Outchar12(105,462,"开",TEXTFURLN);
	draw_small_menu(4,1,"踪迹 开");
	}
}
void border_ch()
{static int ch1_4;
static int ch6;

int i;
if((_softkeyid==1)||(_softkeyid==2)||(_softkeyid==3)||(_softkeyid==4))
{	erase_smal_border(ch1_4);
	for(i=1;i<5;i++)
		{if(_softkeyid==i)
			{
			draw_smal_border(i);
			ch1_4=i;
			}
		}
}
else if(_softkeyid==6&&_softkeyid1==0)
{	erase_smal_border(ch1_4);
	draw_smal_border(6);
	ch1_4=6;
}
else if(_softkeyid==6&&_softkeyid1!=0)
{	erase_smal_border(ch6);
	for(i=1;i<5;i++)
	{	if(_softkeyid1==60+i)
			{setcolor(2);
			draw_smal_border(i);
			ch6=i;
			}
	}

}
}
void StoreData(int i)
{
	FILE *fp;
	if(i==0) {
		if((fp = fopen("chadata.dat","wb+"))==NULL){
			return;
		}
		fwrite(y_a,sizeof(int),_status[0].sweep_points,fp);
		fclose(fp);
	}
	else if(i==1) {
		if((fp = fopen("chbdata.dat","wb+"))==NULL){
			return;
		}
		fwrite(y_b,sizeof(int),_status[1].sweep_points,fp);
		fclose(fp);
	}
}

⌨️ 快捷键说明

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