📄 autosearch.cpp
字号:
((Cnim*)m_pParent)->m_demod->message2(t);
//2222222222222222222222222
if(check_same_transponder(FREQ)){ // same transponder locked again?
//-- new TP search --
flag=demod_288_algo(); // search TP without "check_signal"
// ((Cnim*)m_pParent)->nim_receive();
((Cnim*)m_pParent)->update(); // update status
FREQ=freq-((Cnim*)m_pParent)->nim_status.df;
BAUD=((Cnim*)m_pParent)->nim_status.symbolrate;
//
t.Format("[%d] (%d,%d)",flag,FREQ, BAUD);
message(t);
//2222222222222222222222222
((Cnim*)m_pParent)->m_demod->message2(t);
//2222222222222222222222222
//
if(flag && check_same_transponder(FREQ)){ //lock status OK? , same transponder?
//--new TP found !!--
message("< OK!! >");
t.Format("[%d] (%d,%d)",flag,FREQ, BAUD);
message(t);
tp[tp_num].freq =FREQ;
tp[tp_num].baud =BAUD;
//test060727
tp[tp_num].freq_original=freq;
tp[tp_num].freq_offset=((Cnim*)m_pParent)->nim_status.df;
//
freq=tp[tp_num].freq; // to calculate the next frequency,
// original freqency should be set to the locked frequency .
//
freq_step=calculate_freq_step_from_baud(BAUD); //calculate freq step based on the baud
//
tp_num+=1;
//
t.Format(" (freq_step=%d)",freq_step);
message(t);
//2222222222222222222222222
((Cnim*)m_pParent)->m_demod->message2(t);
//2222222222222222222222222
set_dialog_list();
//2222222222222222222222222
//CString t;
t=" -> OK!!";
((Cnim*)m_pParent)->m_demod->message2(t);
//2222222222222222222222222
}
else{
//--locked, but old TP--
freq_step=freq_step_original; //freq step set to the original value
//2222222222222222222222222
t=" -> same TP / lock NG";
((Cnim*)m_pParent)->m_demod->message2(t);
//2222222222222222222222222
}
}
else{
//same TP
freq_step=freq_step_original; //freq step set to the original value
//2222222222222222222222222
t=" -> same TP";
((Cnim*)m_pParent)->m_demod->message2(t);
//2222222222222222222222222
}
}
else{
//NG
freq_step=freq_step_original;
//2222222222222222222222222
t=" -> NG";
((Cnim*)m_pParent)->m_demod->message2(t);
//2222222222222222222222222
}
//2222222222222222222222222
((Cnim*)m_pParent)->m_demod->message2("");
//2222222222222222222222222
t.Format("LK_flag?=%d",flag);
message(t);
//-=-=-=-=-=-=-=--=-=-=-=-=-=-=--=-=-=-=-=-=-=--=-=-=-=-=-=-=--=-=-=-=-=-=-=-
// CString t;
// message(" -----");
// t.Format("(%d)",freq_count);
// message(t);
// BOOL flag;
// long FREQ,BAUD;
// ((Cnim*)m_pParent)->tuner.freq=freq*1000;
// ((Cnim*)m_pParent)->demod.symbolrate=0;
// t.Format(" ( freq=%d )",freq*1000);
// message(t);
// ((Cnim*)m_pParent)->nim_receive();
// ((Cnim*)m_pParent)->update();
//
// // if(flag) {
// // int i;
// // for(i=0;i<=10;i++)
// // {
// // Sleep(100);
// // ((Cnim*)m_pParent)->update();
// // t.Format(" (%ld,%ld)",freq-((Cnim*)m_pParent)->nim_status.df,((Cnim*)m_pParent)->nim_status.symbolrate);
// // message(t);
// // }
// // }
//
// FREQ=freq-((Cnim*)m_pParent)->nim_status.df;
// BAUD=((Cnim*)m_pParent)->nim_status.symbolrate;
//
// flag=LK();
// if(flag){
// // if(1){
// message("< LOCK!! >");
// t.Format("freq=%ld, (%d,%d) same?=%d", freq, FREQ, BAUD, check_same_transponder(FREQ));
// message(t);
// if(check_same_transponder(FREQ)){ //same transponder locked again?
// tp[tp_num].freq =FREQ;
// tp[tp_num].baud =BAUD;
// //test060727
// tp[tp_num].freq_original=freq;
// tp[tp_num].freq_offset=((Cnim*)m_pParent)->nim_status.df;
// //
// tp_num+=1;
// freq_step=calculate_freq_step_from_baud(BAUD);
// //
// set_dialog_list();
// }
// }
// else{
// freq_step=freq_step_original;
// }
// t.Format("LK_flag?=%d",flag);
// message(t);
//
//
}
int Cautosearch::LK()
{
return ((Cnim*)m_pParent)->nim_status.lk;
}
void Cautosearch::set_start_parameter()
{
freq_count=0;
tp_num=0;
freq=freq_start;
freq_step_original=freq_step;
reset_tp();
set_dialog_list_reset();
//time-----
_ftime( &tstruct_original );
//---------
}
long Cautosearch::calculate_freq_step_from_baud(long baud) //kHz
{
long freq_step_;
freq_step_=baud/2+freq_step_original;
t_global.Format(" [freq_step_:%ld (baud:%ld original:%ld)]",freq_step_,baud,freq_step_original);
message(t_global);
return freq_step_;
}
BOOL Cautosearch::check_same_transponder(long freq)
{
message("<check_same_transponder>");
CString t;
BOOL flag=1;//1:OK, 0:NG
// if(tp_num!=0)
{
int i=0;
do{
if( (tp[i].freq-500<freq) && (freq<tp[i].freq+500) )
flag=0;
t.Format(" tp[%d].freq= %d <--> %d",i,tp[i].freq,freq);
message(t);
i++;
} while( (i<tp_num) && (flag==1) );
t.Format(" flag=%d",flag);
message(t);
//message("");
}
return flag;
}
void Cautosearch::reset_tp()
{
int i;
for(i=0;i<=500;i++){
tp[i].baud=0;
tp[i].freq=0;
}
}
void Cautosearch::show_result()
{
int i;
CString t;
message_reset();
message("<search result>");
t.Format(" freq start:%.3lf, stop:%.3lf, step:%.3lf [MHz]",double(freq_start)/1000.,double(freq_stop)/1000.,double(freq_step)/1000. );
message(t);
t.Format(" time=%.3lf[s]",double(elapsed_time)/1000.);
message(t);
t.Format("\tfreq[kHz]\tbaud[ksps]");
message(t);
// message("");
for(i=0;i<tp_num;i++)
{
t.Format("[%.3d] \t %ld\t %ld",i,tp[i].freq,tp[i].baud);
//t.Format("[%.3d] \t %ld(%ld)\t %ld",i,tp[i].freq,tp[i].freq_original,tp[i].baud);
//t.Format("[%.3d] \t %ld(%ld/%ld)\t %ld",i,tp[i].freq,tp[i].freq_original,tp[i].freq_offset,tp[i].baud);
//t.Format("[%.3d] \tfreq=%ld\tbaud=%ld",i,tp[i].freq,tp[i].baud);
message(t);
}
show_message();
}
void Cautosearch::OnDblclkLISTresult()
{
show_result();
}
void Cautosearch::set_dialog_list()
{
set_dialog_list_reset();
CString t;
CListBox* pLB=(CListBox*)GetDlgItem(IDC_LIST_result);
set_dialog_list_time();
t.Format(" freq[kHz]\t baud[ksps]");
pLB->AddString(t);
int i;
for(i=0;i<tp_num;i++){
t.Format("[%.3d] %.7ld\t %.5ld",i,tp[i].freq,tp[i].baud);
pLB->AddString(t);
}
// set_dialog_list_reset();
// CString t;
// CListBox* pLB=(CListBox*)GetDlgItem(IDC_LIST_result);
// int i;
// for(i=0;i<tp_num;i++){
// t.Format("[%.3d] freq=%ld\tbaud=%ld",i,tp[i].freq,tp[i].baud);
// pLB->AddString(t);
// }
}
void Cautosearch::set_dialog_list_reset()
{
CString string;
CListBox* pLB=(CListBox*)GetDlgItem(IDC_LIST_result);
while( (pLB-> DeleteString( 0 ))>0 );
}
void Cautosearch::set_dialog_list_finish()
{
set_dialog_list_reset();
CString t;
CListBox* pLB=(CListBox*)GetDlgItem(IDC_LIST_result);
t.Format(" << finished >>");
pLB->AddString(t);
}
int Cautosearch::get_elapsed_time()
{
char *stopstring="";
_ftime( &tstruct );
CString t;
t.Format( "%.3u", (tstruct.time*1000+tstruct.millitm)-(tstruct_original.time*1000+tstruct_original.millitm));
return strtol( t, &stopstring,10);
}
void Cautosearch::set_dialog_list_time()
{
CString t;
CListBox* pLB=(CListBox*)GetDlgItem(IDC_LIST_result);
pLB->DeleteString(0);
pLB->DeleteString(0);
// pLB->DeleteString(0);
// pLB->InsertString(0,"");
t.Format(" time=%.3lf[s] (TP=%d)",double(get_elapsed_time())/1000.,tp_num);
//t.Format(" time=%.3lf[s]",double(get_elapsed_time())/1000.);
pLB->InsertString(0,t);
pLB->InsertString(0,"<search result>");
}
//V0.04[061109] [STB0288+ix2410]
void Cautosearch::demod_288_init()
{
((Cnim*)m_pParent)->demod_288_init();
}
BOOL Cautosearch::check_signal()
{
return ((Cnim*)m_pParent)->check_signal();
}
BOOL Cautosearch::demod_288_algo()
{
return ((Cnim*)m_pParent)->demod_288_algo();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -