📄 main.cpp
字号:
if(_marker[chs].marker_follow_flag==ON){
_marker[chs].max_mkr.freq=_freq[chs].start_freq+
(double)x_max*(double)_freq[chs].freq_width/swp_pnt;
_marker[chs].min_mkr.freq=_freq[chs].start_freq+
(double)x_min*(double)_freq[chs].freq_width/swp_pnt;
}//end if
if(_disp.disp_way==0||_disp.disp_way==2)
draw_graph(chs==0?_system.colora:_system.colorb);
/*
for(i=0;i<the_points;i++)
{
power_in=conv(chs==0?y_a[i]:y_b[i]);
if(_chab[chs].flag==0)
power_in-=_power[chs].output_power;
draw_map(_status[chs].sweep_points-1,i,power_in);
// if(i>0&&y_map>=0&&y_map<=DISP_Y2-36){
// disable();
// mda_map->Line(x_old,y_old,x_map,y_map);
// enable();
// }
if(i>0){
if(y_old<0){
if(y_map<0){
}
else if(y_map<DISP_Y2-36){
mda_map->Line(((double)x_old*y_map-(double)x_map*y_old)/(y_map-y_old),0,x_map,y_map);
// printf("(%d,%d) (%d,%d) %d, ",x_old,y_old,x_map,y_map,(x_old*y_map-x_map*y_old)/(y_map-y_old));
}
else{
mda_map->Line(((double)x_old*y_map-(double)x_map*y_old)/(y_map-y_old),0,((double)x_old*y_map-(double)x_map*y_old+(double)(DISP_Y2-36)*(x_map-x_old))/(y_map-y_old),DISP_Y2-36);
}
}
else if(y_old<DISP_Y2-36){
if(y_map<0){
mda_map->Line(x_old,y_old,((double)x_old*y_map-(double)x_map*y_old)/(y_map-y_old),0);
}
else if(y_map<DISP_Y2-36){
mda_map->Line(x_old,y_old,x_map,y_map);
}
else{
mda_map->Line(x_old,y_old,((double)x_old*y_map-(double)x_map*y_old+(double)(DISP_Y2-36)*(x_map-x_old))/(y_map-y_old),DISP_Y2-36);
}
}
else
{
if(y_map<0){
mda_map->Line(((double)x_old*y_map-(double)x_map*y_old+(double)(DISP_Y2-36)*(x_map-x_old))/(y_map-y_old),DISP_Y2-36,((double)x_old*y_map-(double)x_map*y_old)/(y_map-y_old),0);
}
else if(y_map<DISP_Y2-36){
mda_map->Line(((double)x_old*y_map-(double)x_map*y_old+(double)(DISP_Y2-36)*(x_map-x_old))/(y_map-y_old),DISP_Y2-36,x_map,y_map);
}
else{
}
}
}
x_old=x_map;
y_old=y_map;
}*/
//////
//printf(" 1");
if(_marker[chs].max_mkr.on_off==ON){
if(_marker[chs].marker_follow_flag==ON){
draw_map(_marker[chs].max_mkr.freq,_marker[chs].max_mkr.power);
}
else if(_marker[chs].marker_follow_flag==OFF){
follow_max=(int)((double)(_marker[chs].max_mkr.freq-_freq[chs].start_freq)\
*(_status[chs].sweep_points-1)/_freq[chs].freq_width);
_marker[chs].max_mkr.power = conv(chs==0?y_a[follow_max]:y_b[follow_max]);
if(_chab[chs].flag==0)
_marker[chs].max_mkr.power -= _power[chs].output_power;
draw_map(_marker[chs].max_mkr.freq,_marker[chs].max_mkr.power);
}
draw_marker(x_map,y_map,mda_map);
}
//////
//printf("2");
if(_marker[chs].min_mkr.on_off==ON){
if(_marker[chs].marker_follow_flag==ON){
draw_map(_marker[chs].min_mkr.freq,_marker[chs].min_mkr.power);
}
else if(_marker[chs].marker_follow_flag==OFF){
follow_min=(int)((double)(_marker[chs].min_mkr.freq-_freq[chs].start_freq)\
*(_status[chs].sweep_points-1)/_freq[chs].freq_width);
_marker[chs].min_mkr.power = conv(chs==0?y_a[follow_min]:y_b[follow_min]);
if(_chab[chs].flag==0)
_marker[chs].min_mkr.power -= _power[chs].output_power;
draw_map(_marker[chs].min_mkr.freq,_marker[chs].min_mkr.power);
}
draw_marker(x_map,y_map,mda_map);
}
//////
//printf("3");
if(_marker[chs].cen_mkr.on_off==ON||_disp.disp_way==1||_disp.disp_way==2)
{
mark_fun(_marker[chs].cen_mkr.set_attenuate,
// chs==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power,
_chab[chs].flag==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power,
x_max,freq[1],freq[0]);
// printf("%ld,%ld, ",freq[0],freq[1]);
if(_marker[chs].marker_follow_flag==ON){
if(freq[0]==0||freq[1]==0)
_marker[chs].cen_mkr.freq=0;
else{
_marker[chs].cen_mkr.freq=(freq[0]+freq[1])/2;
follow_cen=(int)((double)(_marker[chs].cen_mkr.freq-_freq[chs].start_freq)\
*(_status[chs].sweep_points-1)/_freq[chs].freq_width);
assert(follow_cen>=0&&follow_cen<_status[chs].sweep_points);
_marker[chs].cen_mkr.power=conv(chs==0?y_a[follow_cen]:y_b[follow_cen]);
}
// if(_marker[chs].cen_mkr.freq<_freq[chs].start_freq||_marker[chs].cen_mkr.freq>_freq[chs].end_freq)
// _marker[chs].cen_mkr.freq = _freq[chs].center_freq;
}
else if(_marker[chs].marker_follow_flag==OFF){
if(_marker[chs].cen_mkr.freq<_freq[chs].start_freq||_marker[chs].cen_mkr.freq>_freq[chs].end_freq)
_marker[chs].cen_mkr.freq = _freq[chs].center_freq;
follow_cen=(int)((double)(_marker[chs].cen_mkr.freq-_freq[chs].start_freq)\
*(_status[chs].sweep_points-1)/_freq[chs].freq_width);
assert(follow_cen>=0&&follow_cen<_status[chs].sweep_points);
_marker[chs].cen_mkr.power=conv(chs==0?y_a[follow_cen]:y_b[follow_cen]);
// cen_i=(int)((double)(_marker[chs].cen_mkr.freq-_freq[chs].start_freq)\
// *(_status[chs].sweep_points-1)/_freq[chs].freq_width);
// _marker[chs].cen_mkr.power=conv(chs==0?y_a[cen_i]:y_b[cen_i]);
}
if(_chab[chs].flag==0)
_marker[chs].cen_mkr.power -= _power[chs].output_power;
if(_disp.disp_way!=1&&_marker[chs].cen_mkr.on_off==ON){
draw_map(_marker[chs].cen_mkr.freq,_marker[chs].cen_mkr.power);
draw_marker(x_map,y_map,mda_map);
}
}
//printf("4");
for(i=0;i<3;i++){
if(_marker[chs].marker_fun[i].on_off==ON){
mark_fun(_marker[chs].marker_fun[i].power,
(_chab[chs].flag==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power),
x_max,_marker[chs].marker_fun[i].freq[0],
_marker[chs].marker_fun[i].freq[1]);
if( _marker[chs].min_mkr.power - _marker[chs].max_mkr.power < _marker[chs].marker_fun[i].power){
draw_map(_marker[chs].marker_fun[i].freq[0],
_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power);
draw_marker(x_map,y_map,mda_map);
draw_map(_marker[chs].marker_fun[i].freq[1],
_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power);
draw_marker(x_map,y_map,mda_map);
// }
if(ch_sel==chs&&_keyid==MARKER&&_softkeyid==6&&_softkeyid1!=0)
marker_show3(i);
}
}
}
// marker();
//printf("5");
if(_marker[chs].max_mkr.on_off==ON){
if(ch_sel==chs&&_keyid==MARKER&&_softkeyid==7&&_softkeyid1!=0&&_softkeyid2==0){
marker_show4(1);
if(_softkeyid1==71){
CLR_DIGITAL;
sprintf(msg,"%.2f",_marker[chs].max_mkr.power);
if(_chab[chs].flag==0)
strcat(msg," dB");
else
strcat(msg," dBm");
Outchar12(300,462,msg,TEXTDIGITAL);
if(_marker[chs].max_mkr.freq>=1000000)
sprintf(msg,"%.6f MHz",(double)_marker[chs].max_mkr.freq/1000000.0);
else
sprintf(msg,"%.3f kHz",(double)_marker[chs].max_mkr.freq/1000.0);
Outchar12(105,462,msg,TEXTDIGITAL);
}
}
}
if(_marker[chs].min_mkr.on_off==ON){
if(ch_sel==chs&&_keyid==MARKER&&_softkeyid==7&&_softkeyid1!=0&&_softkeyid2==0){
marker_show4(2);
if(_softkeyid1==72){
CLR_DIGITAL;
sprintf(msg,"%.2f",_marker[chs].min_mkr.power);
if(_chab[chs].flag==0)
strcat(msg,"dB");
else
strcat(msg,"dBm");
Outchar12(300,462,msg,TEXTDIGITAL);
if(_marker[chs].min_mkr.freq>=1000000)
sprintf(msg,"%.6f MHz",(double)_marker[chs].min_mkr.freq/1000000.0);
else
sprintf(msg,"%.3f kHz",(double)_marker[chs].min_mkr.freq/1000.0);
Outchar12(105,462,msg,TEXTDIGITAL);
}
}
}
if(_marker[chs].cen_mkr.on_off==ON){
if(ch_sel==chs&&_keyid==MARKER&&_softkeyid==7&&_softkeyid1!=0&&_softkeyid2==0){
marker_show4(3);
if(_softkeyid1==73){
CLR_DIGITAL;
sprintf(msg,"%.2f",_marker[chs].cen_mkr.power);
if(_chab[chs].flag==0)
strcat(msg,"dB");
else
strcat(msg,"dBm");
Outchar12(300,462,msg,TEXTDIGITAL);
if(_marker[chs].cen_mkr.freq>=1000000)
sprintf(msg,"%.6f MHz",(double)_marker[chs].cen_mkr.freq/1000000.0);
else
sprintf(msg,"%.3f kHz",(double)_marker[chs].cen_mkr.freq/1000.0);
Outchar12(105,462,msg,TEXTDIGITAL);
}
}
}
//printf("6");
//modify on 2004/06/02 , mwy
for(i=0;i<8;i++){
if(_marker[chs].mark[i].on_off==ON){
if(chs==0){
if(_freq[chs].is_dot_freq||_freq[chs].start_freq==_freq[chs].end_freq){
_marker[0].mark[i].power=conv(y_a[0]);
}
else{
for(j=0;j<_status[0].sweep_points-1;j++)
if(_freq[0].start_freq+(j+1)*freq_step>=_marker[0].mark[i].freq)
break;
// printf(" %d ",y_a[j]);
if(y_a[j]==y_a[j+1])
_marker[0].mark[i].power=conv(y_a[j]);
else{
_marker[0].mark[i].power=((double)(_marker[0].mark[i].freq-(_freq[0].start_freq+j*freq_step))/freq_step)*(conv(y_a[j+1])-conv(y_a[j]))+conv(y_a[j]);
}
// printf("a.%f ",_marker[0].mark[i].power);
}
}
else if(chs==1){
if(_freq[chs].is_dot_freq||_freq[chs].start_freq==_freq[chs].end_freq)
_marker[1].mark[i].power=conv(y_b[0]);
else{
for(j=0;j<_status[1].sweep_points-1;j++)
if(_freq[1].start_freq+(j+1)*freq_step>=_marker[1].mark[i].freq)
break;
// printf(" %d,%d ",j,y_b[j]);
if(y_b[j]==y_b[j+1])
_marker[1].mark[i].power=conv(y_b[j]);
else{
_marker[1].mark[i].power=((double)(_marker[1].mark[i].freq-(_freq[1].start_freq+j*freq_step))/freq_step)*(conv(y_b[j+1])-conv(y_b[j]))+conv(y_b[j]);
}
// printf("b.%f ",_marker[1].mark[i].power);
}
// _marker[1].mark[i].power=
// conv(y_b[(long) ((float)(_marker[1].mark[i].freq-_freq[1].start_freq)\
// *(_status[chs].sweep_points-1)/(_freq[1].freq_width))]);
}
//printf("7");
if(_keyid==MARKER&&ch_sel==chs){//modified on 7-6
refr_menu_mkr(i);
}
if(_chab[chs].flag==0)
if(_freq[chs].is_dot_freq||_freq[chs].start_freq==_freq[chs].end_freq){
x_map=DISP_X1+250;
y_map=(10.0-(_scale[chs].ref_pos+(_marker[chs].mark[i].power-_power[chs].output_power-_scale[chs].ref_vol)/_scale[chs].scale_unit))*40-1;
}
else
draw_map(_marker[chs].mark[i].freq,_marker[chs].mark[i].power-_power[chs].output_power);
else
if(_freq[chs].is_dot_freq||_freq[chs].start_freq==_freq[chs].end_freq){
x_map=DISP_X1+250;
y_map=(10.0-(_scale[chs].ref_pos+(_marker[chs].mark[i].power-_scale[chs].ref_vol)/_scale[chs].scale_unit))*40-1;
}
else
draw_map(_marker[chs].mark[i].freq,_marker[chs].mark[i].power);
//printf("x");
draw_marker(x_map,y_map,mda_map);
x_mark[chs][i]=x_map;
y_mark[chs][i]=y_map;
}
}//end for
//printf("8");
if(_disp.disp_way==0||_disp.disp_way==2){
disable();
mda_map->Line(0,0,0,0,(chs==0?_system.colora:_system.colorb));
disable();
mda_map->ScreenMove();
enable();
}
for(i=0;i<8;i++){
if(_marker[chs].mark[i].on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
sprintf(msg,"%d",i+1);
wrt_num(msg,x_mark[chs][i],y_mark[chs][i],color,mda_map);
disable();
mda_map->Line(0,0,0,0,color); //strage???
}
}
for(i=0;i<3;i++)
if(_marker[chs].marker_fun[i].on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
if( _marker[chs].min_mkr.power - _marker[chs].max_mkr.power < _marker[chs].marker_fun[i].power){
sprintf(msg,"mf%d",i+1);
// if(_chab[chs].flag==0)
// draw_map(_marker[chs].marker_fun[i].freq[0],_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power-_power[chs].output_power);
// else
draw_map(_marker[chs].marker_fun[i].freq[0],_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power);
wrt_num(msg,x_map,y_map,color,mda_map);
// if(_chab[chs].flag==0)
// draw_map(_marker[chs].marker_fun[i].freq[1],_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power-_power[chs].output_power);
// else
draw_map(_marker[chs].marker_fun[i].freq[1],_marker[chs].marker_fun[i].power+_marker[chs].max_mkr.power);
wrt_num(msg,x_map,y_map,color,mda_map);
}
}
if(_marker[chs].max_mkr.on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
if(_marker[chs].marker_follow_flag==ON)
draw_map(_marker[chs].max_mkr.freq,_marker[chs].max_mkr.power);
else if(_marker[chs].marker_follow_flag==OFF)
if(_chab[chs].flag==0)
draw_map(_marker[chs].max_mkr.freq,conv(chs==0?y_a[follow_max]:y_b[follow_max])-_power[chs].output_power);
else
draw_map(_marker[chs].max_mkr.freq,conv(chs==0?y_a[follow_max]:y_b[follow_max]));
wrt_num("max",x_map,y_map,color, mda_map);
}
if(_marker[chs].min_mkr.on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
if(_marker[chs].marker_follow_flag==ON)
draw_map(_marker[chs].min_mkr.freq,_marker[chs].min_mkr.power);
else if(_marker[chs].marker_follow_flag==OFF)
if(_chab[chs].flag==0)
draw_map(_marker[chs].min_mkr.freq,conv(chs==0?y_a[follow_min]:y_b[follow_min])-_power[chs].output_power);
else
draw_map(_marker[chs].min_mkr.freq,conv(chs==0?y_a[follow_min]:y_b[follow_min]));
wrt_num("min",x_map,y_map,color, mda_map);
}
if(_marker[chs].cen_mkr.on_off==ON&&(_disp.disp_way==0||_disp.disp_way==2)){
if(_marker[chs].marker_follow_flag==ON)
// if(_chab[chs].flag==0)
// draw_map(_marker[chs].cen_mkr.freq,_marker[chs].cen_mkr.power-_power[chs].output_power);
// else
draw_map(_marker[chs].cen_mkr.freq,_marker[chs].cen_mkr.power);
else if(_marker[chs].marker_follow_flag==OFF)
if(_chab[chs].flag==0)
draw_map(_marker[chs].cen_mkr.freq,conv(chs==0?y_a[follow_cen]:y_b[follow_cen])-_power[chs].output_power);
else
draw_map(_marker[chs].cen_mkr.freq,conv(chs==0?y_a[follow_cen]:y_b[follow_cen]));
wrt_num("cen",x_map,y_map,color, mda_map);
}
if(_disp.disp_way==0||_disp.disp_way==2){
disable();
mda_map->Line(0,0,0,0,chs==0?_system.colora:_system.colorb);
mda_map->ScreenClear();
enable();
}
// disable();
// if(flag_disp == 1){
// DispSwitchBusy = 0;
// flag_disp = 0;
// }
// if(disp_switch!=0){
// DispSwitch();
// flag_disp = 1;
// }
if(chs==0&&(_disp.disp_way==1||_disp.disp_way==2)){
//printf("a");
_disp.r_cen_freq=_marker[0].cen_mkr.freq;
_disp.r_freq_diff=_disp.r_cen_freq-_disp.cen_freq;
//printf("b");
if(_disp.r_freq_diff<0)
_disp.r_freq_diff=0-_disp.r_freq_diff;
if(_disp.r_freq_diff<_disp.freq_diff)
_disp.flag_freq_diff=TRUE;
else
_disp.flag_freq_diff=FALSE;
_disp.r_loss = 0 - _marker[0].cen_mkr.power;
if(_disp.r_loss < _disp.loss)
_disp.flag_loss = TRUE;
else
_disp.flag_loss = FALSE;
//printf("c");
max_in_pb = Max(_disp.r_cen_freq - _disp.ripple_bw/2,_disp.r_cen_freq + _disp.ripple_bw/2,0);
min_in_pb = Min(_disp.r_cen_freq - _disp.ripple_bw/2,_disp.r_cen_freq + _disp.ripple_bw/2,0);
_disp.r_ripple = max_in_pb - min_in_pb;
if(_disp.r_ripple < _disp.ripple)
_disp.flag_ripple = TRUE;
else
_disp.flag_ripple = FALSE;
//printf("d");
mark_fun(_disp.db_bw1.attenuation,
(_chab[chs].flag==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power),
x_max,
_disp.db_bw1.r_freq_r,
_disp.db_bw1.r_freq_l);
if(((_disp.db_bw1.r_freq_r>_disp.db_bw1.freq.freq_r.freq&&_disp.db_bw1.freq.freq_r.above_below==1)
||(_disp.db_bw1.r_freq_r<_disp.db_bw1.freq.freq_r.freq&&_disp.db_bw1.freq.freq_r.above_below==0))
&&((_disp.db_bw1.r_freq_l<_disp.db_bw1.freq.freq_l.freq&&_disp.db_bw1.freq.freq_l.above_below==0)
||(_disp.db_bw1.r_freq_l>_disp.db_bw1.freq.freq_l.freq&&_disp.db_bw1.freq.freq_l.above_below==1)))
_disp.flag_db_bw1=TRUE;
else
_disp.flag_db_bw1=FALSE;
_disp.db_bw1.r_bandwidth=_disp.db_bw1.r_freq_r-_disp.db_bw1.r_freq_l;
if((_disp.db_bw1.r_bandwidth>_disp.db_bw1.bandwidth.freq&&_disp.db_bw1.bandwidth.above_below==1)||
(_disp.db_bw1.r_bandwidth<_disp.db_bw1.bandwidth.freq&&_disp.db_bw1.bandwidth.above_below==0))
_disp.flag_bandwidth1=TRUE;
else
_disp.flag_bandwidth1=FALSE;
//printf("e");
mark_fun(_disp.db_bw2.attenuation,
(_chab[chs].flag==0?_marker[chs].max_mkr.power+_power[chs].output_power:_marker[chs].max_mkr.power),
x_max,
_disp.db_bw2.r_freq_r,
_disp.db_bw2.r_freq_l);
if(((_disp.db_bw2.r_freq_r>_disp.db_bw2.freq.freq_r.freq&&_disp.db_bw2.freq.freq_r.above_below==1)
||(_disp.db_bw2.r_freq_r<_disp.db_bw2.freq.freq_r.freq&&_disp.db_bw2.freq.freq_r.above_below==0))
&&((_disp.db_bw2.r_freq_l<_disp.db_bw2.freq.freq_l.freq&&_disp.db_bw2.freq.freq_l.above_below==0)
||(_disp.db_bw2.r_freq_l>_disp.db_bw2.freq.freq_l.freq&&_disp.db_bw2.freq.freq_l.above_below==1)))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -