FltReg.h
Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 //  (c) 2006 by Basler Vision Technologies
00003 //  Section: Vision Components
00004 //  Project: GenApi
00005 //  Author:  Margret Albrecht
00006 //  $Header$
00007 //
00008 //  License: This file is published under the license of the EMVA GenICam  Standard Group.
00009 //  A text file describing the legal terms is included in  your installation as 'GenICam_license.pdf'.
00010 //  If for some reason you are missing  this file please contact the EMVA or visit the website
00011 //  (http://www.genicam.org) for a full copy.
00012 //
00013 //  THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
00014 //  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00015 //  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00016 //  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD  GROUP
00017 //  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,
00018 //  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT  LIMITED TO,
00019 //  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,  DATA, OR PROFITS;
00020 //  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY  THEORY OF LIABILITY,
00021 //  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)
00022 //  ARISING IN ANY WAY OUT OF THE USE  OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00023 //  POSSIBILITY OF SUCH DAMAGE.
00024 //-----------------------------------------------------------------------------
00031 #ifndef GENAPI_FLTREG_H
00032 #define GENAPI_FLTREG_H
00033 
00034 #include "../IFloat.h"
00035 #include "FloatT.h"
00036 #include "Register.h"
00037 
00038 namespace GENAPI_NAMESPACE
00039 {
00040     //*************************************************************
00041     // CFltReg class
00042     //*************************************************************
00043 
00045     class CFltRegImpl : public IFloat, public CRegisterImpl
00046     {
00047     public:
00049         CFltRegImpl();
00050 
00051     protected:
00052 
00054         virtual EInterfaceType InternalGetPrincipalInterfaceType() const
00055         {
00056             return intfIFloat;
00057         }
00058 
00059         //-------------------------------------------------------------
00060         // IRegister implementation
00061         //-------------------------------------------------------------
00062 
00064         virtual int64_t InternalGetLength();
00065 
00066         //-------------------------------------------------------------
00067         // IFloat implementation
00068         //-------------------------------------------------------------
00069 
00071         virtual void InternalSetValue(double dblValue, bool Verify = true);
00072 
00074         virtual double InternalGetValue(bool Verify = false, bool IgnoreCache = false);
00075 
00077         virtual double InternalGetMin() ;
00078 
00080         virtual double InternalGetMax() ;
00081 
00083         virtual bool InternalHasInc()
00084         {
00085             // a swiss knife does not know about its increments
00086             return false;
00087         }
00088 
00090         virtual const double_autovector_t InternalGetListOfValidValues()
00091         {
00092             return double_autovector_t();
00093         }
00094 
00096         #pragma BullseyeCoverage off
00097         // (untestable, function never called)
00098         virtual double InternalGetInc()
00099         {
00100             assert(false);
00101             return -1.0;
00102         }
00103         #pragma BullseyeCoverage on
00104 
00105 
00107         virtual  ERepresentation InternalGetRepresentation() const
00108         {
00109             if( m_Representation != _UndefinedRepresentation )
00110                 return m_Representation;
00111             else
00112                 return PureNumber;
00113         }
00114 
00116         virtual GENICAM_NAMESPACE::gcstring InternalGetUnit() const
00117         {
00118             return m_Unit;
00119         }
00120 
00122         virtual EDisplayNotation InternalGetDisplayNotation() const
00123         {
00124             return m_DisplayNotation;
00125         }
00126 
00128         virtual int64_t InternalGetDisplayPrecision() const
00129         {
00130             return m_DisplayPrecision;
00131         }
00132 
00133         //-------------------------------------------------------------
00134         // Initializing
00135         //-------------------------------------------------------------
00136     public:
00137     
00138     virtual void SetProperty( CProperty &Property );
00139     virtual bool GetProperty(CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList) const;
00140         
00141     protected:
00143         void ReadReg(uint8_t* ValueBytes, bool Verify = false, bool IgnoreCache = false);
00144 
00146         void WriteReg(uint8_t* pValueBytes, bool Verify = true);
00147 
00148         //-------------------------------------------------------------
00149         // Memeber variables
00150         //-------------------------------------------------------------
00151 
00153         mutable ERepresentation  m_Representation;
00154 
00156         mutable EEndianess m_Endianess;
00157 
00159         GENICAM_NAMESPACE::gcstring m_Unit;
00160 
00162         EDisplayNotation m_DisplayNotation;
00163 
00165         int64_t m_DisplayPrecision;
00166 
00167     };
00168 
00170     class CFltReg
00171         : public BaseT< ValueT< FloatT <  RegisterT < NodeT< CFltRegImpl > > > > >
00172     {
00173     };
00174 }
00175 
00176 #endif // GENAPI_FLTREG_H


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Thu Jun 6 2019 18:42:46