/*******************************************************************************
* Gen.h TMS State Table Generator
* T.Barnaby, BEAM Ltd, 2007-03-15
*******************************************************************************
*/
#ifndef Gen_h
#define Gen_h 1
#include <BError.h>
#include <BFile.h>
#include <BNameValue.h>
#include <TmsLib.h>
#include <TmsCycleParam.h>
typedef BNameValue<BString> PNameValue;
class PNameValueList : public BNameValueList<BString> {
public:
BString getValue(BString name);
void setValue(BString name, BString value);
};
/// State/Phase table generation class
class Gen {
public:
Gen();
~Gen();
BList<BString> getTypes();
BError init(PNameValueList& params); ///< Initialises the generation with a set of parameters
BError generate(BString cycleType); ///< Runs the generator
protected:
BError genBeam1();
BError genBeam2();
BError genBeam3();
BError genTest1();
void setPhaseDelay();
PNameValueList oparams; ///< The list of name/value parameters
Tms::CycleParamEdit ocycleParam;
BFile ofile; ///< The file to output results to
BString oname;
BString ofileName; ///< The output file name
double osampleRate; ///< The sample rate
double ofref; ///< The FREF frequency
int ophaseTableFile; ///< Flag to generate a phase table ASCII file
int ouseMsbFref; ///< Flag to use the PhaseTable address MSB as the FREF local reference
int opllInitialFrequencyDelay; ///< The PLL initial frequency load delay in ms
int ophaseDelay; ///< The phase delay to add to all channels
int ophaseDelayAll; ///< The phase delay to set all channels to
};
#endif