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