65 lines
1.4 KiB
C++
65 lines
1.4 KiB
C++
/* **************************************************************************
|
|
|
|
Author: Achim Gaedke
|
|
Created: June 2004
|
|
|
|
****************************************************************************/
|
|
#ifndef FREQUGEN_H
|
|
#define FREQUGEN_H
|
|
#include "core/states.h"
|
|
#include "core/core_exception.h"
|
|
|
|
/**
|
|
\addtogroup basedrivers
|
|
@{
|
|
*/
|
|
|
|
/**
|
|
* frequency generator exception
|
|
*/
|
|
class frequ_exception: public RecoverableException
|
|
{
|
|
public:
|
|
explicit frequ_exception(const std::string& msg) throw (): RecoverableException(msg) {}
|
|
explicit frequ_exception(const char* msg) throw (): RecoverableException(msg) {}
|
|
virtual ~frequ_exception() throw () {}
|
|
protected:
|
|
virtual const std::string prefix() const { return "ERROR (frequ_exception): "; }
|
|
};
|
|
|
|
|
|
/**
|
|
\brief the frequency generator can set the reference frequency and pulse output
|
|
also phase shifts and different channels are possible
|
|
*/
|
|
class frequgen {
|
|
protected:
|
|
/** reference frequency output */
|
|
double frequency;
|
|
/**
|
|
default phase offset of the frequency generator
|
|
*/
|
|
double phase;
|
|
/**
|
|
should move to frequgen
|
|
*/
|
|
int pulse_channel;
|
|
/**
|
|
should move to frequgen
|
|
*/
|
|
int gate_channel;
|
|
/**
|
|
should move to frequgen
|
|
*/
|
|
double gate_time;
|
|
public:
|
|
virtual void set_frequency(double f)=0;
|
|
virtual void set_frequency(state& experiment)=0;
|
|
virtual ~frequgen() {}
|
|
};
|
|
|
|
/**
|
|
@}
|
|
*/
|
|
#endif
|