📄 marker.cpp
字号:
void marker_show4(int i) //show max,min,cen markers
{
char msg[20],msg1[20];
float freq1;
clear_rect(B_LX+2,i*59,B_RX-2,i*59+40);
// disable();
// setfillstyle(SOLID_FILL,TEXTMENUBK);
// bar(B_LX,i*59+8-5,B_RX-3,i*59+8+20+15);
if(i==1){
// Outchar12(B_LX+10,i*59+8-5+5,"最 大 值",TEXTMENU);
if(_marker[ch_sel].max_mkr.on_off==OFF){
Outchar12(B_LX+35,i*59+8-5+5+18,"关",TEXTMENU);
draw_big_menu(1,2,1,1,0,"最 大 值 "," 关");
}
else{
if(_marker[ch_sel].max_mkr.freq>=1000000)
sprintf(msg,"%.3fMHz",_marker[ch_sel].max_mkr.freq/1000000.0);
else if(_marker[ch_sel].max_mkr.freq>=1000)
sprintf(msg,"%.2fkHz",_marker[ch_sel].max_mkr.freq/1000.0);
// disable();
// setcolor(TEXTMENU);
// outtextxy(B_LX+10,1*59+8-5+19,msg);
sprintf(msg1,"%.2f",_marker[ch_sel].max_mkr.power);
if(_chab[ch_sel].flag==0)
strcat(msg1,"dB");
else
strcat(msg1,"dBm");
// disable();
// setcolor(TEXTMENU);
// outtextxy(B_LX+10,1*59+8-5+18+14,msg);
draw_big_menu(1,3,1,0,0,"最 大 值 ",msg,msg1);
}
}
else if(i==2){
// Outchar12(B_LX+10,2*59+8-5+5,"最 小 值",TEXTMENU);
if(_marker[ch_sel].min_mkr.on_off==OFF){
// Outchar12(B_LX+35,2*59+8-5+5+18,"关",TEXTMENU);
draw_big_menu(2,2,1,1,0,"最 小 值 "," 关");
}
else{
if(_marker[ch_sel].min_mkr.freq>=1000000)
sprintf(msg,"%.3fMHz",_marker[ch_sel].min_mkr.freq/1000000.0);
else if(_marker[ch_sel].min_mkr.freq>=1000)
sprintf(msg,"%.2fkHz",_marker[ch_sel].min_mkr.freq/1000.0);
// disable();
// setcolor(TEXTMENU);
// outtextxy(B_LX+10,2*59+8-5+19,msg);
sprintf(msg1,"%.2f",_marker[ch_sel].min_mkr.power);
if(_chab[ch_sel].flag==0)
strcat(msg1,"dB");
else
strcat(msg1,"dBm");
draw_big_menu(2,3,1,0,0,"最 小 值 ",msg,msg1);
// disable();
// setcolor(TEXTMENU);
// outtextxy(B_LX+10,2*59+8-5+18+14,msg);
}
}
else if(i==3){
// Outchar45(B_LX+10,3*59+8-5+5,"中心频标",TEXTMENU);
if(_marker[ch_sel].cen_mkr.on_off==OFF){
Outchar12(B_LX+35,3*59+8-5+5+18,"关",TEXTMENU);
draw_big_menu(3,2,1,1,0,"中心频标"," 关");
}
else{
if(_marker[ch_sel].cen_mkr.freq>=1000000)
sprintf(msg,"%.3fMHz",_marker[ch_sel].cen_mkr.freq/1000000.0);
else if(_marker[ch_sel].cen_mkr.freq>=1000)
sprintf(msg,"%.2fkHz",_marker[ch_sel].cen_mkr.freq/1000.0);
// disable();
// setcolor(TEXTMENU);
// outtextxy(B_LX+10,3*59+8-5+19,msg);
sprintf(msg1,"%.2f",_marker[ch_sel].cen_mkr.power);
if(_chab[ch_sel].flag==0)
strcat(msg1,"dB");
else
strcat(msg1,"dBm");
// disable();
// setcolor(TEXTMENU);
// outtextxy(B_LX+10,3*59+8-5+18+14,msg);
draw_big_menu(3,3,1,0,0,"中心频标",msg,msg1);
}
}
}
void mff_show()
{
// clear_rect(B_LX,4*59+8-5+18,B_RX-3,4*59+8+20+15);
// clear_rect(B_LX,4*59+8-5+18,B_RX-3,4*59+8+20+15);
// disable();
// setfillstyle(SOLID_FILL,TEXTMENUBK);
// bar(B_LX,4*59+8-5+18,B_RX-3,4*59+8+20+15);
draw_big_menu(4,2,1,0,0,"频标跟踪");
if(_marker[ch_sel].marker_follow_flag==OFF)
{
Outchar12(B_LX+10,4*59+22,"开",TEXTMENU);
Outchar12(B_RX-25,4*59+22,"关",TEXTDIGITAL);
// Outchar12(105,462,"关",TEXTDIGITAL);
}
else if(_marker[ch_sel].marker_follow_flag==1)
{
Outchar12(B_LX+10,4*59+22,"开",TEXTDIGITAL);
Outchar12(B_RX-25,4*59+22,"关",TEXTMENU);
// Outchar12(105,462,"开",TEXTDIGITAL);
}
}
void refresh_down_mark()
{
char msg[20];
int i;
clear_rect(35,462,540,475);
clear_rect(35,462,540,475);
if((_softkeyid==1)||(_softkeyid==2)||(_softkeyid==3)||(_softkeyid1==41)||
(_softkeyid1==42)||(_softkeyid1==43)||(_softkeyid1==44)||(_softkeyid1==45))
{
if(_softkeyid==1)
{ Outchar12(35,462,"频标 1:",TEXTFURLN);
if(_marker[ch_sel].mark[0].on_off==OFF)
Outchar12(105,462,"关",TEXTDIGITAL);
else
khz_ormhz(_marker[ch_sel].mark[0].freq,2);
}
else if(_softkeyid==2)
{ Outchar12(35,462,"频标 2:",TEXTFURLN);
if(_marker[ch_sel].mark[1].on_off==OFF)
Outchar12(105,462,"关",TEXTDIGITAL);
else
khz_ormhz(_marker[ch_sel].mark[1].freq,2);
}
else if(_softkeyid==3)
{ Outchar12(35,462,"频标 3:",TEXTFURLN);
if(_marker[ch_sel].mark[2].on_off==OFF)
Outchar12(105,462,"关",TEXTDIGITAL);
else
khz_ormhz(_marker[ch_sel].mark[2].freq,2);
}
else if(_softkeyid1==41)
{ Outchar12(35,462,"频标 4:",TEXTFURLN);
if(_marker[ch_sel].mark[3].on_off==ON)
khz_ormhz(_marker[ch_sel].mark[3].freq,2);
else
Outchar12(105,462,"关",TEXTDIGITAL);
}
else if(_softkeyid1==42)
{ Outchar12(35,462,"频标 5:",TEXTFURLN);
if(_marker[ch_sel].mark[4].on_off==ON)
khz_ormhz(_marker[ch_sel].mark[4].freq,2);
else
Outchar12(105,462,"关",TEXTDIGITAL);
}
else if(_softkeyid1==43)
{ Outchar12(35,462,"频标 6:",TEXTFURLN);
if(_marker[ch_sel].mark[5].on_off==ON)
khz_ormhz(_marker[ch_sel].mark[5].freq,2);
else
Outchar12(105,462,"关",TEXTDIGITAL);
}
else if(_softkeyid1==44)
{ Outchar12(35,462,"频标 7:",TEXTFURLN);
if(_marker[ch_sel].mark[6].on_off==ON)
khz_ormhz(_marker[ch_sel].mark[6].freq,2);
else
Outchar12(105,462,"关",TEXTDIGITAL);
}
else if(_softkeyid1==45)
{ Outchar12(35,462,"频标 8:",TEXTFURLN);
if(_marker[ch_sel].mark[7].on_off==ON)
khz_ormhz(_marker[ch_sel].mark[7].freq,2);
else
Outchar12(105,462,"关",TEXTDIGITAL);
}
}
else if(_softkeyid==4&&_softkeyid1==0)
Outchar12(35,462,"更多频标",TEXTFURLN);
else if(_softkeyid==6&&_softkeyid1==0)
Outchar12(35,462,"频标函数",TEXTFURLN);
else if(_softkeyid==7&&_softkeyid1==0)
Outchar12(35,462,"频标搜索",TEXTFURLN);
else if(_softkeyid==5)
{ Outchar12(35,462,"所有频标:",TEXTFURLN);
Outchar12(105,462,"关",TEXTDIGITAL);
border_marker();
for(i=0;i<3;i++)
{
//marker_show1(i);
//mkr_show_mark_all(i);
refr_menu_mkr_all(i);
}
}
else if((_softkeyid1==61)||(_softkeyid1==62)||(_softkeyid1==63))
{
Outchar12(35,462,"频标 Δ:",TEXTFURLN);
CLR_DIGITAL;
for(i=0;i<3;i++)
{
if(_softkeyid1==60+i+1)
if(_marker[ch_sel].marker_fun[i].on_off==OFF)
Outchar12(105,462,"关",TEXTDIGITAL);
else
{ sprintf(msg,"%.2f",_marker[ch_sel].marker_fun[i].power);
if(_marker[ch_sel].marker_fun[i].power>-1e-3)
Outchar12(118,462,msg,TEXTDIGITAL);
else
Outchar12(105,462,msg,TEXTDIGITAL);
// init_cur_pwr(_marker[ch_sel].marker_fun[i].power);
curs_flag=1;
digital_en=1;
cursor();
}
}
}
else if(_softkeyid==7)
{
if(_softkeyid1==71)
{ Outchar12(35,462,"最大值 :",TEXTFURLN);
if(_marker[ch_sel].max_mkr.on_off==OFF)
{ CLR_DIGITAL;
Outchar12(105,462,"关",TEXTDIGITAL);
}
}
else if(_softkeyid1==72)
{ Outchar12(35,462,"最小值 :",TEXTFURLN);
if(_marker[ch_sel].min_mkr.on_off==OFF)
{ CLR_DIGITAL;
Outchar12(105,462,"关",TEXTDIGITAL);
}
}
else if(_softkeyid1==73)
{ clear_rect(105,462,540,475);
Outchar12(35,462,"中心频标:",TEXTFURLN);
if(_softkeyid2!=0&&(_lst_mkrkeys[ch_sel][2]==731||_lst_mkrkeys[ch_sel][2]==732||
_lst_mkrkeys[ch_sel][2]==733))
{ CLR_DIGITAL;
sprintf(msg,"%.2f dB",_marker[ch_sel].cen_mkr.set_attenuate);
if(_marker[ch_sel].cen_mkr.set_attenuate<0)
Outchar12(105,462,msg,TEXTDIGITAL);
else
Outchar12(105+13,462,msg,TEXTDIGITAL);
}
else if(_softkeyid2==734)
{ clear_rect(105,462,540,475);
Outchar12(105,462,"关",TEXTDIGITAL);
}
}
else if(_softkeyid1==74)
{ Outchar12(35,462,"频标跟踪:",TEXTFURLN);
if(_marker[ch_sel].marker_follow_flag==OFF){
clear_rect(105,464,540,475);
Outchar12(105,462,"关",TEXTDIGITAL);
}
else if(_marker[ch_sel].marker_follow_flag==ON){
clear_rect(105,464,540,475);
Outchar12(105,462,"开",TEXTDIGITAL);
}
}
}
}
void border_marker()
{
static int m1_3=-1;
static int m4=-1;
static int m5=-1;
static int m6=-1;
static int m7=-1;
int i,t,s,p;
if((_softkeyid==1)||(_softkeyid==2)||(_softkeyid==3)||(_softkeyid==5))
{erase_smal_border(4);erase_smal_border(6); erase_smal_border(7);
erase_big_border(m5);
if(_softkeyid==m1_3+1)
{ if(_marker[ch_sel].mark[m1_3].on_off==OFF)
{ erase_big_border(m1_3+1);
}
else if(_marker[ch_sel].mark[m1_3].on_off==ON)
{
}
}
else
{ if (_marker[ch_sel].mark[m1_3].on_off==OFF)
{ erase_smal_border(m1_3+1);
}
else if(_marker[ch_sel].mark[m1_3].on_off==ON)
{ erase_big_border(m1_3+1);
}
}
for(i=0;i<3;i++)
{
if(_softkeyid==i+1)
{ m1_3=i;
if(_marker[ch_sel].mark[i].on_off==OFF)
{
draw_smal_border(i+1);
}
else if(_marker[ch_sel].mark[i].on_off==ON)
{
draw_big_border(i+1);
}
}
}
if(_softkeyid==5)
{
if (_marker[ch_sel].mark[m1_3].on_off==OFF)
{ erase_smal_border(m1_3+1);
}
else if(_marker[ch_sel].mark[m1_3].on_off==ON)
{
erase_big_border(m1_3+1);
}
draw_big_border(5);
m5=5;
}
}
else if(_softkeyid==4)
{
if(_softkeyid1==m4+40+1)
{ if(_marker[ch_sel].mark[m4+3].on_off==OFF)
{ erase_big_border(m4+1);
}
else if(_marker[ch_sel].mark[m4+3].on_off==ON)
{
}
}
else
{ if(_marker[ch_sel].mark[m4+3].on_off==OFF)
{ erase_smal_border(m4+1);
}
else if(_marker[ch_sel].mark[m4+3].on_off==ON)
{ erase_big_border(m4+1);
}
}
// else if(_softkeyid1!=0)
if(_softkeyid1!=0)
for(t=0;t<5;t++)
{if(_softkeyid1==40+t+1)
{ m4=t;
if(_marker[ch_sel].mark[t+3].on_off==OFF)
{
draw_smal_border(t+1);
}
else if(_marker[ch_sel].mark[t+3].on_off==ON)
{
draw_big_border(t+1);
}
}
}
else{erase_smal_border(6); erase_smal_border(7); draw_smal_border(4);}
}
else if(_softkeyid==6)
{
erase_big_border(m6);
if(_softkeyid1!=0)
for(s=1;s<4;s++)
{if(_softkeyid1==60+s)
{ m6=s;
draw_big_border(s);
}
}
else{ erase_smal_border(4); erase_smal_border(7); draw_smal_border(6);}
}
else if(_softkeyid==7)
{ erase_big_border(m7);
if(_softkeyid1!=0){
for(p=1;p<3;p++)
{ if(_softkeyid1==70+p)
{ m7=p;
draw_big_border(p);
}
}
if(_softkeyid1==74){
draw_big_border(4);m7=4;
}
else if(_softkeyid1==73&&_softkeyid2==0){
draw_big_border(3);m7=3;
}
else if(_softkeyid1==73&&_softkeyid2!=0){
for(i=1;i<5;i++){
erase_smal_border(i);
if( mark_last==i+730)
draw_smal_border(i);
}
}
}
else{erase_smal_border(4); erase_smal_border(6); draw_smal_border(7);}
}
}
void dispmenu_mark(int i)
{ char msg[20];
float freq1;
if(_marker[ch_sel].mark[i].freq>=1000000.0){
freq1=_marker[ch_sel].mark[i].freq/1000000.0;
// sprintf(msg,"%");
}
else if(_marker[ch_sel].mark[i].freq<1000000.0&&_marker[ch_sel].mark[i].freq>=1000.0){
freq1=_marker[ch_sel].mark[i].freq/1000.0;
}
sprintf(msg,"%f",freq1);
msg[7]='\0';
disable();
setcolor(TEXTMENU);
if(i<=3)
{
outtextxy(B_LX+4,i*59+8-5+1+18,msg);
if(_marker[ch_sel].mark[i].freq>=1000000.0)
outtextxy(B_LX+60,i*59+8-5+1+18,"MHz");
else if(_marker[ch_sel].mark[i].freq<1000000.0&&_marker[ch_sel].mark[i].freq>=1000.0)
outtextxy(B_LX+60,i*59+8-5+1+18,"kHz");
}
else if(i>3)
{ outtextxy(B_LX+4,(i-3)*59+8-5+1+18,msg);
// outtextxy(B_LX+56,(i-3)*59+8-5+1+18,"MHz");
if(_marker[ch_sel].mark[i].freq>=1000000.0)
outtextxy(B_LX+56,(i-3)*59+8-5+1+18,"MHz");
else if(_marker[ch_sel].mark[i].freq<1000000.0&&_marker[ch_sel].mark[i].freq>=1000.0)
outtextxy(B_LX+56,(i-3)*59+8-5+1+18,"kHz");
}
}
void mark_fun(float attenuate,float max_power,int i_max,long &freqr,long &freql)
{
if(i_max<0||i_max>_status[chs].sweep_points-1)
return;
int j=i_max;
long freq_step=(double)_freq[chs].freq_width/(_status[chs].sweep_points-1);
while(--j>=0){
if((conv(chs==0?y_a[j]:y_b[j])-max_power-attenuate)<=0)
{
// freql=_freq[chs].start_freq+j*freq_step;
freql = _freq[chs].start_freq+(j)*freq_step +
(double)(attenuate + max_power - conv(chs==0?y_a[j]:y_b[j]))/
(double)(conv(chs==0?y_a[j+1]:y_b[j+1])-conv(chs==0?y_a[j]:y_b[j]))*freq_step;
// printf("%d %d %ld %ld %ld %.2f %.2f %.2f %.2f\n",i_max,j,_freq[chs].start_freq+j*freq_step,
// _freq[chs].start_freq+(j+1)*freq_step,freql,conv(y_a[22]),conv(y_a[23]),conv(y_a[24]),
// conv(y_a[25]));
break;
}
}
if(j==-1)
freql=0;
j=i_max;
while(++j<_status[chs].sweep_points){
if(conv(chs==0?y_a[j]:y_b[j])-max_power-attenuate<=0)
{
// freqr=_freq[chs].start_freq+j*freq_step;
freqr = _freq[chs].start_freq+(j-1)*freq_step +
(double)(attenuate +max_power - conv(chs==0?y_a[j-1]:y_b[j-1]))/
(conv(chs==0?y_a[j]:y_b[j])-conv(chs==0?y_a[j-1]:y_b[j-1]))*freq_step;
break;
}
}
if(j==_status[chs].sweep_points)
freqr=0;
// printf("%d ",j);
// printf("%ld ",freql);
// printf("%ld\n ",freqr);
}
BOOL StoreMarker()
{
FILE* fp;
if((fp = fopen("Marker.dat","wb"))==NULL){
return FALSE;
}
fwrite(_marker,sizeof(_MARKER),2,fp);
fclose(fp);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -