From: <ro...@us...> - 2010-11-11 12:50:49
|
Revision: 2403 http://nscldaq.svn.sourceforge.net/nscldaq/?rev=2403&view=rev Author: ron-fox Date: 2010-11-11 12:50:42 +0000 (Thu, 11 Nov 2010) Log Message: ----------- Add support for the CAEN V965 module. Latent support for the VMUSB slow control module. Modified Paths: -------------- trunk/llnlReadout/CHANGELOG trunk/llnlReadout/configure.in trunk/llnlReadout/daqconfig/CConfiguration.cpp trunk/llnlReadout/devices/C785.cpp trunk/llnlReadout/tclserver/TclServer.cpp Modified: trunk/llnlReadout/CHANGELOG =================================================================== --- trunk/llnlReadout/CHANGELOG 2010-11-04 21:19:05 UTC (rev 2402) +++ trunk/llnlReadout/CHANGELOG 2010-11-11 12:50:42 UTC (rev 2403) @@ -55,3 +55,4 @@ 3.2-008 May 19, 2010 - Adding support for CAEN V977 input register. +Nov 11, 2010 - Adding support for CAEN V965 multirange qdc. \ No newline at end of file Modified: trunk/llnlReadout/configure.in =================================================================== --- trunk/llnlReadout/configure.in 2010-11-04 21:19:05 UTC (rev 2402) +++ trunk/llnlReadout/configure.in 2010-11-11 12:50:42 UTC (rev 2403) @@ -8,7 +8,7 @@ # Separate device libraries. -AM_INIT_AUTOMAKE(llnlReadout, 3.4, fo...@ns...) +AM_INIT_AUTOMAKE(llnlReadout, 3.4-001, fo...@ns...) # # The variable below should track the Modified: trunk/llnlReadout/daqconfig/CConfiguration.cpp =================================================================== --- trunk/llnlReadout/daqconfig/CConfiguration.cpp 2010-11-04 21:19:05 UTC (rev 2402) +++ trunk/llnlReadout/daqconfig/CConfiguration.cpp 2010-11-11 12:50:42 UTC (rev 2403) @@ -62,6 +62,7 @@ // Register and keep the commands. m_Commands.push_back(new CADCCommand(*m_pInterp, *this)); + m_Commands.push_back(new CADCCommand(*m_pInterp, *this, "caenv965")); // Needs to be distinguishable m_Commands.push_back(new CCAENChainCommand(*m_pInterp, *this)); m_Commands.push_back(new CScalerCommand(*m_pInterp, *this)); m_Commands.push_back(new CCAENV830Command(*m_pInterp, *this)); Modified: trunk/llnlReadout/devices/C785.cpp =================================================================== --- trunk/llnlReadout/devices/C785.cpp 2010-11-04 21:19:05 UTC (rev 2402) +++ trunk/llnlReadout/devices/C785.cpp 2010-11-11 12:50:42 UTC (rev 2403) @@ -78,6 +78,7 @@ Const(LogicalCrate) 0x103c; Const(ECountReset) 0x1040; Const(FSRange) 0x1060; +Const(Iped) 0x1060; Const(Thresholds) 0x1080; // Continues through 10bf, 32 D16 words. // Prom locations: We'll want to be sure the module really is a V785: @@ -158,6 +159,12 @@ static CConfigurableObject::limit tsHigh(1200); static CConfigurableObject::Limits tsRange(tsLow, tsHigh); +// -iped is from 0-255. + +static CConfigurableObject::limit ipedLow(0); +static CConfigurableObject::limit ipedHigh(255); +static CConfigurableObject::Limits ipedRange(ipedLow, ipedHigh); + ////////////////////////////////////////////////////////////////////// /////////////////// Canonical class/object operations //////////////// ////////////////////////////////////////////////////////////////////// @@ -319,6 +326,9 @@ m_pConfiguration->addParameter("-timescale", CConfigurableObject::isInteger, &tsRange, "600"); + m_pConfiguration->addParameter("-iped", CConfigurableObject::isInteger, + &ipedRange, "180"); + m_pConfiguration->addParameter("-requiredata", CConfigurableObject::isBool, NULL, "true"); m_pConfiguration->addParameter("-commonstop", CConfigurableObject::isBool, @@ -355,7 +365,7 @@ int type = getModuleType(controller, base); if ((type != 785) && (type != 775) && (type != 792) && - (type != 862)) { // 775 for testing!!. + (type != 862) && (type != 965)) { // 775 for testing!!. char message[100]; string name = m_pConfiguration->getName(); sprintf(message, "Module %s at base 0x%x is not a CAEN 32 channel digitizer but a %d", @@ -462,6 +472,11 @@ controller.vmeWrite16(base + reg2Offset, initamod, static_cast<uint16_t>(0x400)); } + // QDC specific settings: + if ((type == 792) || (type == 862) || (type == 965)) { + int iped = getIntegerParameter("-iped"); + controller.vmeWrite16(base + Iped, initamod, static_cast<uint16_t>(iped)); + } // Finally, ensure that at the end of a readout we'll get a BERR, rather than // we'll just write control regiseter 1 the way we want it: Modified: trunk/llnlReadout/tclserver/TclServer.cpp =================================================================== --- trunk/llnlReadout/tclserver/TclServer.cpp 2010-11-04 21:19:05 UTC (rev 2402) +++ trunk/llnlReadout/tclserver/TclServer.cpp 2010-11-11 12:50:42 UTC (rev 2403) @@ -140,7 +140,7 @@ readConfigFile(); // Initialize the modules. initModules(); // Initialize the fully configured modules. startTcpServer(); // Set up the Tcp/Ip listener event. - EventLoop(); // Run the Tcl event loop forever. + EventLoop(); // Run the Tcl event loop forever. } catch (string msg) { cerr << "TclServer thread caught a string exception: " << msg << endl; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |