82 lines
1.6 KiB
C++
82 lines
1.6 KiB
C++
|
/* **************************************************************************
|
||
|
|
||
|
Author: Achim Gaedke
|
||
|
Created: June 2004
|
||
|
|
||
|
****************************************************************************/
|
||
|
#include "machines/hardware.h"
|
||
|
#include "core/core.h"
|
||
|
#include "drivers/Datel-PCI416/Datel-PCI416.h"
|
||
|
#include "drivers/SpinCore-PulseBlasterDDSIII/SpinCore-PulseBlasterDDSIII.h"
|
||
|
|
||
|
/**
|
||
|
\defgroup nqrmachine NQR machine
|
||
|
\ingroup machines
|
||
|
@{
|
||
|
*/
|
||
|
class NQR_hardware: public hardware
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
NQR_hardware()
|
||
|
{
|
||
|
ttlout trigger;
|
||
|
trigger.id = 0;
|
||
|
trigger.ttls = 1 << 2;
|
||
|
the_adc = new DatelPCI416(trigger);
|
||
|
SpinCorePulseBlasterDDSIII* PB = new SpinCorePulseBlasterDDSIII();
|
||
|
the_pg = PB;
|
||
|
the_fg = PB; /* the Pulseblaster Card is used for both*/
|
||
|
}
|
||
|
|
||
|
~NQR_hardware()
|
||
|
{
|
||
|
if (the_adc != NULL)
|
||
|
delete the_adc;
|
||
|
if (the_pg != NULL)
|
||
|
delete the_pg;
|
||
|
}
|
||
|
|
||
|
};
|
||
|
|
||
|
class NQR_core: public core
|
||
|
{
|
||
|
std::string my_name;
|
||
|
|
||
|
public:
|
||
|
NQR_core(const core_config& conf) :
|
||
|
core(conf),
|
||
|
my_name("NQR machine")
|
||
|
{
|
||
|
the_hardware = new NQR_hardware();
|
||
|
}
|
||
|
|
||
|
virtual const std::string& core_name() const
|
||
|
{
|
||
|
return my_name;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
@}
|
||
|
*/
|
||
|
|
||
|
int main(int argc, const char** argv)
|
||
|
{
|
||
|
int return_result = 0;
|
||
|
try
|
||
|
{
|
||
|
core_config my_conf(argv, argc);
|
||
|
// setup input and output
|
||
|
NQR_core my_core(my_conf);
|
||
|
// start core application
|
||
|
my_core.run();
|
||
|
}
|
||
|
catch (const DamarisException& e)
|
||
|
{
|
||
|
fprintf(stderr, "%s\n", e.what());
|
||
|
return_result = 1;
|
||
|
}
|
||
|
return return_result;
|
||
|
}
|