📄 numkeyp.cpp
字号:
ii=i_dot;
j=0;
set_v=0;
while(--ii>=0) //calculate the value of integer
set_v+=number_keys[ii]*pow(10,j++);
if(set_v<_freq[ch_sel].start_freq)
set_v=_freq[ch_sel].start_freq;
else if(set_v>_freq[ch_sel].end_freq)
set_v=_freq[ch_sel].end_freq;
if(set_v>=_freq[ch_sel].start_freq&&set_v<=_freq[ch_sel].end_freq)
switch(_softkeyid)
{
case 1:
case 2:
case 3:
_marker[ch_sel].mark[_softkeyid-1].freq=set_v;
mkr_xch = TRUE;
//marker_show1(_softkeyid);
//mkr_show_mark_all(_softkeyid-1);
refr_menu_mkr_all(_softkeyid-1);
break;
case 4:
_marker[ch_sel].mark[_softkeyid1-38].freq=set_v;
mkr_xch = TRUE;
//marker_show2(_softkeyid1-40);
//mkr_show_mark_all(_softkeyid1-40-1+3);
refr_menu_mkr_all(_softkeyid1-38);
default:
break;
}
init_cur_frq(set_v);refresh_down_mark();
}
else if(_softkeyid==6)
{
if(index==0)
return;
while(i_dot<index){ //search the position of dot
if(number_keys[i_dot] == NDOT)
break;
i_dot++;
}
ii=i_dot; //calculate the value of numbers in number_keys[]
j=0;
set_v=0;
while(--ii>=0) //calculate the value of integer
set_v+=number_keys[ii]*pow(10,j++);
ii=i_dot;
j=0;
while(ii++<index)
set_v+=number_keys[ii]*pow(10,-(++j));
if(num_unit==MV)
set_v=10*log10(pow(set_v,2)*2*0.00001);
if(sign==0){
set_v=0-set_v;
// max_min = max(Min(_freq[ch_sel].start_freq,_marker[ch_sel].cen_mkr.freq,ch_sel),
// Min(_marker[ch_sel].cen_mkr.freq,_freq[ch_sel].end_freq,ch_sel));
// if(_chab[ch_sel].flag==0){
// if(set_v<(max_min-_power[ch_sel].output_power-_marker[ch_sel].max_mkr.power))
// set_v=max_min-_power[ch_sel].output_power-_marker[ch_sel].max_mkr.power+0.1;
// }
// else if(_chab[ch_sel].flag==1){
// if(set_v<(max_min-_marker[ch_sel].max_mkr.power))
// set_v=max_min-_marker[ch_sel].max_mkr.power+0.1;
// }
if(set_v < 0){
if(_softkeyid1==61)
_marker[ch_sel].marker_fun[0].power=set_v;
if(_softkeyid1==62)
_marker[ch_sel].marker_fun[1].power=set_v;
if(_softkeyid1==63)
_marker[ch_sel].marker_fun[2].power=set_v;
}
init_cur_pwr(set_v);
mkr_xch = TRUE;
}
else{
if(_softkeyid1==61)
init_cur_pwr(_marker[ch_sel].marker_fun[0].power);
if(_softkeyid1==62)
init_cur_pwr(_marker[ch_sel].marker_fun[1].power);
if(_softkeyid1==63)
init_cur_pwr(_marker[ch_sel].marker_fun[2].power);
init_cur_pwr(set_v);
mkr_xch = TRUE;
}
}
else if(_softkeyid==7&&_softkeyid1==73&&_softkeyid2==731){
if(index==0)
return;
while(i_dot<index){ //search the position of dot
if(number_keys[i_dot] == NDOT)
break;
i_dot++;
}
ii=i_dot; //calculate the value of numbers in number_keys[]
j=0;
set_v=0;
while(--ii>=0) //calculate the value of integer
set_v+=number_keys[ii]*pow(10,j++);
ii=i_dot;
j=0;
while(ii++<index)
set_v+=number_keys[ii]*pow(10,-(++j));
if(num_unit==MV)
set_v=10*log10(pow(set_v,2)*2*0.00001);
if(sign==0)
set_v=0-set_v;
if(set_v<0)
_marker[ch_sel].cen_mkr.set_attenuate=set_v;
// marker_show4(_softkeyid1-60);
mkr_xch = TRUE;
refresh_down_mark();
_softkeyid2=0;
disp_menu12((char **)marker_7,7);
// for(int i=1;i<5;i++){
// setfillstyle(SOLID_FILL,TEXTMENUBK);
// bar(B_LX,i*59+8-5+18,B_RX-3,i*59+8+20+15);
// }
_marker[ch_sel].cen_mkr.on_off=ON;
for(int j=1;j<4;j++)
marker_show4(j);
mff_show();
border_marker();
// _softkeyid1=0;
init_cur_pwr(set_v);
}
curs_flag=1;
rst_num_mem();
refresh_up();
refresh_down_mark();
cursor();
}
extern void refresh_down_system(); //this function is modified in 04-05-31
void set_system()
{
/* int i_dot=0;
int ii;
int j;
unsigned int set_val;
getdate(&_system.d);
gettime(&_system.t);
if(index==0)
return;
while(i_dot<index){ //search the position of dot
if(number_keys[i_dot] == NDOT)
break;
i_dot++;
}
ii=i_dot;
j=0;
set_val=0;
while(--ii>=0) //calculate the value of integer
set_val+=number_keys[ii]*pow(10,j++);
if(_softkeyid==1){
_system.gpib_addr=set_val;
}
else if(_softkeyid1==21){
if(set_val<=9999&&set_val>=1000)
_system.d.da_year=set_val;
init_cur_sys(_system.d.da_year);
}
else if(_softkeyid1==22){
if(set_val<=12&&set_val>0)
_system.d.da_mon=set_val;
// _system.sys_time.month=set_val;
init_cur_sys(_system.d.da_mon);
}
else if(_softkeyid1==23){
if(set_val<=29||
((_system.d.da_mon==4||_system.d.da_mon==6||
_system.d.da_mon==9||_system.d.da_mon==11)&&set_val<=30)||
((_system.d.da_mon==1||_system.d.da_mon==3||
_system.d.da_mon==5||_system.d.da_mon==7||
_system.d.da_mon==8||_system.d.da_mon==10||
_system.d.da_mon==12)&&set_val<=31))
// _system.sys_time.day=set_val;
_system.d.da_day=set_val;
init_cur_sys(_system.d.da_day);
}
else if(_softkeyid1==24){
if(set_val<=23)
_system.t.ti_hour=set_val;
init_cur_sys(_system.t.ti_hour);
}
else if(_softkeyid1==25){
if(set_val<=59)
_system.t.ti_min=set_val;
init_cur_sys(_system.t.ti_min);
}
setdate(&_system.d);
settime(&_system.t);
rst_num_mem();
x_pos=107; //reset cursor position;
curs_flag=1;
refresh_down_system();
cursor();
*/
}
extern void refr_aver();
void set_avg_times()
{
int i_dot=0;
int ii;
int j;
int set_val;
if(index==0)
return;
while(i_dot<index){ //search the position of dot
if(number_keys[i_dot] == NDOT)
break;
i_dot++;
}
ii=i_dot;
j=0;
set_val=0;
while(--ii>=0) //calculate the value of integer
set_val+=number_keys[ii]*pow(10,j++);
if(_softkeyid==1&&_avg[ch_sel].on_off==1&&set_val>=2&&set_val<=99){
_avg[ch_sel].avg_times=set_val;
stat_xch=1;
}
init_cur_avg(_avg[ch_sel].avg_times);
curs_flag=1;
rst_num_mem();
refr_aver();
cursor();
}
void set_disp()
{
int i_dot=0;
int ii;
int j;
long set_value;
float set_val;
if(index==0)
return;
while(i_dot<index){ //search the position of dot
if(number_keys[i_dot] == NDOT)
break;
i_dot++;
}
if(_softkeyid==4&&((_softkeyid1==42&&_softkeyid2==421&&_softkeyid3==0)||
(_softkeyid1==43&&_softkeyid2==432&&_softkeyid3==0)||
(_softkeyid1==44&&_softkeyid2==441&&_softkeyid3==0)||
(_softkeyid1==45&&_softkeyid2==451&&_softkeyid3==0)||
(_softkeyid1==46&&_softkeyid2==462&&_softkeyid3==0)))
{
ii=i_dot; //calculate the value of numbers in number_keys[]
j=0;
set_val=0;
while(--ii>=0) //calculate the value of integer
set_val+=number_keys[ii]*pow(10,j++);
ii = i_dot;
j=0;
while(++ii<index)
set_val+=number_keys[ii]*pow(10,--j);
// if(num_unit==MV)
// set_val=10*log10(pow(set_val,2)*2*0.00001);
if(sign==0)
set_val=0-set_val;
// if(set_val<0)
// goto exit_disp;
}
else if(_softkeyid==4&&((_softkeyid1==41&&_softkeyid2!=0&&_softkeyid3==0)||
(_softkeyid1==43&&_softkeyid2==431&&_softkeyid3==0)||
(_softkeyid1==44&&(_softkeyid2==442||_softkeyid2==443||_softkeyid2==444)&&_softkeyid3==0)||
(_softkeyid1==45&&(_softkeyid2==452||_softkeyid2==453||_softkeyid2==454)&&_softkeyid3==0)||
(_softkeyid1==46&&_softkeyid2==461&&_softkeyid3==0))){
if( (num_unit==KHZ)||(num_unit==0&&_freq[ch_sel].resolve==KHZ) )
for(ii=0;ii<3;ii++){
number_keys[i_dot]=number_keys[i_dot+1];
i_dot+=1;
}
else if( (num_unit==MHZ)||(num_unit==0&&_freq[ch_sel].resolve==MHZ) )
for(ii=0;ii<6;ii++){
number_keys[i_dot]=number_keys[i_dot+1];
i_dot+=1;
}
ii=i_dot;
j=0;
set_value=0;
while(--ii>=0) //calculate the value of integer
set_value+=number_keys[ii]*pow(10,j++);
}
else
goto exit_disp;
// printf("%d %d %d %d, ",_softkeyid,_softkeyid1,_softkeyid2,_softkeyid3);
if(_softkeyid1==41&&_softkeyid2==411)
{
if(set_value>_freq[0].end_freq||set_value<_freq[0].start_freq)
goto exit_disp;
_disp.cen_freq=set_value;
wri_form(0);
dsp_xch = TRUE;
}
else if(_softkeyid1==41&&_softkeyid2==412)
{
if(set_value>0&&set_value<_freq[0].end_freq){
_disp.freq_diff=set_value;
wri_form(0);
dsp_xch = TRUE;
}
}
else if(_softkeyid1==42){
if(set_val>=0&&set_val<70){
_disp.loss = set_val;
wri_form(1);
dsp_xch = TRUE;
}
}
else if(_softkeyid1==43&&_softkeyid2==431){
if(_freq[0].center_freq+set_value/2<_freq[0].end_freq&&
_freq[0].center_freq-set_value/2>_freq[0].start_freq){
_disp.ripple_bw = set_value;
wri_form(2);
dsp_xch = TRUE;
}
}
else if(_softkeyid1==43&&_softkeyid2==432){
if(set_val>=0&&set_val<70){
_disp.ripple = set_val;
wri_form(3);
dsp_xch = TRUE;
}
}
else if(_softkeyid1==44&&_softkeyid2==441){
if(set_val<0&&set_val>-70){
_disp.db_bw1.attenuation=set_val;
wri_form(4);
dsp_xch = TRUE;
}
}
else if(_softkeyid1==44&&_softkeyid2==442){
if(set_value>_freq[0].end_freq||set_value<_freq[0].start_freq)
goto exit_disp;
_disp.db_bw1.freq.freq_l.above_below=AboveBelow;
_disp.db_bw1.freq.freq_l.freq=set_value;
wri_form(5);
dsp_xch = TRUE;
}
else if(_softkeyid1==44&&_softkeyid2==443){
if(set_value>_freq[0].end_freq||set_value<_freq[0].start_freq)
goto exit_disp;
_disp.db_bw1.freq.freq_r.above_below=AboveBelow;
_disp.db_bw1.freq.freq_r.freq=set_value;
wri_form(6);
dsp_xch = TRUE;
}
else if(_softkeyid1==44&&_softkeyid2==444){
if(set_value>0&&set_value<=_freq[0].freq_width){
_disp.db_bw1.bandwidth.above_below = AboveBelow;
_disp.db_bw1.bandwidth.freq = set_value;
wri_form(7);
dsp_xch = TRUE;
}
}
else if(_softkeyid1==45&&_softkeyid2==451){
if(set_val<0&&set_val>-70){
_disp.db_bw2.attenuation=set_val;
wri_form(8);
dsp_xch = TRUE;
}
}
else if(_softkeyid1==45&&_softkeyid2==452){
if(set_value>_freq[0].end_freq||set_value<_freq[0].start_freq)
goto exit_disp;
_disp.db_bw2.freq.freq_l.above_below=AboveBelow;
_disp.db_bw2.freq.freq_l.freq=set_value;
wri_form(9);
dsp_xch = TRUE;
}
else if(_softkeyid1==45&&_softkeyid2==453){
if(set_value>_freq[0].end_freq||set_value<_freq[0].start_freq)
goto exit_disp;
_disp.db_bw2.freq.freq_r.above_below=AboveBelow;
_disp.db_bw2.freq.freq_r.freq=set_value;
wri_form(10);
dsp_xch = TRUE;
}
else if(_softkeyid1==45&&_softkeyid2==454){
if(set_value>0&&set_value<=_freq[0].freq_width){
_disp.db_bw2.bandwidth.freq = AboveBelow;
_disp.db_bw2.bandwidth.freq = set_value;
wri_form(11);
dsp_xch = TRUE;
}
}
else if(_softkeyid1==46&&_softkeyid2==461)
{
if(set_value>0&&set_value<=_freq[0].freq_width/2){
_disp.sb_att.freq_offset = set_value;
wri_form(12);
dsp_xch = TRUE;
}
}
else if(_softkeyid1==46&&_softkeyid2==462){
if(set_val<0&&set_val>-70){
_disp.sb_att.attenuation = set_val;
wri_form(13);
dsp_xch = TRUE;
}
}
exit_disp:
rst_num_mem();
curs_flag=0;
refr_disp();
}
/*****************************************************
* 2004-2-23 12:40 LingYi
* update_cs_f() calculate freq_width and center_freq
* according to start_freq and end_freq in _freq
****************************************************/
void update_cs_f()
{
_freq[ch_sel].freq_width = _freq[ch_sel].end_freq - _freq[ch_sel].start_freq;
_freq[ch_sel].center_freq = (_freq[ch_sel].end_freq + _freq[ch_sel].start_freq)/2;
}
/***************************************************
* 2004-2-23 12:50 LingYi
* update_cs_f() calculate start_freq and end_freq
* according to freq_width and center_freq in _freq
**************************************************/
void update_ss_f()
{
_freq[ch_sel].start_freq = _freq[ch_sel].center_freq - _freq[ch_sel].freq_width/2;
_freq[ch_sel].end_freq = _freq[ch_sel].center_freq + _freq[ch_sel].freq_width/2;
}
/***************************************************
* 2004-2-23 12:45 LingYi
* rst_num_mem(), reset number memery, it clear all
* variables about number keys for next input.
**************************************************/
void rst_num_mem()
{
CLR_DIGITAL;
index=0;
for(int i=1;i<20;i++)
number_keys[i]=0;
num_unit=0;
sign=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -