Beispiel #1
0
void CMagnetometer::DataReceived(CSensrvChannel& aChannel, TInt aCount, TInt aDataLost)
{
    if (aChannel.GetChannelInfo().iChannelType ==  KSensrvChannelTypeIdMagnetometerXYZAxisData)
    {
        TPckgBuf<TSensrvMagnetometerAxisData> dataBuffer;
        TSensrvMagnetometerAxisData data;

        for (TInt i = 0; i < aCount; ++i)
        {
            aChannel.GetData(dataBuffer);

            data = dataBuffer();
            // Do something with the date in data variable
            // data.iTimeStamp

            // Compensate axis for landscape mode
            TInt x = -data.iAxisYCalibrated;
            TInt y =  data.iAxisXCalibrated;
            TInt z =  data.iAxisZCalibrated;
#if 0
            TInt x = data.iAxisXCalibrated;
            TInt y = data.iAxisYCalibrated;
            TInt z = data.iAxisZCalibrated;
#endif
            const TReal KPole = 0.85;

            iX = KPole * iX + (1.0 - KPole) * x;
            iY = KPole * iY + (1.0 - KPole) * y;
            iZ = KPole * iZ + (1.0 - KPole) * z;
        }
    }
}
Qt::Orientation HbSensorListener::orientationFromData(CSensrvChannel &aChannel, TInt aCount)
{
    Qt::Orientation orientation = mOrientation;
    if (aChannel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdOrientationData) {
        TSensrvOrientationData data;
        for (TInt i = 0; i < aCount; ++i) {
            TPckgBuf<TSensrvOrientationData> dataBuf;
            aChannel.GetData(dataBuf);
            data = dataBuf();
            orientation = sensorOrientationToQtOrientation(data.iDeviceOrientation);
        }
    }
    return orientation;
}
Beispiel #3
0
void CMagnetometer::PropertyChanged(CSensrvChannel& aChannel, const TSensrvProperty& aChangedProperty)
{
    TSensrvChannelInfo info = aChannel.GetChannelInfo();

    if (info.iChannelType == KSensrvChannelTypeIdMagnetometerXYZAxisData &&
            aChangedProperty.GetPropertyId() == KSensrvPropCalibrationLevel)
    {
        TInt calibration = 0;
        aChangedProperty.GetValue(calibration);

        iCalibration = calibration == 0? ENone :
                       calibration == 1? ELow :
                       calibration == 2? EModerate :
                       calibration == 3? EHigh : ENone;
    }
}