📄 rf_txiq.~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 + -