📄 rf_ct.cpp
字号:
//#include "meta2.h"
//===========================================================================
#include <IniFiles.hpp>
#include "form_RFTool.h"
#include "rf_txiq.h"
#include "man_timer.h"
#include "man_active.h"
#include "man_fdm.h"
static CRFCT* rf_ct_ptr;
//===========================================================================
static void REQ_SelectBand( void )
{ rf_ct_ptr->REQ_SelectBand( );
}
static void __stdcall CNF_SelectBand( const unsigned char cnf, const short token, void *usrData )
{
rf_ct_ptr->CNF_SelectBand( cnf, token, usrData );
}
static void REQ_BBTXCfg( void )
{ rf_ct_ptr->REQ_BBTXCfg( );
}
static void __stdcall CNF_BBTXCfg(const unsigned char cnf, const short token, void *usrData)
{
rf_ct_ptr->CNF_BBTXCfg( cnf, token, usrData );
}
static void REQ_ContinueTX( void )
{ rf_ct_ptr->REQ_ContinueTX( );
}
static void __stdcall CNF_ContinueTX(const unsigned char cnf, const short token, void *usrData)
{
rf_ct_ptr->CNF_ContinueTX( cnf, token, usrData );
}
static void REQ_TimeOut( void )
{ rf_ct_ptr->REQ_TimeOut();
}
static void REQ_Finish( void )
{ rf_ct_ptr->REQ_Finish();
}
//===========================================================================
CRFCT::CRFCT( void )
{
IsRunning = false;
ConfirmCallback = 0;
RFReq_CT = NULL;
RFReq_BBTXCFG = NULL;
}
//---------------------------------------------------------------------------
CRFCT::~CRFCT( )
{
IsRunning = false;
ConfirmCallback = 0;
if( RFReq_BBTXCFG != NULL )
{
delete RFReq_BBTXCFG;
RFReq_BBTXCFG = NULL;
}
if( RFReq_CT != NULL )
{
delete RFReq_CT;
RFReq_CT = NULL;
}
}
//---------------------------------------------------------------------------
void CRFCT::REQ_Finish( void )
{
if(!IsRunning) return;
TimerMan->CounterStop();
Confirm( STATE_CT_OK );
IsRunning = false;
}
//---------------------------------------------------------------------------
void CRFCT::REQ_Stop( void )
{
if(!IsRunning) return;
TimerMan->CounterStop();
META_Cancel( RFID_CT );
Confirm( STATE_CT_STOP );
IsRunning = false;
}
//---------------------------------------------------------------------------
void CRFCT::REQ_TimeOut( void )
{
if(!IsRunning) return;
TimerMan->CounterStop();
META_Cancel( RFID_CT );
Confirm( STATE_CT_TIMEOUT );
IsRunning = false;
}
//---------------------------------------------------------------------------
void CRFCT::Confirm( int confirm_state )
{
if(!IsRunning) return;
if(ConfirmCallback==0) return;
ConfirmState = confirm_state;
ActiveMan->SetActiveFunction( ConfirmCallback );
}
//===========================================================================
void CRFCT::REQ_Start( int band, int arfcn, int pattern, int on_off, int trim_i, int trim_q, int off_i, int off_q )
{
rf_ct_ptr = this;
IsRunning = true;
Band = band;
Arfcn = arfcn;
Pattern = pattern;
OnOff = on_off;
TrimI = trim_i;
TrimQ = trim_q;
OffsetI = off_i;
OffsetQ = off_q;
TimerMan->CounterStart( 1000, ::REQ_TimeOut );
ActiveMan->SetActiveFunction( ::REQ_SelectBand );
}
//---------------------------------------------------------------------------
void CRFCT::REQ_SelectBand( void )
{
if(!IsRunning) return;
unsigned char select_PCS1900;
if(Band==BANDSEL_PCS1900)
select_PCS1900 = 1;
else
select_PCS1900 = 0;
MetaResult = META_Rf_SelectFrequencyBand1900(select_PCS1900, ::CNF_SelectBand, &RFID_CT, NULL );
if(MetaResult!=META_SUCCESS)
{ Confirm( STATE_CT_FAIL ); return; }
}
//-------------------------------------
void __stdcall CRFCT::CNF_SelectBand( const unsigned char cnf, const short token, void *usrData )
{
if(!IsRunning) return;
if(cnf==false)
{ Confirm( STATE_CT_FAIL ); return; }
ActiveMan->SetActiveFunction( ::REQ_BBTXCfg );
}
//---------------------------------------------------------------------------
void CRFCT::REQ_BBTXCfg( void )
{
if(!IsRunning) return;
if( RFReq_BBTXCFG == NULL )
{
RFReq_BBTXCFG = new RfSetBBTXCfg_Req;
}
RFReq_BBTXCFG->TxTrimI = TrimI;
RFReq_BBTXCFG->TxTrimQ = TrimQ;
RFReq_BBTXCFG->TxOffsetI = OffsetI;
RFReq_BBTXCFG->TxOffsetQ = OffsetQ;
MetaResult = META_Rf_SetBBTXCfg( RFReq_BBTXCFG, ::CNF_BBTXCfg, &RFID_CT, NULL );
if(MetaResult!=META_SUCCESS)
{ Confirm( STATE_CT_FAIL ); return; }
}
//-------------------------------------
void __stdcall CRFCT::CNF_BBTXCfg(const unsigned char cnf, const short token, void *usrData)
{
if(!IsRunning) return;
if(cnf==false)
{ Confirm( STATE_CT_FAIL ); return; }
ActiveMan->SetActiveFunction( ::REQ_ContinueTX );
}
//---------------------------------------------------------------------------
void CRFCT::REQ_ContinueTX( void )
{
if(!IsRunning) return;
if( RFReq_CT == NULL )
{
RFReq_CT = new RfCnTx_Req;
}
RFReq_CT->arfcn = Arfcn;
RFReq_CT->pattern = (ContTxPattern)Pattern;
RFReq_CT->OnOff = OnOff;
MetaResult = META_Rf_CONTINUE_TX( RFReq_CT, ::CNF_ContinueTX, &RFID_CT, NULL );
if(MetaResult!=META_SUCCESS)
{ Confirm( STATE_CT_FAIL ); return; }
}
//-------------------------------------
void __stdcall CRFCT::CNF_ContinueTX(const unsigned char cnf, const short token, void *usrData)
{
if(!IsRunning) return;
if(cnf==false)
{ Confirm( STATE_CT_FAIL ); return; }
ActiveMan->SetActiveFunction( ::REQ_Finish );
}
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -