Differences between the Oxford dev4/ version of RodCrate? (also now used at SR1) and the SctRodDaq_3_0_BRANCH, from which it developed. NOT YET IN CVS.
[pcphsctr05] /home/sctroddq/sctsw/RodDaq > cvs diff RodCrate/ cvs diff: Diffing RodCrate Index: RodCrate/BocAddresses.h =================================================================== RCS file: /afs/cern.ch/user/s/sctpixel/private/cvsroot/RodDaq/RodCrate/BocAddresses.h,v retrieving revision 1.6.2.2 diff -r1.6.2.2 BocAddresses.h 19c19 < #include "../CommonWithDsp/memoryPartitions.h" --- > #include "memoryPartitions.h" Index: RodCrate/BocCard.cxxI'm worried that it will now pick up Dsp/Common/Include/memoryPartitions.h, but that this may not have been what was intended.
=================================================================== RCS file: /afs/cern.ch/user/s/sctpixel/private/cvsroot/RodDaq/RodCrate/BocCard.cxx,v retrieving revision 1.9.2.2 diff -r1.9.2.2 BocCard.cxx 237,238c237 < void BocCard::status() { < --- > void BocCard::status(std::ostream& oss) { 240c239 < std::cout << "Pre-production BOC: "; --- > oss << "Pre-production BOC: "; 243c242 < std::cout << "Production BOC - Revision A: "; --- > oss << "Production BOC - Revision A: "; 246c245 < std::cout << "Production BOC - Revision B: "; --- > oss << "Production BOC - Revision B: "; 249c248 < std::cout << "Production BOC - Revision C: "; --- > oss << "Production BOC - Revision C: "; 252c251 < std::cout << "Unknown BOC type: "; --- > oss << "Unknown BOC type: "; 254c253 < std::cout << "status" << std::endl; --- > oss << "status" << std::endl; 256,262c255,261 < std::cout << std::dec << " Module Type: " << m_moduleType; < std::cout << " Serial Number: " << m_serialNumber; < std::cout << std::endl; < std::cout << " Hardware Version: " << m_hardwareRevision; < std::cout << " Firmware Version: " << m_firmwareRevision; < std::cout << std::endl; < std::cout << std::hex << " Manufacturer: " << m_manufacturer; --- > oss << std::dec << " Module Type: " << m_moduleType; > oss << " Serial Number: " << m_serialNumber; > oss << std::endl; > oss << " Hardware Version: " << m_hardwareRevision; > oss << " Firmware Version: " << m_firmwareRevision; > oss << std::endl; > oss << std::hex << " Manufacturer: " << m_manufacturer; 266c265 < std::cout << " Status Register: " << getBocStatusRegister(); --- > oss << " Status Register: " << getBocStatusRegister(); 268c267 < std::cout << std::dec << std::endl; --- > oss << std::dec << std::endl;
270a270,272 > void BocCard::status(){ > status(std::cout); > } Index: RodCrate/BocCard.h =================================================================== RCS file: /afs/cern.ch/user/s/sctpixel/private/cvsroot/RodDaq/RodCrate/BocCard.h,v retrieving revision 1.6.2.2 diff -r1.6.2.2 BocCard.h 195c195,196 < void status(); --- > void status(); > void status(std::ostream&);This BocCard::status(ostream&) looks useful, since there seems to be no other way to stream to anything other than std::cout.
Index: RodCrate/Makefile =================================================================== RCS file: /afs/cern.ch/user/s/sctpixel/private/cvsroot/RodDaq/RodCrate/Makefile,v retrieving revision 1.18 diff -r1.18 Makefile 31d30 < $(SCTPIXEL_DAQ_ROOT)/CommonWithDsp/smSendTxtBuff.h \ 41,42c40,41 < -I$(SCTPIXEL_DAQ_ROOT)/CommonWithDsp/Sct < --- > -I$(SCTPIXEL_DAQ_ROOT)/CommonWithDsp/Sct \ > -I$(SCTPIXEL_DAQ_ROOT)/Dsp/Common/IncludeNot sure about these.
Index: RodCrate/RodModule.cxx =================================================================== RCS file: /afs/cern.ch/user/s/sctpixel/private/cvsroot/RodDaq/RodCrate/RodModule.cxx,v retrieving revision 1.61.2.1 diff -r1.61.2.1 RodModule.cxx 378a379,382 > void RodModule::status() throw(){ > status(std::cout); > } > 381,388c385,393 < */ < void RodModule::status() throw() { < std::cout << "Slot: " << m_slot; < std::cout << "Serial Number:" << m_serialNumber; < std::cout << "Number of slave DSPs: " << m_numSlaves; < std::cout << std::endl; < std::hex(std::cout); < std::cout << "Status registers[0-2]: "; --- > AJB modified this to print to a string > */ > void RodModule::status(std::ostream& oss) throw() { > oss << "Slot: " << m_slot; > oss << "Serial Number:" << m_serialNumber; > oss << "Number of slave DSPs: " << m_numSlaves; > oss << std::endl; > std::hex(oss); > oss << "Status registers[0-2]: "; 391c396 < std::cout << readRodStatusReg(i) << " " ; --- > oss << readRodStatusReg(i) << " " ; 395c400 < std::cout << "status() can't read ROD status registers." << std::flush; --- > oss << "status() can't read ROD status registers." << std::flush; 397c402 < std::cout << std::endl; --- > oss << std::endl; 399c404 < std::cout << "Command registers[0-1]: "; --- > oss << "Command registers[0-1]: "; 402c407 < std::cout << readRodCommandReg(i) << " " ; --- > oss << readRodCommandReg(i) << " " ; 406c411 < std::cout << "status() can't read ROD command registers.\n" << std::flush; --- > oss << "status() can't read ROD command registers.\n" << std::flush; 409,410c414,415 < std::dec(std::cout); < std::cout << "Primitive state: " << getPrimState() << " Text State: " << --- > std::dec(oss); > oss << "Primitive state: " << getPrimState() << " Text State: " << 412,413c417 < std::cout << std::endl; < return; --- > oss << std::endl;status(ostream&) shouldnt be needed as RodModule can already ostream itself.
Index: RodCrate/RodModule.h =================================================================== RCS file: /afs/cern.ch/user/s/sctpixel/private/cvsroot/RodDaq/RodCrate/RodModule.h,v retrieving revision 1.26 diff -r1.26 RodModule.h 20c20,23 < #include "smSendTxtBuff.h" --- > //dpsf: #include "smSendTxtBuff.h" > #include "comRegDfns.h" //dpsf: added > #include "txtBuffer.h" //dpsf: added > #include "memoryPartitions.h" //dpsf: added temp. see comments in memoryPartitions.h 187,188c190,192 < * For now, it simply prints to standard output. Later we will add a structured < * report of name=value pairs. --- > * For now, it simply prints to standard output. > * AJB modified this to print to a string. > * Later we will add a structured report of name=value pairs. 190a195 > void status(std::ostream& oss) throw();