2014-06-13, hazen, dzou: I think you have left out parts of the register names in many cases. For example, below you want I believe "CONF.EVB.ENABLE_DAQLSC".

void AMC13::daqLinkEnable(bool b) { if(b) write(T1, "EVB.ENABLE_DAQLSC", 1); else write(T1, "EVB.ENABLE_DAQLSC", 0); }

This is a small thing, but I'd suggest the more concise:

void AMC13::daqLinkEnable(bool b) { write(T1, "EVB.ENABLE_DAQLSC", b); }

Please change the AMCInputEnable to take a bit mask instead of a list.

Please add an SFPOutputEnable to enable SFPs, taking a 3-bit mask (writes to CONF.SFP.ENABLE_MASK).

2014-06-10, dzou:

A number of control functions implemented with hard coded addresses (due to no equivalent register).

Should add relevant registers to new address table and use named registers in control functions.

2014-06-10, hazen:

Add 64-bit versions of read and write methods. Apparently under some new C++ rules you aren't allowed to convert uint32_t* to uint64_t* without using a union or something.

(for now, maybe just add -fno-strict-aliasing to Makefile!)

2014-06-10, hazen:

Check for block read capability and automatically choose between block read and single-word reads. e.g.:

 
  if( m_T1 -> getNode(reg).getMode() == uhal::defs::INCREMENTAL))
    // do block read
  else
    // do single reads
That is fine if a register name is used. For the address-based block reads, it is more

FIXED(2014-06-10, dzou): Address block read do not require register to have incremental mode. Register block read now checks for mode==incremental and will do a address block read if there is no mode == incremental

2041-06-10, hazen:

Break up block reads greater than 0x400 32-bit words into multiple reads. File a bug report to UHAL developers that reads greater than about 0x500 words causes the following exception:

terminate called after throwing an instance of 'uhal::exception::IPbusCoreResponseCodeSet'
  what():  Returned Header, 0x20180706 ( transaction id = 0x00000018, transaction type = 0x00, word count = 7 ) \
  had response field = 0x06 indicating an error (1025 bytes into IPbus reply payload)
Original sent header was 0x2018080F, 9 bytes into IPbus send payload

A similar ticket has been submitted https://svnweb.cern.ch/trac/cactus/ticket/635

-- EricHazen - 10 Jun 2014

Edit | Attach | Watch | Print version | History: r34 | r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r4 - 16 Jun 2014 - DavidZou
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback