📄 sweepkey.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 + -