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

📄 powerkey.cpp

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

const char *power[]={"功  率","输出功率","功率扫描>>","","","","",""};
const char *sweep_p[]={"功率扫描","起始功率","终止功率","","","","","返   回"};
void flags_p()///显示开关程序         written by maoweiying
{		if(_power[ch_sel].flag==0)
		{
			Outchar12(B_LX+10,5*59+22,"开",TEXTMENU);
			Outchar12(B_RX-25,5*59+22,"关",TEXTDIGITAL);
		}

		else if(_power[ch_sel].flag==1)
		{
			Outchar12(B_LX+10,5*59+22,"开",TEXTDIGITAL);
			Outchar12(B_RX-25,5*59+22,"关",TEXTMENU);
		}
}
void power_hardkey()
{
	_keyid=POWER;
/*		  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();
	if(_lst_pwrkeys[ch_sel][0]==0)
		_softkeyid=1;
	else
		_softkeyid=_lst_pwrkeys[ch_sel][0];
	_softkeyid1=0;
	rst_num_mem();
	if(_softkeyid==1){
		digital_en=1;
		curs_flag=1;
	}
	else{
		digital_en=0;
		curs_flag=0;
	}
	disp_menu12((char **)power,7);
	draw_big_menu(5,2,1,1,0,"射频功率","","");
	flags_p();
	border_power();
	refresh_down_p();
	vision();
}
void power_softkey(KEY key)
{
	switch (key)
	{
	  case F1:
		if(_softkeyid==2&&_softkeyid1!=0)      //在按下是f2或其他情况下的f1功能   written by maoweiying
		{ 	_softkeyid1=21;
			_lst_pwrkeys[ch_sel][1]=1;
			rst_num_mem();
			digital_en=1;
			curs_flag=1;
		}
		else
		{	_softkeyid=1;
			_lst_pwrkeys[ch_sel][0]=1;
			rst_num_mem();
			digital_en=1;
			curs_flag=1;
			_power[ch_sel].power_sweep=OFF;
		}
		refresh_down_p();
		border_power();

		break;
	  case F2:
		if(_softkeyid==2&&_softkeyid1!=0)       //在按下是f2或其他情况下的f2功能   written by maoweiying
		{  	_softkeyid1=22;
			_lst_pwrkeys[ch_sel][1]=2;
			rst_num_mem();
			digital_en=1;
			curs_flag=1;
		}
		else
		{	_softkeyid=2;
			_lst_pwrkeys[ch_sel][0]=2;
			if(_lst_pwrkeys[ch_sel][1]==0)
				_softkeyid1=21;
			else
				_softkeyid1=20+_lst_pwrkeys[ch_sel][1];
			rst_num_mem();
			digital_en=1;
			curs_flag=1;
			disp_menu12((char**)sweep_p,7);
			init_cur_pwr(_power[ch_sel].end_power);
		}
		refresh_down_p();
		border_power();
		break;
	  case F3:
		break;
	  case F4:
		break;
	  case F5:
		if(_softkeyid==2&&_softkeyid1!=0)
		{          digital_en=0;
		}
		else
		{	_softkeyid=5;                          //f5的开关功能   written by maoweiying
			_lst_pwrkeys[ch_sel][0]=5;
			digital_en=0;
			curs_flag=0;
			onoff_p();
			stat_xch=1;
			border_power();
			refresh_down_p();
		}
		break;
	  case F6:
		break;
	  case F7:
		if(_softkeyid==2)            			//在按下是f2情况下f7的返回功能   written by maoweiying
		{
		//	_softkeyid=1;
			_softkeyid1=0;
			rst_num_mem();
			digital_en=0;
			curs_flag=0;
			// add on 04-08-06
			_power[ch_sel].power_sweep=TRUE;

			disp_menu12((char**)power,7);
			draw_big_menu(5,2,1,1,0,"射频功率","","");
			flags_p();
			refresh_down_p();
			border_power();
		}
	  default:
		break;
	}
}
///开关程序         written by maoweiying
void onoff_p()
{
//	disable();
	setfillstyle(SOLID_FILL,TEXTMENUBK);
	bar(B_LX+2,5*59+20,B_RX-2,5*59+40);
	if(_power[ch_sel].flag==ON)
	{
		_power[0].flag=OFF;
		_power[1].flag=OFF;
		set_relay_byte|=0x10;
		Outchar12(B_LX+10,5*59+22,"开",TEXTMENU);
		Outchar12(B_RX-25,5*59+22,"关",TEXTDIGITAL);
	}
	else if(_power[ch_sel].flag==0)
	{
		_power[0].flag=1;
		_power[1].flag=1;
		set_relay_byte&=0xef;
		Outchar12(B_LX+10,5*59+22,"开",TEXTDIGITAL);
		Outchar12(B_RX-25,5*59+22,"关",TEXTMENU);
	}
}
//功率上下刷新程序      written by maoweiying
void refresh_down_p()
{
	char msg[30],msg1[10];
	CLR_LN4;
	if(_softkeyid==	1)
	{
		clear_rect(35,462,449,475);
		Outchar12(35,462,"输出功率:",TEXTFURLN);
		refr_pwr_f1();
		init_cur_pwr(_power[ch_sel].output_power);
	}
	else  if(_softkeyid1==22)
	{ 	clear_rect(35,462,449,475);
		Outchar12(35,462,"终止功率:",TEXTFURLN);
		refr_pwr_f22();
		init_cur_pwr(_power[ch_sel].end_power);
	}
	else  if(_softkeyid1==21/*||_softkeyid==2*/)
	{
		clear_rect(35,462,449,475);
		Outchar12(35,462,"起始功率:",TEXTFURLN);
		refr_pwr_f21();
		init_cur_pwr(_power[ch_sel].start_power);
	}
	else if(_softkeyid==2&&_softkeyid1==0){
		Outchar12(35,462,"功率扫描:",TEXTFURLN);
		sprintf(msg,"%.2f",_power[ch_sel].start_power);
		strcat(msg,"dBm -->");
		sprintf(msg1,"%.2f",_power[ch_sel].end_power);
		strcat(msg,msg1);
		strcat(msg,"dBm");
		Outchar12(105,462,msg,TEXTDIGITAL);
	}
	else  if(_softkeyid==5)
	{
		clear_rect(35,462,449,475);
		clear_rect(35,462,449,475);
		Outchar12(35,462,"射频功率:",TEXTFURLN);
		if(_power[chs].flag==OFF)
			Outchar12(105,462,"关",TEXTDIGITAL);
		else if(_power[chs].flag==ON)
			Outchar12(105,462,"开",TEXTDIGITAL);
	}

}
void border_power()
{
	for(int i=1;i<=2;i++)
		erase_smal_border(i);
	erase_big_border(5);
	if(_softkeyid==1||(_softkeyid==2&&_softkeyid1==21))
		draw_smal_border(1);
	else if(_softkeyid==2&&(_softkeyid1==22||_softkeyid1==0))
		draw_smal_border(2);
	else if(_softkeyid==5)
		draw_big_border(5);
}
//int is_byte_change = 0;
//unsigned char old_byte;
//int iii=0;
void set_relay(float p_db)
{
		if(set_relay_byte & 0x10)
		{
			outportb(0x35c,0xff);
			return;
		}
		set_relay_byte = 0;
		if(p_db>-0.001){
//			outportb(0x35c,0);
		}
		else if(p_db>-10.001){
			set_relay_byte|=0x01;
//			outportb(0x35c,0x1);
		}
		else if(p_db>-20.001){
//			outportb(0x35c,0x2);
			set_relay_byte|=0x02;
		}
		else if(p_db>-30.001){
			//outportb(0x35c,0x3);
			set_relay_byte|=0x03;
		}
		else if(p_db>-40.001){
			//outportb(0x35c,0x6);
			set_relay_byte|=0x05;
		}
		else if(p_db>-50.001){
//			outportb(0x35c,0x7);
			set_relay_byte|=0x06;
		}
		else if(p_db>-60.001){
//			outportb(0x35c,0x0e);
			set_relay_byte|=0x07;
		}
		else if(p_db>-70.001){
//			outportb(0x35c,0x0f);
			set_relay_byte|=0x0d;
		}
		outportb(0x35c,set_relay_byte);
/*		if(set_relay_byte != old_byte){
			is_byte_change = 1;
		}
		else
			is_byte_change = 0;
		old_byte = set_relay_byte;
		if(is_byte_change){
			char str[20];
			sprintf(str, "%#x", set_relay_byte);
			outtextxy(100, 100 + (iii++)*10, str);
		}*/
}

⌨️ 快捷键说明

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