Commit f4bf2779 authored by acq's avatar acq

V1740 QDC

parent 962e50c3
......@@ -446,7 +446,7 @@ void CAENCfdController::writeParam() {
void CAENCfdController::initBoard() {
m_dgtzDriver.execute(driver::INIT_COMMAND, false);
m_dgtzDriver.execute(caen_cfd::CAENCfdDriver::SET_MODE_COMMAND, false);
}
void CAENCfdController::initChannel(int32 aChannel) {
......
This diff is collapsed.
......@@ -58,44 +58,60 @@ public:
*/
virtual void postConfiguration();
// Channels properties
// Group properties
Property<float64>triggerHoldOff;
Property<int32>triggerThreshold;
Property<int32>selfTrigger;
Property<int32>chargeSensitivity;
Property<float64>gateWidth;
Property<float64>preGate;
Property<int32>baselineMean;
void initBoard();
Property<int32>displayGroup;
Property<int32> channelActive_0;
Property<int32> channelActive_1;
Property<int32> channelActive_2;
Property<int32> channelActive_3;
Property<int32> channelActive_4;
Property<int32> channelActive_5;
Property<int32> channelActive_6;
Property<int32> channelActive_7;
Property<int32>triggerThreshold_0;
Property<int32>triggerThreshold_1;
Property<int32>triggerThreshold_2;
Property<int32>triggerThreshold_3;
Property<int32>triggerThreshold_4;
Property<int32>triggerThreshold_5;
Property<int32>triggerThreshold_6;
Property<int32>triggerThreshold_7;
protected:
DriverPtr<caen_qdc::CAENQdcDriver> m_dgtzDriver;
virtual void refreshNbChannelsProperty(int32 aValue) throw (CannotSetValue);
virtual void refreshDisplayChannelProperty(int32 aValue) throw (CannotSetValue);
virtual void refreshDppAcqModeProperty(int32 aValue) throw (CannotSetValue);
virtual void refreshPulsePolarityProperty(int32 aValue) throw (CannotSetValue);
virtual void updateBoardProperties();
private:
virtual void refreshChannelActiveProperty(int32 aValue) throw (CannotSetValue);
void initBoard();
virtual void refreshRecordLengthProperty(int32 aValue) throw (CannotSetValue);
void refreshDisplayGroupProperty(int32 aValue) throw (CannotSetValue);
void refreshDppAcqModeProperty(int32 aValue) throw (CannotSetValue);
void refreshPulsePolarityProperty(int32 aValue) throw (CannotSetValue);
void refreshChannelActiveProperty(int32 aValue) throw (CannotSetValue);
void refreshRecordLengthProperty(int32 aValue) throw (CannotSetValue);
void refreshTriggerHoldOffProperty(float64 aValue) throw (CannotSetValue);
void refreshTriggerThresholdProperty(int32 aValue) throw (CannotSetValue);
void refreshSelfTriggerProperty(int32 aValue) throw (CannotSetValue);
void refreshChargeSensitivityProperty(int32 aValue) throw (CannotSetValue);
void refreshGateWidthProperty(float64 aValue) throw (CannotSetValue);
void refreshPreGateProperty(float64 aValue) throw (CannotSetValue);
void refreshBaselineMean(int32 aValue) throw (CannotSetValue);
void refreshDcOffsetProperty(int32 aValue) throw (CannotSetValue);
void refreshPreTriggerProperty(int32 aValue) throw (CannotSetValue);
void refreshActivateChannelProperty(int32 aValue, int32 index) throw (CannotSetValue);
void updateBoardProperties();
virtual void clearData();
virtual void writeParam();
virtual void initChannel(int32 aChannel);
virtual void refreshNbChannelsProperty(int32 aGroup) throw (CannotSetValue) ;
virtual void refreshDisplayChannelProperty(int32 aGroup) throw (CannotSetValue) ;
virtual void initChannel(int32 aGroup);
};
}
......
......@@ -4,9 +4,9 @@ qdc_controller.nbChannels=Nb channels:
qdc_controller.acqMode=Acquisition mode:
# Channel General Settings
qdc_controller.generalSettingsTitle=General Settings
qdc_controller.groupSettingsTitle=Group Settings
qdc_controller.recordLength=Record length
qdc_controller.displayChannel=Channel
qdc_controller.displayGroup=Group
qdc_controller.channelEnabled=Channel enabled
qdc_controller.pulsePolarity=Pulse polarity
qdc_controller.dcOffset=DC offset
......@@ -134,7 +134,6 @@ qdc_controller.postTrigPrefix=Post trigger samples
qdc_controller.offsetPrefix=Input DC offset
qdc_controller.histogramLegend=Energy
qdc_controller.inputLegend=Input
qdc_controller.longGateLegend=Long Gate
qdc_controller.shortGateLegend=Short Gate
qdc_controller.gateLegend=Gate
qdc_controller.triggerLegend=Trigger
qdc_controller.percentSuffix=%
<plotdatas>
<plotdata key="pha_histogram_plot" legend_key="qdc_controller.histogramLegend" color="FFFFFF" plugins="SETUP">
<plotdata key="qdc_histogram_plot" legend_key="qdc_controller.histogramLegend" color="FFFFFF" plugins="SETUP">
<dataY p_role="qdc_controller1" p_name="curve0_table"/>
</plotdata>
<plotdata key="pha_input_plot" legend_key="qdc_controller.inputLegend" color="F60B0B" plugins="SETUP">
<plotdata key="qdc_input_plot" legend_key="qdc_controller.inputLegend" color="F60B0B" plugins="SETUP">
<dataY p_role="qdc_controller1" p_name="curve1_table"/>
</plotdata>
<plotdata key="pha_trapezoid_plot" legend_key="qdc_controller.trapezoidLegend" color="0DC93D" plugins="SETUP">
<plotdata key="qdc_trapezoid_plot" legend_key="qdc_controller.gateLegend" color="0DC93D" plugins="SETUP">
<dataY p_role="qdc_controller1" p_name="curve2_table"/>
</plotdata>
<plotdata key="pha_trigger_plot" legend_key="qdc_controller.triggerLegend" color="FFFD18" plugins="SETUP">
<plotdata key="qdc_trigger_plot" legend_key="qdc_controller.triggerLegend" color="FFFD18" plugins="SETUP">
<dataY p_role="qdc_controller1" p_name="curve3_table"/>
</plotdata>
<plotdata key="pha_peaking_plot" legend_key="qdc_controller.peakingLegend" color="18F0FF" plugins="SETUP">
<plotdata key="qdc_peaking_plot" legend_key="qdc_controller.peakingLegend" color="18F0FF" plugins="SETUP">
<dataY p_role="qdc_controller1" p_name="curve4_table"/>
</plotdata>
......
......@@ -6,7 +6,7 @@
<strictly_positive/>
</property>
<property name="display_channel" type="int32" max_length="3">
<property name="display_group" type="int32" max_length="3">
<property_range min_property="min_range" max_property="max_range"/>
</property>
......
......@@ -7,34 +7,39 @@
<newLine/>
<combo role="qdc_controller1" property="dpp_acq_mode" prefix="qdc_controller.acqMode" valuesAndLabels="qdc_controller.oscilloscope,qdc_controller.histogram,qdc_controller.waveform"/>
<switchable_composite switcher_key="acqModeSwitcher" switch_values="0">
<plot_launcher role="qdc_controller1" data="pha_input_plot,pha_trapezoid_plot,pha_trigger_plot,pha_peaking_plot" title="qdc_controller.inputPlotTitle" height="20"/>
<plot_launcher role="qdc_controller1" data="qdc_input_plot,qdc_trapezoid_plot,qdc_trigger_plot,qdc_peaking_plot" title="qdc_controller.inputPlotTitle" height="20"/>
</switchable_composite>
<switchable_composite switcher_key="acqModeSwitcher" switch_values="2">
<text role="pha_controller1" property="record_length" prefix="qdc_controller.recordLength"/>
<text role="qdc_controller1" property="record_length" prefix="qdc_controller.recordLength"/>
</switchable_composite>
</group>
<newLine/>
<group title="qdc_controller.generalSettingsTitle">
<table_composite nbColumns="4">
<simple_label prefix="qdc_controller.recordLength"/>
<text role="qdc_controller1" property="record_length"/>
<simple_label prefix="qdc_controller.displayChannel"/>
<text role="qdc_controller1" property="display_channel"/>
<simple_label prefix="qdc_controller.channelEnabled"/>
<check role="qdc_controller1" property="channel_active" checkBoxValues="qdc_controller.enabled"/>
<group title="qdc_controller.groupSettingsTitle">
<simple_label prefix="qdc_controller.displayGroup"/>
<text role="qdc_controller1" property="display_group"/>
<newLine/>
<simple_label prefix="qdc_controller.channelEnabled"/>
<check role="qdc_controller1" property="channel_active_0" checkBoxValues="qdc_controller.enabled"/>
<check role="qdc_controller1" property="channel_active_1" checkBoxValues="qdc_controller.enabled"/>
<check role="qdc_controller1" property="channel_active_2" checkBoxValues="qdc_controller.enabled"/>
<check role="qdc_controller1" property="channel_active_3" checkBoxValues="qdc_controller.enabled"/>
<check role="qdc_controller1" property="channel_active_4" checkBoxValues="qdc_controller.enabled"/>
<check role="qdc_controller1" property="channel_active_5" checkBoxValues="qdc_controller.enabled"/>
<check role="qdc_controller1" property="channel_active_6" checkBoxValues="qdc_controller.enabled"/>
<check role="qdc_controller1" property="channel_active_7" checkBoxValues="qdc_controller.enabled"/>
<newLine/>
<table_composite nbColumns="2">
<simple_label prefix="qdc_controller.pulsePolarity"/>
<combo role="qdc_controller1" property="pulse_polarity" valuesAndLabels="qdc_controller.positive,qdc_controller.negative"/>
<simple_label prefix="qdc_controller.dcOffset"/>
<text role="qdc_controller1" property="dc_offset"/>
</table_composite>
</table_composite>
</group>
<newLine/>
<composite alignment="top_left">
<group title="qdc_controller.timingFilterTitle" alignment="top_left">
<table_composite nbColumns="2">
<simple_label prefix="qdc_controller.selfTrigger"/>
<combo role="qdc_controller1" property="self_trigger" valuesAndLabels="qdc_controller.stenabled,qdc_controller.stdisable"/>
<simple_label prefix="qdc_controller.preTrigger"/>
<text role="qdc_controller1" property="pre_trigger"/>
<simple_label prefix="qdc_controller.charge_sensitivity"/>
......
......@@ -34,7 +34,7 @@ typedef struct {
CAEN_DGTZ_DPP_AcqMode_t DPPAcqMode; // Acquisition mode (Oscilloscope, List, Mixed)
CAEN_DGTZ_DPP_SaveParam_t SaveMode; // Save mode (Energy, Time, Energy&Time, None)
int32 RecordLength; // Nb of samples in oscilloscope mode
int32 cfdTrap; // Enable CFD plot or trpaezoid
int32 cfdTrap; // Enable CFD plot or trapezoid
CAEN_DGTZ_IOLevel_t IOLevel; // I/O level (NIM, TTL)
CAEN_DGTZ_TriggerMode_t TriggerMode; // Trigger mode (disable, extout, acq_only, acq_extout)
int32 ChannelMask; // Channel enable mask
......
......@@ -63,8 +63,6 @@ CAENCfdDriver::CAENCfdDriver(const std::string& name) {
cfdTrap.init(this, SAVE, "cfd_Trap");
ioLevel.init(this, SAVE, "io_level");
triggerMode.init(this, SAVE, "trigger_mode");
channelMask.init(this, SAVE, "channel_mask");
......@@ -111,9 +109,12 @@ CAENCfdDriver::CAENCfdDriver(const std::string& name) {
cfdDelay.init(this, SAVE, "cfd_delay");
cfdSignalZero.init(this, SAVE, "signal_zero");
adcTemperature.init(this, NOSAVE, "adc_temperature");
// Init the device command list
initCommand(driver::INIT_COMMAND);
initCommand(driver::READ_INFOS_COMMAND);
initCommand(driver::STATUS_COMMAND);
initCommand(WRITE_PARAMETERS_COMMAND);
initCommand(SET_MODE_COMMAND);
initCommand(RESET_COMMAND);
......@@ -130,6 +131,13 @@ CAENCfdDriver::CAENCfdDriver(const std::string& name) {
registerRefresher(saveMode, &CAENCfdDriver::refreshSaveModeProperty, this);
registerRefresher(channelActive, &CAENCfdDriver::refreshChannelActiveProperty, this);
registerRefresher(pulsePolarity, &CAENCfdDriver::refreshPulsePolarityProperty, this);
registerRefresher(dynamicRange, &CAENCfdDriver::refreshDynamicRangeProperty, this);
/*
* Register the Spy and Observer commands necessary to do the updates.
*/
registerSpyCommand(driver::STATUS_COMMAND, 20); // read temperature every 20 s
registerObserverCommand(driver::STATUS_COMMAND, 20);
}
/*
......@@ -174,6 +182,10 @@ void CAENCfdDriver::execute(const std::string& aCommand) {
// Info command
currentState->readInfos();
commandProgression = PROGRESSION_END_DEVICE_CONTAINER;
} else if (aCommand == driver::STATUS_COMMAND) {
// Info command
currentState->readStatus();
commandProgression = PROGRESSION_END_DEVICE_CONTAINER;
} else {
//Error bad command
//Todo , normaly it will be detect it device action driver
......@@ -216,6 +228,8 @@ void CAENCfdDriver::refreshNbChannelsProperty(int32 aValue) throw (CannotSetVal
cfdFractionStr.resize(aValue);
cfdDelay.resize(aValue);
cfdSignalZero.resize(aValue);
adcTemperature.resize(aValue);
}
void CAENCfdDriver::refreshDppAcqModeProperty(int32 aValue) throw (CannotSetValue) {
......@@ -269,4 +283,16 @@ void CAENCfdDriver::refreshPulsePolarityProperty(int32 index, int32 aValue) thro
}
}
void CAENCfdDriver::refreshDynamicRangeProperty(int32 index, int32 aValue) throw (CannotSetValue) {
switch (aValue) {
case 0:
dynamicRangeStr.set(index, "2V");
break;
case 1:
dynamicRangeStr.set(index, "0.5V");
break;
}
}
}
......@@ -113,7 +113,7 @@ public:
DynamicProperty<std::string> channelActiveStr;
DynamicProperty<int32> dynamicRange; // dynamic range 0=2V 1=0.5V - range 0:1
DynamicProperty<std::string> dynamicRangeStr;
DynamicProperty<int32> dcOffset;
DynamicProperty<int32> dcOffset; // range 0 - 100 of full scale
DynamicProperty<int32> preTrigger; // range 0:1023 (nSamples = pre_trig x 2)
DynamicProperty<int32> pulsePolarity; // invert input - range 0:1
DynamicProperty<std::string> pulsePolarityStr;
......@@ -127,6 +127,9 @@ public:
DynamicProperty<int32> cfdDelay; // In step of 2ns
DynamicProperty<int32> cfdSignalZero; // In ADC channels
// Channels adc temperature
DynamicProperty<int32> adcTemperature;
// Commands
static const std::string WRITE_PARAMETERS_COMMAND;
static const std::string SET_MODE_COMMAND;
......@@ -140,6 +143,7 @@ private:
void refreshSaveModeProperty(int32 aValue) throw (CannotSetValue);
void refreshChannelActiveProperty(int32 index, int32 aValue) throw (CannotSetValue);
void refreshPulsePolarityProperty(int32 index, int32 aValue) throw (CannotSetValue);
void refreshDynamicRangeProperty(int32 index, int32 aValue) throw (CannotSetValue);
};
}
......
......@@ -20,7 +20,6 @@
#define CAENCFDSTATE_H
#include <Driver.h>
#include "CAENCfdDriver.h"
namespace caen_cfd {
......@@ -63,6 +62,11 @@ public:
*/
virtual void readInfos() = 0;
/*!
* \brief Read Infos command implementation
*/
virtual void readStatus() = 0;
/*!
* \brief Set acquisition mode command implementation
*/
......@@ -72,6 +76,11 @@ public:
* \brief Set CFD mode parameters
*/
virtual void setCfdParam() = 0;
/*!
* \brief Set bit in register
*/
//virtual void RegisterSetBits(uint16_t addr, int32 startBit, int32 endBit, int32 val) = 0;
};
}
......
......@@ -17,7 +17,6 @@
*/
#include "PerfectCAENCfdDriver.h"
#include "CAENCfdDef.h"
using namespace std;
......@@ -80,6 +79,13 @@ void PerfectCAENCfdDriver::readInfos() {
}
/*!
* \brief Read Infos command implementation
*/
void PerfectCAENCfdDriver::readStatus() {
}
/*!
* \brief Set CFD mode parameters
*/
......@@ -87,4 +93,11 @@ void PerfectCAENCfdDriver::setCfdParam() {
}
/*!
* \brief Set bit in register
*/
void PerfectCAENCfdDriver::registerSetBits(uint16_t addr, int32 startBit, int32 endBit, int32 val) {
}
}
......@@ -74,10 +74,20 @@ public:
*/
virtual void readInfos();
/*!
* \brief Read Infos command implementation
*/
virtual void readStatus();
/*!
* \brief Set CFD mode parameters
*/
virtual void setCfdParam();
/*!
* \brief Set bit in register
*/
virtual void registerSetBits(uint16_t addr, int32 startBit, int32 endBit, int32 val);
};
}
......
......@@ -21,8 +21,8 @@
#include <CAENDigitizer.h>
#include "CAENCfdDef.h"
#include "CAENCfdState.h"
#include "CAENCfdDef.h"
namespace caen_cfd {
......@@ -78,6 +78,11 @@ public:
*/
virtual void readInfos();
/*!
* \brief Read Infos command implementation
*/
virtual void readStatus();
/*!
* \brief Enable Coincidence command implementation
*/
......@@ -88,14 +93,25 @@ public:
*/
virtual void setCfdParam();
/*!
* \brief Set bit in register
*/
virtual void registerSetBits(uint16_t addr, int32 startBit, int32 endBit, int32 val);
private:
void open();
void close();
int32 LockTempCalibration_x730(uint32_t ch);
int32 ReadSPIRegister(uint32_t ch, uint32_t address, uint32_t *value);
int32 WriteSPIRegister(uint32_t ch, uint32_t address, uint32_t value);
int32 m_boardHandle;
int32 m_boardInit;
CAEN_DGTZ_ErrorCode ret;
// CAEN_DGTZ_ErrorCode ret;
int32 ret;
CAEN_DGTZ_BoardInfo_t boardInfo;
DigitizerParams_t boardParams;
......
......@@ -16,13 +16,12 @@
* limitations under the Licence.
*/
#include "CAENQdcDriver.h"
#include "drivers/global/DriversCommands.h"
#include "CAENQdcDef.h"
#include "CAENQdcState.h"
#include "CAENQdcDriver.h"
#include "PerfectCAENQdcDriver.h"
#include "RealCAENQdcDriver.h"
#include "drivers/global/DriversCommands.h"
namespace caen_qdc {
......@@ -62,26 +61,23 @@ CAENQdcDriver::CAENQdcDriver(const std::string& name) {
recordLength.init(this, SAVE, "record_length");
ioLevel.init(this, SAVE, "io_level");
triggerMode.init(this, SAVE, "trigger_mode");
channelMask.init(this, SAVE, "channel_mask");
groupMask.init(this, SAVE, "group_mask");
selfTrigger.init(this, SAVE, "self_trigger");
chargeSensitivity.init(this, SAVE, "charge_sensitivity");
// Channels properties
// Group properties
channelEnableMask.init(this, SAVE, "trigger_holdoff");
triggerHoldOff.init(this, SAVE, "trigger_holdoff");
triggerThreshold.init(this, SAVE, "trigger_threshold");
chargeSensitivity.init(this, SAVE, "charge_sensitivity");
gateWidth.init(this, SAVE, "gate_width");
preGate.init(this, SAVE, "pre_gate");
baselineMean.init(this, SAVE, "base_mean");
triggerHysteresis.init(this, SAVE, "trigger_hysteresis");
inputSmoothing.init(this, SAVE, "input_smoothing");
channelActive.init(this, SAVE, "channel_active");
channelActiveStr.init(this, NOSAVE, "channel_active_str");
dcOffset.init(this, SAVE, "dc_offset");
preTrigger.init(this, SAVE, "pre_trigger");
channelActive.init(this, SAVE, "channel_active");
channelActiveStr.init(this, NOSAVE, "channel_active_str");
pulsePolarity.init(this, SAVE, "pulse_polarity");
pulsePolarityStr.init(this, NOSAVE, "pulse_polarity_str");
preTrigger.init(this, SAVE, "pre_trigger");
// Init the device command list
initCommand(driver::INIT_COMMAND);
......@@ -154,21 +150,24 @@ void CAENQdcDriver::execute(const std::string& aCommand) {
void CAENQdcDriver::refreshNbChannelsProperty(int32 aValue) throw (CannotSetValue){
// Group properties
channelEnableMask.resize(aValue / 8);
triggerHoldOff.resize(aValue / 8);
gateWidth.resize(aValue / 8);
preGate.resize(aValue / 8);
baselineMean.resize(aValue / 8);
triggerHysteresis.resize(aValue / 8);
inputSmoothing.resize(aValue / 8);
dcOffset.resize(aValue / 8);
chargeSensitivity.resize(aValue / 8);
preTrigger.resize(aValue / 8);
pulsePolarity.resize(aValue / 8);
pulsePolarityStr.resize(aValue / 8);
// Channel properties
triggerThreshold.resize(aValue);
selfTrigger.resize(aValue);
chargeSensitivity.resize(aValue);
gateWidth.resize(aValue);
preGate.resize(aValue);
baselineMean.resize(aValue);
triggerHysteresis.resize(aValue);
inputSmoothing.resize(aValue);
channelActive.resize(aValue);
channelActiveStr.resize(aValue);
dcOffset.resize(aValue);
preTrigger.resize(aValue);
pulsePolarity.resize(aValue);
pulsePolarityStr.resize(aValue);
}
void CAENQdcDriver::refreshDppAcqModeProperty(int32 aValue) throw (CannotSetValue) {
......
......@@ -79,27 +79,23 @@ public:
Property<int32> recordLength; // Nb samples for oscilloscope mode
Property<int32> ioLevel;
Property<int32> triggerMode;
Property<int32> channelMask;
Property<int32> groupMask;
// Channels properties in dppParams - QDC
Property<int32> triggerHoldOff; // trgho - same for all channels
DynamicProperty<int32> selfTrigger; // selft - range 0:1 (enable - disable)
DynamicProperty<int32> triggerThreshold; // thr (N x 4 ns)
DynamicProperty<int32> chargeSensitivity; // csens - range 0:3 (40fc/LSB, 160fc/LSB, 640fc/LSB, 2,5pc/LSB)
DynamicProperty<int32> gateWidth; // sgate (N x 4 ns)
DynamicProperty<int32> preGate; // pgate (N x 4 ns)
// Group properties in dppParams - QDC
DynamicProperty<int32> gateWidth; // sgate - samples (16 ns)
DynamicProperty<int32> preGate; // pgate - samples (16 ns)
DynamicProperty<int32> baselineMean; // nsbl - range 0:6 (no baseline, 4, 8, 16, 32, 64, 128)
DynamicProperty<int32> preTrigger; // samples - must be > preGate + 112 ns
DynamicProperty<int32> triggerHoldOff; // trgho - samples
DynamicProperty<int32> triggerHysteresis; // range 0:1 enable, disable
DynamicProperty<int32> inputSmoothing; // range 1, 2, 3, 4, 5, 6
// Channels properties outside dppParam
DynamicProperty<int32> channelActive;
DynamicProperty<std::string> channelActiveStr;
DynamicProperty<int32> dcOffset;
DynamicProperty<int32> pulsePolarity; // invert input - range 0:1
DynamicProperty<int32> dcOffset; // LSB - value x 16
DynamicProperty<int32> channelEnableMask; // max value 0xFF
DynamicProperty<int32> triggerThreshold; // thr (N x 4 ns) ---> NB per channel
DynamicProperty<int32> chargeSensitivity; // values 0 to 7
DynamicProperty<int32> inputSmoothing; // values 0 to 7
DynamicProperty<int32> channelActive;
DynamicProperty<int32> pulsePolarity; // 0 = positive - 1 = negative
DynamicProperty<std::string> channelActiveStr;
DynamicProperty<std::string> pulsePolarityStr;
DynamicProperty<int32> preTrigger; // range 0:1023 (nSamples = pre_trig x 2)
// Commands
static const std::string WRITE_PARAMETERS_COMMAND;
......
......@@ -20,7 +20,6 @@
#define CAENQDCSTATE_H
#include <Driver.h>
#include "CAENQdcDriver.h"
namespace caen_qdc {
......
......@@ -18,7 +18,8 @@
#include "PerfectCAENQdcDriver.h"
#include "CAENQdcDef.h"
#include <controllers/common/acquisition/mode/DPPAcquisitionCommon.h>
#include "CAENQdcDriver.h"
using namespace std;
......@@ -28,7 +29,9 @@ namespace caen_qdc {
* Constructor
*/
PerfectCAENQdcDriver::PerfectCAENQdcDriver(CAENQdcDriver* owner) : CAENQdcState(owner) {
/* Empty */
m_boardHandle = 0;
ret = CAEN_DGTZ_Success;
}
/*
......@@ -38,11 +41,26 @@ PerfectCAENQdcDriver::~PerfectCAENQdcDriver() {
/* Empty */
}
/*!
* \brief open command implementation
*/
void PerfectCAENQdcDriver::open() {
}
/*!
* \brief close command implementation
*/
void PerfectCAENQdcDriver::close() {
}
/*!
* \brief Init command implementation
*/
void PerfectCAENQdcDriver::init() {
cout << "Init---------------" << endl;
}
/*!
......@@ -64,6 +82,7 @@ void PerfectCAENQdcDriver::reset() {