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

📄 rec_observ.h

📁 电能质量交换格式转换库
💻 H
字号:
//  File name:          $Workfile: rec_observ.h $
//  Last modified:      $Modtime: 2/22/00 11:01p $
//  Last modified by:   $Author: Jack $
//  
//  VCS archive path:   $Archive: /PQDIF/PQDcom/PQDcom4/pqdiflib/rec_observ.h $
//  VCS revision:       $Revision: 17 $ 

class CPQDIF_R_Settings;

class CPQDIF_R_Observation : public CPQDIF_R_General
    {
    public:
        CPQDIF_R_Observation();
        CPQDIF_R_Observation( CPQDIFRecord& record );
        virtual ~CPQDIF_R_Observation();

    // Operations
    public:
        void SetDataSource
            (
            CPQDIF_R_DataSource *   pds
            ) 
            { m_pds = pds; }
        void SetMonitorSettings
            (
            CPQDIF_R_Settings *     psett
            )
            { m_psett = psett; }
		CPQDIF_R_Settings * GetMonitorSettings()
		{
			return m_psett;
		}

        long     GetCountResolvedSeries
            ( 
            long    idxChannel,
            long    idxSeries,
			bool    noShare = false
            );
        double * NewResolvedSeries
            (
            long    idxChannel,
            long    idxSeries,
            long&   countPoints,
            bool    noShare = false //  Set to true to prevent another level of shared series.
                                    //  (This could prevent infinitely recursive calls.)
            );
        TIMESTAMPPQDIF * NewResolvedSeriesTimeStamp
            (
            long    idxChannel,
            long    idxSeries,
            long&   countPoints,
            bool    noShare = false
            );

        // Attributes
    public:
        //  Read functions
        bool GetInfo
            (
            TIMESTAMPPQDIF&     timeStart,
            TIMESTAMPPQDIF&     timeCreate,
            string&             name
            );
        long GetCountChannels( void );
        long GetCountSeries( int idxChannel );
        bool GetChannelInfo
            (
            long        idxChannel,
            string&     name,
            UINT4&      idPhase,
            GUID&       idQuantityType,
            UINT4&      idQuantityMeasured
            );
        bool GetChannelPrimarySeries
            (
            long        idxChannel,
            long&       idxPrimarySeries
            );
#ifdef zap
        bool GetChannelThresholds
            (
            long                idxChannel,
            UINT4&              triggerTypeID,
            REAL8&              fullScale,  
            REAL8&              noiseFloor, 
            REAL8&              triggerLow, 
            REAL8&              triggerHigh,
            REAL8&              triggerRate,
            CPQDIF_E_Vector&    triggerShapeParam   //  Array of [3]
            );
#endif
        bool GetSeriesInfo
            (
            long        idxChannel,
            long        idxSeries,
            UINT4&      idQuantityUnits,
            GUID&       idQuantityCharacteristic,
            GUID&       idValueType
            );
        bool GetTriggerInfo
            (
            UINT4&              idTriggerMethod,
            CPQDIF_E_Vector **  pvectTriggerChanIdx,
            TIMESTAMPPQDIF&     timeTriggered
            );
        bool GetPqdsInfo
            (
            GUID&       idDataSourceType,       //  GUID
            GUID&       idInstrumentType,       //  GUID
            UINT4&      codeLocation,           
            CPQDIF_E_Vector **  pvectCodesDisturbanceType    //  Array[ 3 ] of UINT4
            );
        bool GetSeriesBaseQuantity
            (
            long        idxChannel,
            long        idxSeries,
            double&     value
            );
        bool GetSeriesScale
            (
            long        idxChannel,
            long        idxSeries,
            double&     scale,
            double&     offset
            );

        bool GetSeriesDefnNominal
            (
            long        idxChannel,
            long        idxSeries,
            double    & dNominal
            );

		bool GetSeriesDefnPrecisionAndResolution
            (
            long        idxChannel,
            long        idxSeries,
            UINT4	  & uPrecision,
            double    & dResolution
            );

        CPQDIF_E_Vector * GetSeriesValueVector
            (
            long        idxChannel,
            long        idxSeries
            );

        //  Write functions
        long AddChannel
            (
            long        idxChannelDefn
            );
        long AddSeriesDouble
            (
            long        idxChannel,
            long        countValues,
            double *    arValues
            );
        bool SetSeriesBaseQuantity
            (
            long        idxChannel,
            long        idxSeries,
            double      value
            );
        bool SetSeriesScale
            (
            long        idxChannel,
            long        idxSeries,
            double      scale,
            double      offset
            );
        long AddSeriesVector
            (
            long            idxChannel,
            CPQDIF_E_Vector *   pvect
            );
        long AddSeriesShared
            (
            long            idxChannel,
            long            idxChannelShared,
            long            idxSeriesShared
            );
        bool SetTriggerInfo
            (
                    UINT4               idTriggerMethod,
                    long                countTriggers,
            const   UINT4 *             aidxTriggerChan,
            const   TIMESTAMPPQDIF&     timeTriggered
            );

#ifdef PQDIF_USE_COM

		bool GetObservationExtendedData
            (
			GUID& gidTag,
            VARIANT&  value
            );

		bool GetChannelExtendedData
            (
            long        idxChannel,
			GUID& gidTag,
            VARIANT&  value
            );

		bool GetSeriesExtendedData
            (
            long        idxChannel,
			long		idxSeries,
			GUID& gidTag,
            VARIANT&  value
            );
#endif

    //  Internal functions
    public:
        bool GetChannelDefnIdx
            (
            long    idxChannel,
            long&   idxChannelDefn
            );
        CPQDIF_E_Collection * GetChannelInstances( void );
        CPQDIF_E_Collection * GetOneChannel
            ( 
            long    idxChannel
            );
        CPQDIF_E_Collection * GetSeriesInstances
            ( 
            CPQDIF_E_Collection * pcolChannel
            );
        CPQDIF_E_Collection * GetOneSeries
            ( 
            CPQDIF_E_Collection *   pcolChannel,
            long                    idxSeries
            );
        CPQDIF_E_Collection * GetOneSeries
            ( 
            long    idxChannel,
            long    idxSeries
            );

    //  OVERRIDES
    // Operations
    public:
        virtual bool ReadHeader( CPQDIF_StreamIO * pstream )
            { return m_record->ReadHeader( pstream ); }
        virtual bool ReadBody( CPQDIF_StreamIO * pstream )
            { return m_record->ReadBody( pstream ); }

        virtual bool WriteHeader( CPQDIF_StreamIO * pstream )
            { return m_record->WriteHeader( pstream ); }
        virtual bool WriteBody( CPQDIF_StreamIO * pstream )
            { return m_record->WriteBody( pstream ); }

    //  OVERRIDES
        // Attributes
    public:
        virtual bool HeaderGetPos( LINKABS4& pos ) const
            { return m_record->HeaderGetPos( pos ); }
        virtual bool HeaderSetPos( LINKABS4 pos )
            { return m_record->HeaderSetPos( pos ); }
        virtual bool HeaderGetTag( GUID& tagRecord ) const
            { return m_record->HeaderGetTag( tagRecord ); }
        virtual bool HeaderSetTag( GUID tagRecord )
            { return m_record->HeaderSetTag( tagRecord ); }
        virtual bool HeaderGetSize( SIZE4& sizeHeader, SIZE4& sizeBody ) const
            { return m_record->HeaderGetSize( sizeHeader, sizeBody ); }
        virtual bool HeaderSetSize( SIZE4 sizeHeader, SIZE4 sizeBody )
            { return m_record->HeaderSetSize( sizeHeader, sizeBody ); }
        virtual bool HeaderGetChecksum( UINT& checksum ) const
            { return m_record->HeaderGetChecksum( checksum ); }
        virtual bool HeaderSetChecksum( UINT checksum )
            { return m_record->HeaderSetChecksum( checksum ); }
        virtual bool HeaderGetPosNextRecord( LINKABS4& pos ) const
            { return m_record->HeaderGetPosNextRecord( pos ); }
        virtual bool HeaderSetPosNextRecord( LINKABS4 pos )
            { return m_record->HeaderSetPosNextRecord( pos ); }
        virtual CPQDIF_E_Collection * GetMainCollection( void ) const
            { return m_record->GetMainCollection(); }
        virtual bool SetMainCollection( CPQDIF_E_Collection * collMain )
            { return m_record->SetMainCollection( collMain ); }
        virtual bool GetChanged( void )
            { return m_record->GetChanged(); }
        virtual void SetChanged( bool changed )
            { m_record->SetChanged( changed ); }

	//  Private functions
    private:
        long _GenerateSeriesCount
            ( 
            UINT4               idStorageMethod, 
            CPQDIF_E_Vector *   pvectSeriesArray
            );
        double * _GenerateSeriesData
            ( 
            int                 idxChannelDefn,
            UINT4               idStorageMethod, 
            double              rBaseValue, 
            double              rScale, 
            double              rOffset, 
            CPQDIF_E_Vector *   pvectSeriesArray, 
            long&               countPoints
            );
        bool CPQDIF_R_Observation::_GenerateTimeStampArray
            (
            TIMESTAMPPQDIF *    result, 
            double *            seconds, 
            long                countPoints 
            );
        bool _GetCalibrationRatio
            (
            int     idxChannelDefn,
            double& rScale
            );

    //  Local data
    private:
        //  Reference to the data source which owns this observation.
        CPQDIF_R_DataSource *   m_pds;

        //  Reference to the monitor settings record (can be NULL)
        CPQDIF_R_Settings *     m_psett;

        //  Reference to the record which contains the observation data.
        CPQDIF_R_General *		m_record;	//	need to fix
    };

⌨️ 快捷键说明

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