⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rf_txiq.~cpp

📁 关于MTK 的MATA开发工具的RF源码
💻 ~CPP
字号:
//#include "meta2.h"
#include <IniFiles.hpp>

#include "rf_txiq.h"
#include "man_timer.h"
#include "man_active.h"
#include "man_fdm.h"
//===========================================================================

static CRFTXIQ*  rf_txiq_ptr;

//===========================================================================
static  void CNF_ReadFromNVRAM( void )
{
  rf_txiq_ptr->CNF_ReadFromNVRAM(); 
}

static  void  CNF_WriteToNVRAM( void )
{
  rf_txiq_ptr->CNF_WriteToNVRAM( );
}
static void  REQ_TimeOut( void )
{  rf_txiq_ptr->REQ_TimeOut();
}
static void  REQ_Finish( void )
{   rf_txiq_ptr->REQ_Finish();
}

//===========================================================================

CRFTXIQ::CRFTXIQ( void )
{
   IsRunning = false;
   ConfirmCallback = 0;

   TxiqBufSize = 0;
   TxiqBuf = 0;

   TrimI = 0;
   TrimQ = 0;
   OffsetI = 0;
   OffsetQ = 0;
}
//---------------------------------------------------------------------------

CRFTXIQ::~CRFTXIQ( )
{
   IsRunning = false;
   ConfirmCallback = 0;
   if(TxiqBuf)
   {
      delete [] TxiqBuf;
      TxiqBuf = NULL;
   }   

}
//---------------------------------------------------------------------------

void  CRFTXIQ::REQ_Finish( void )
{
   if(!IsRunning)  return;

   TimerMan->CounterStop();
   Confirm( STATE_TXIQ_OK );
   IsRunning = false;
}
//---------------------------------------------------------------------------

void  CRFTXIQ::REQ_Stop( void )
{
   if(!IsRunning)  return;

   TimerMan->CounterStop();
// META_Cancel( RFID_TXIQ );
   Confirm( STATE_TXIQ_STOP );
   IsRunning = false;
}
//---------------------------------------------------------------------------

void  CRFTXIQ::REQ_TimeOut( void )
{
   if(!IsRunning)  return;

   TimerMan->CounterStop();
// META_Cancel( RFID_TXIQ );
   Confirm( STATE_TXIQ_TIMEOUT );
   IsRunning = false;
}
//---------------------------------------------------------------------------

void  CRFTXIQ::Confirm( int confirm_state )
{
   if(!IsRunning)  return;

   if(ConfirmCallback==0)  return;
   ConfirmState = confirm_state;
   ActiveMan->SetActiveFunction( ConfirmCallback );
}
//===========================================================================
void  CRFTXIQ::REQ_Read_From_NVRAM( void )
{
   rf_txiq_ptr = this;
   IsRunning = true;

   if(TxiqBuf==0)
   {
      MetaResult = META_NVRAM_GetRecLen("NVRAM_EF_L1_TXIQ_LID",
	                                      &TxiqBufSize );
      if(MetaResult!=META_SUCCESS)
      {  Confirm( STATE_TXIQ_FAIL );  return;  }
      TxiqBuf = new  char[TxiqBufSize];
   }


   NVRAMMan->ConfirmCallback = ::CNF_ReadFromNVRAM;

							  
	 NVRAMMan->REQ_ReadNVRAM_Start( "NVRAM_EF_L1_TXIQ_LID",
	                          1, // only 1 record
                              TxiqBufSize,
                              TxiqBuf );						  
							  
}
//-------------------------------------

void  CRFTXIQ::CNF_ReadFromNVRAM( void )
{
   if(!IsRunning)  return;


   int  state = NVRAMMan->ConfirmState;


   if(state==STATE_NVRAM_OK)
   {
      MetaResult = META_NVRAM_GetRecFieldValue( "NVRAM_EF_L1_TXIQ_LID",
                                               "TxTrimI",
                                               TxiqBuf,
                                               TxiqBufSize,
                                               &TrimI,
                                               sizeof(TrimI) );									   
											   
											   
											   
											   
      if(MetaResult!=META_SUCCESS)
      {  Confirm( STATE_TXIQ_FAIL );  return;  }


	 MetaResult = META_NVRAM_GetRecFieldValue( "NVRAM_EF_L1_TXIQ_LID",
                                               "TxTrimQ",
                                               TxiqBuf,
                                               TxiqBufSize,
                                               &TrimQ,
                                               sizeof(TrimQ) );

      if(MetaResult!=META_SUCCESS)
      {   Confirm( STATE_TXIQ_FAIL );  return;  }

      MetaResult = META_NVRAM_GetRecFieldValue( "NVRAM_EF_L1_TXIQ_LID",
                                               "TxOffsetI",
                                               TxiqBuf,
                                               TxiqBufSize,
                                               &OffsetI,
                                               sizeof(OffsetI) );

      if(MetaResult!=META_SUCCESS)
      {  Confirm( STATE_TXIQ_FAIL );  return;  }



      MetaResult = META_NVRAM_GetRecFieldValue( "NVRAM_EF_L1_TXIQ_LID",
                                               "TxOffsetQ",
                                               TxiqBuf,
                                               TxiqBufSize,
                                               &OffsetQ,
                                               sizeof(OffsetQ) );

      if(MetaResult!=META_SUCCESS)
      {  Confirm( STATE_TXIQ_FAIL );  return;  }

      ActiveMan->SetActiveFunction( ::REQ_Finish );
   }
   else if(state==STATE_NVRAM_TIMEOUT)
   {   Confirm( STATE_TXIQ_TIMEOUT );
   }
   else if(state==STATE_NVRAM_STOP)
   {   Confirm( STATE_TXIQ_STOP );
   }
   else
   {   Confirm( STATE_TXIQ_FAIL );
   }
}
//===========================================================================
void  CRFTXIQ::REQ_Write_To_NVRAM( void )
{  MetaResult;

   rf_txiq_ptr = this;
   IsRunning = true;

   if(TxiqBuf==0)
   {
      MetaResult = META_NVRAM_GetRecLen("NVRAM_EF_L1_TXIQ_LID",
	                                      &TxiqBufSize );
      if(MetaResult!=META_SUCCESS)
      {  Confirm( STATE_TXIQ_FAIL );  return;  }
      TxiqBuf = new  char[TxiqBufSize];
   }


										   
   MetaResult = META_NVRAM_SetRecFieldValue( "NVRAM_EF_L1_TXIQ_LID",
                                           "TxTrimI",
                                           TxiqBuf,
                                           TxiqBufSize,
                                           &TrimI,
                                           sizeof(TrimI) );


   if(MetaResult!=META_SUCCESS)
   {  Confirm( STATE_TXIQ_FAIL );  return;  }

   MetaResult = META_NVRAM_SetRecFieldValue( "NVRAM_EF_L1_TXIQ_LID",
                                           "TxTrimQ",
                                           TxiqBuf,
                                           TxiqBufSize,
                                           &TrimQ,
                                           sizeof(TrimQ) );


   if(MetaResult!=META_SUCCESS)
   {  Confirm( STATE_TXIQ_FAIL );  return;  }


   MetaResult = META_NVRAM_SetRecFieldValue(  "NVRAM_EF_L1_TXIQ_LID",
                                           "TxOffsetI",
                                           TxiqBuf,
                                           TxiqBufSize,
                                           &OffsetI,
                                           sizeof(OffsetI) );

   if(MetaResult!=META_SUCCESS)
   {  Confirm( STATE_TXIQ_FAIL );  return;  }

   MetaResult = META_NVRAM_SetRecFieldValue( "NVRAM_EF_L1_TXIQ_LID",
                                           "TxOffsetQ",
                                           TxiqBuf,
                                           TxiqBufSize,
                                           &OffsetQ,
                                           sizeof(OffsetQ) );

   if(MetaResult!=META_SUCCESS)
   {  Confirm( STATE_TXIQ_FAIL );  return;  }

   NVRAMMan->ConfirmCallback = ::CNF_WriteToNVRAM;

   NVRAMMan->REQ_WriteNVRAM_Start( "NVRAM_EF_L1_TXIQ_LID",
	                           1, // only 1 record
                               TxiqBufSize,
                               TxiqBuf );

}
//-------------------------------------

//void  CRFTXIQ::CNF_WriteToFDM( void )
void  CRFTXIQ::CNF_WriteToNVRAM( void )
{
   if(!IsRunning)  return;

//   int  state = FDMMan->ConfirmState;
  int  state = NVRAMMan->ConfirmState;

  // if(state==STATE_FDM_OK)
  if(state==STATE_NVRAM_OK)
   {
      ActiveMan->SetActiveFunction( ::REQ_Finish );
   }
  // else if(state==STATE_FDM_TIMEOUT)
  else if(state==STATE_NVRAM_TIMEOUT)
   {  Confirm( STATE_TXIQ_TIMEOUT );
   }
 //  else if(state==STATE_FDM_STOP)
 else if(state==STATE_NVRAM_STOP)
   {  Confirm( STATE_TXIQ_STOP );
   }
   else
   {  Confirm( STATE_TXIQ_FAIL );
   }
}
//===========================================================================

bool  CRFTXIQ::REQ_Read_From_File( char *filename )
{
   TIniFile   *ini_file;

   ini_file = new TIniFile( filename );

   TrimI = ini_file->ReadInteger( "TX IQ setting",
                                  "Trim I",
                                  0 );

   TrimQ = ini_file->ReadInteger( "TX IQ setting",
                                  "Trim Q",
                                  0 );

   OffsetI = ini_file->ReadInteger( "TX IQ setting",
                                    "Offset I",
                                    0 );

   OffsetQ = ini_file->ReadInteger( "TX IQ setting",
                                    "Offset Q",
                                    0 );

   delete  ini_file;

   return( true );
}
//===========================================================================

bool  CRFTXIQ::REQ_Write_To_File( char *filename )
{
   TIniFile   *ini_file;

   ini_file = new TIniFile( filename );

   ini_file->WriteInteger( "TX IQ setting",
                           "Trim I",
                           TrimI );

   ini_file->WriteInteger( "TX IQ setting",
                           "Trim Q",
                           TrimQ );

   ini_file->WriteInteger( "TX IQ setting",
                           "Offset I",
                           OffsetI );

   ini_file->WriteInteger( "TX IQ setting",
                           "Offset Q",
                           OffsetQ );

   delete  ini_file;

   return( true );
}
//===========================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -