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

📄 el_scal.cpp

📁 电能质量交换格式转换库
💻 CPP
字号:
/*
**  CPQDIF_E_Scalar class. Implements the PQDIF scalar element.
**  --------------------------------------------------------------------------
**
**  File name:          $Workfile: el_scal.cpp $
**  Last modified:      $Modtime: 12/22/00 10:30a $
**  Last modified by:   $Author: Bill $
**
**  VCS archive path:   $Archive: /PQDIF/PQDcom/PQDcom4/pqdiflib/el_scal.cpp $
**  VCS revision:       $Revision: 12 $ 
*/
#include "PQDIF_classes.h"


//  Construction
//  ============

CPQDIF_E_Scalar::CPQDIF_E_Scalar()
    {
    memset( &m_value, 0, sizeof( m_value ) );
    }

CPQDIF_E_Scalar::~CPQDIF_E_Scalar()
    {
    }

#ifdef PQDIF_USE_COM
bool CPQDIF_E_Scalar::SetValue( long typePhysical, VARIANT & value )
    {
    bool    status = false;

    m_typePhysical = typePhysical;
    if( m_pRecord )
        m_pRecord->SetChanged( true );

    status = convertFromVariant( value, m_value );

    return status;
    }

bool CPQDIF_E_Scalar::GetValue( VARIANT& value )
    {
    bool    status = true;

    status = convertToVariant( m_value, value );

    return status;
    }
#endif

bool CPQDIF_E_Scalar::SetValue( long typePhysical, PQDIFValue& value )
    {
    bool    status = false;

    int     iSize = theInfo.GetNumBytesOfType( typePhysical );
    if( iSize > 0 )
        {
        m_typePhysical = typePhysical;
        memcpy( (void *)&m_value, (void *)&value, iSize );
        status = true;
    
        if( m_pRecord )
            m_pRecord->SetChanged( true );
        }
    
    return status;
    }

bool CPQDIF_E_Scalar::GetValue( long& typePhysical, PQDIFValue& value ) const
    {
    bool    status = false;

    if( m_typePhysical != 0 )
        {
        typePhysical = m_typePhysical;
        value = m_value;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueUINT2( UINT2 value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_UNS_INTEGER2;
    m_value.uint2 = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueUINT2( UINT2& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_UNS_INTEGER2 )
        {
        value = m_value.uint2;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueINT2( INT2 value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_INTEGER2;
    m_value.int2 = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueINT2( INT2& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_INTEGER2 )
        {
        value = m_value.int2;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueUINT4( UINT4 value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_UNS_INTEGER4;
    m_value.uint4 = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueUINT4( UINT4& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_UNS_INTEGER4 )
        {
        value = m_value.uint4;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueINT4( INT4 value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_INTEGER4;
    m_value.int4 = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueINT4( INT4& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_INTEGER4 )
        {
        value = m_value.int4;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueBOOL4( bool value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_BOOLEAN4;
    m_value.bool4 = value ? (BOOL4) 1 : (BOOL4) 0;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueBOOL4( bool& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_BOOLEAN4 )
        {
        value = ( m_value.bool4 != 0 ) ? true : false;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueREAL4( REAL4 value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_REAL4;
    m_value.real4 = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueREAL4( REAL4& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_REAL4 )
        {
        value = m_value.real4;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueREAL8( REAL8 value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_REAL8;
    m_value.real8 = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueREAL8( REAL8& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_REAL8 )
        {
        value = m_value.real8;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueCOMPLEX8( COMPLEX8 value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_COMPLEX8;
    m_value.complex8 = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueCOMPLEX8( COMPLEX8& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_COMPLEX8 )
        {
        value = m_value.complex8;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueCOMPLEX16( COMPLEX16 value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_COMPLEX16;
    m_value.complex16 = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueCOMPLEX16( COMPLEX16& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_COMPLEX16 )
        {
        value = m_value.complex16;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueGUID( GUID value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_GUID;
    m_value.guid = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueGUID( GUID& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_GUID )
        {
        value = m_value.guid;
        status = true;
        }

    return status;
    }


bool CPQDIF_E_Scalar::SetValueTimeStamp( TIMESTAMPPQDIF value )
    {
    bool    status = false;

    m_typePhysical = ID_PHYS_TYPE_TIMESTAMPPQDIF;
    m_value.ts = value;
    status = true;

    return status;
    }


bool CPQDIF_E_Scalar::GetValueTimeStamp( TIMESTAMPPQDIF& value ) const
    {
    bool    status = false;

    if( m_typePhysical == ID_PHYS_TYPE_TIMESTAMPPQDIF )
        {
        value = m_value.ts;
        status = true;
        }

    return status;
    }

⌨️ 快捷键说明

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