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

📄 test_e1122000.cpp

📁 一个关于s60第五版中的传感器的使用方法的例子
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*
* ==============================================================================

* ==============================================================================
*/

// INCLUDE FILES
#include <avkon.hrh>
#include <aknnotewrappers.h>
#include <stringloader.h>
#include <f32file.h>
#include <s32file.h>
#include <aknlists.h> 
#include <eikstart.h>
#include <aknmessagequerydialog.h> 

#include <Test_E1122000.rsg>
#include "Test_E1122000.h"
#include "Test_E1122000.hrh"

#include "Results_Container.h"
#include "PropertyContainer.h"


/*
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
*/
void CTestAppUi::ConstructL()
    {
    // Initialise app UI with standard value.
    BaseConstructL(CAknAppUi::EAknEnableSkin);
    
    iSensrvChannelFinder = CSensrvChannelFinder::NewL();
    GetAllChannelsL();
    	
    iResultsContainer = CResultsContainer::NewL(ClientRect(),iChannelInfoList);
	AddToStackL(iResultsContainer);
}

/*
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
*/
CTestAppUi::CTestAppUi()
    {
    // No implementation required
    }

/*
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
*/
CTestAppUi::~CTestAppUi()
{
	if(iProppertyContainer)
	{
		RemoveFromStack(iProppertyContainer);
	}
	
	delete iProppertyContainer;
	
    if ( iResultsContainer )
	{
        RemoveFromStack(iResultsContainer);
    }
        
    delete iResultsContainer;
    
    if(iSensrvSensorChannel)
    {
    	iSensrvSensorChannel->StopDataListening();
	    iSensrvSensorChannel->CloseChannel();
    }
    
    delete iSensrvSensorChannel;
    
    iChannelInfoList.Reset();
    delete iSensrvChannelFinder;
	
	
	if( iDoorObserver )
	{
		iDoorObserver->NotifyExit( MApaEmbeddedDocObserver::EEmpty );	
	}
}
/*
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
*/
 _LIT( KTimeString, "%-B%:0%J%:1%T%:2%S%.%*C4%:3%+B" );
 
void CTestAppUi::DataReceived( CSensrvChannel& aChannel, TInt aCount, TInt aDataLost )
{
	TBuf<250> progressBuf;
	
	TInt errErr(KErrNone);
	
	iDataLostCount = iDataLostCount + aDataLost;
	iDataCount = iDataCount + aCount;

	if( aChannel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdOrientationData )
	{
		TSensrvOrientationData data;
		
		TRAP(errErr,
		for( TInt i = 0; i < aCount; i++ )
	    {
	    	TPckgBuf<TSensrvOrientationData> dataBuf;
	    	aChannel.GetData( dataBuf );
	    	data = dataBuf();
	    	data.iTimeStamp.FormatL(progressBuf, KTimeString );
	    }
	    );
	    if(errErr != KErrNone)
	    {
	    	progressBuf.Zero();
	    }
	
    	switch ( data.iDeviceOrientation )
        {
        case TSensrvOrientationData::EOrientationDisplayUp:
            {
            progressBuf.Append( _L( "Display up" ) );
            break;
            }
        case TSensrvOrientationData::EOrientationDisplayDown:
            {
            progressBuf.Append( _L( "Display down" ) );
            break;
            }
        case TSensrvOrientationData::EOrientationDisplayLeftUp:
            {
            progressBuf.Append( _L( "Display left up" ) );
            break;
            }
        case TSensrvOrientationData::EOrientationDisplayRightUp:
            {
            progressBuf.Append( _L( "Display right up" ) );
            break;
            }
        case TSensrvOrientationData::EOrientationDisplayUpwards:
            {
            progressBuf.Append( _L( "Display upwards" ) );
            break;
            }
        case TSensrvOrientationData::EOrientationDisplayDownwards:
            {
            progressBuf.Append( _L( "Display downwards" ) );
            break;
            }
        default:
            {
            progressBuf.Append( _L( "Unknown orientation" ) );
            break;
            }
        }
	}
	else if ( aChannel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdRotationData )
	{
		TSensrvRotationData data;
		
		TRAP(errErr,
		for( TInt i = 0; i < aCount; i++ )
	    {
	    	TPckgBuf<TSensrvRotationData> dataBuf;
	    	aChannel.GetData( dataBuf );
	    	data = dataBuf();
	    	data.iTimeStamp.FormatL( progressBuf, KTimeString );
	    }
	    );
	    if(errErr != KErrNone)
	    {
	    	progressBuf.Zero();
	    }
	    
	    progressBuf.Append(_L(". Rot ,X=" ));
	    progressBuf.AppendNum(data.iDeviceRotationAboutXAxis);
	        
	    progressBuf.Append(_L(" ,Y=" ));
	    progressBuf.AppendNum(data.iDeviceRotationAboutYAxis);
	        
	    progressBuf.Append(_L(" ,Z=" ));
	    progressBuf.AppendNum(data.iDeviceRotationAboutZAxis);
	    
	    if(iData1Max < data.iDeviceRotationAboutXAxis)
	    {
	    	iData1Max = data.iDeviceRotationAboutXAxis;
	    }
	    
	    if(iData2Max < data.iDeviceRotationAboutYAxis)
	    {
	    	iData2Max = data.iDeviceRotationAboutYAxis;
	    }
	    
	    if(iData3Max < data.iDeviceRotationAboutZAxis)
	    {
	    	iData3Max = data.iDeviceRotationAboutZAxis;
	    }
	    
	    if(iData1Min > data.iDeviceRotationAboutXAxis)
	    {
	    	iData1Min = data.iDeviceRotationAboutXAxis;
	    }
	    
	    if(iData2Min > data.iDeviceRotationAboutYAxis)
	    {
	    	iData2Min = data.iDeviceRotationAboutYAxis;
	    }
	    
	    if(iData3Min > data.iDeviceRotationAboutZAxis)
	    {
	    	iData3Min = data.iDeviceRotationAboutZAxis;
	    }   
	}
	else if(aChannel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdAccelerometerDoubleTappingData)
	{
		TSensrvTappingData data;
		
		TRAP(errErr,
		for( TInt i = 0; i < aCount; i++ )
		{
			TPckgBuf<TSensrvTappingData> dataBuf;
			aChannel.GetData( dataBuf );
			data = dataBuf();
			data.iTimeStamp.FormatL(progressBuf, KTimeString );
		}
		);
	    if(errErr != KErrNone)
	    {
	    	progressBuf.Zero();
	    }
	    
		progressBuf.Append(_L(" ,Tap dir=" ));
	    progressBuf.AppendNum(data.iDirection);
	    
	    
	    if(iData1Max < data.iDirection)
	    {
	    	iData1Max = data.iDirection;
	    }
	    
	    if(iData1Min > data.iDirection)
	    {
	    	iData1Min = data.iDirection;
	    }
	}
	else if( aChannel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdAccelerometerXYZAxisData )
    {
    	TSensrvAccelerometerAxisData data;
    
    	TRAP(errErr,
    	for( TInt i = 0; i < aCount; i++ )
		{
    		TPckgBuf<TSensrvAccelerometerAxisData> dataBuf;
        	aChannel.GetData(dataBuf);
        	data = dataBuf();
        	data.iTimeStamp.FormatL( progressBuf, KTimeString );
		}
		);
	    if(errErr != KErrNone)
	    {
	    	progressBuf.Zero();
	    }
	    
		progressBuf.Append(_L(".XYZ ,X=" ));
	    progressBuf.AppendNum(data.iAxisX);
	        
	    progressBuf.Append(_L(" ,Y=" ));
	    progressBuf.AppendNum(data.iAxisY);
	        
	    progressBuf.Append(_L(" ,Z=" ));
	    progressBuf.AppendNum(data.iAxisZ);
	    
	    
	    if(iData1Max < data.iAxisX)
	    {
	    	iData1Max = data.iAxisX;
	    }
	    
	    if(iData2Max < data.iAxisY)
	    {
	    	iData2Max = data.iAxisY;
	    }
	    
	    if(iData3Max < data.iAxisZ)
	    {
	    	iData3Max = data.iAxisZ;
	    }
	    
	    if(iData1Min > data.iAxisX)
	    {
	    	iData1Min = data.iAxisX;
	    }
	    
	    if(iData2Min > data.iAxisY)
	    {
	    	iData2Min = data.iAxisY;
	    }
	    
	    if(iData3Min > data.iAxisZ)
	    {
	    	iData3Min = data.iAxisZ;
	    } 
    }
	else if(aChannel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdMagnetometerXYZAxisData)
	{
		TSensrvMagnetometerAxisData data;
    	
    	TRAP(errErr,
    	for( TInt i = 0; i < aCount; i++ )
		{
			TPckgBuf<TSensrvMagnetometerAxisData> dataBuf;
			aChannel.GetData( dataBuf );
			data = dataBuf();
			data.iTimeStamp.FormatL(progressBuf, KTimeString );
		}
		);
	    if(errErr != KErrNone)
	    {
	    	progressBuf.Zero();
	    }
	    
		progressBuf.Append(_L(".Mang ,X=" ));
	    progressBuf.AppendNum(data.iAxisXRaw);
	        
	    progressBuf.Append(_L(" ,Y=" ));
	    progressBuf.AppendNum(data.iAxisYRaw);
	        
	    progressBuf.Append(_L(" ,Z=" ));
	    progressBuf.AppendNum(data.iAxisZRaw);
	    
	    
	    if(iData1Max < data.iAxisXRaw)
	    {
	    	iData1Max = data.iAxisXRaw;
	    }
	    
	    if(iData2Max < data.iAxisYRaw)
	    {
	    	iData2Max = data.iAxisYRaw;
	    }
	    
	    if(iData3Max < data.iAxisZRaw)
	    {
	    	iData3Max = data.iAxisZRaw;
	    }
	    
	    if(iData1Min > data.iAxisXRaw)
	    {
	    	iData1Min = data.iAxisXRaw;
	    }
	    
	    if(iData2Min > data.iAxisYRaw)
	    {
	    	iData2Min = data.iAxisYRaw;
	    }
	    
	    if(iData3Min > data.iAxisZRaw)
	    {
	    	iData3Min = data.iAxisZRaw;
	    }
	}
	else
	{
		progressBuf.Copy(_L("Channel = " ));

⌨️ 快捷键说明

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