Requirement
HDMC displays bit fields of Registers to interactive users. The DAQ requires such access from C++.
Desired Calling Syntax in C++
MyReg *myreg; int value = myreg->SingleBit(); int oldvalue = myreg->FourBitField(6);
Implementation
Small program parses default.conf file and generates subclasses of ModuleRegister32 or ModuleRegister16 for specified list of Registers.
$ cat >register32.list DSS.MotherCR DSS.MotherSR ^D $cat >register16.list TTCvi.CSR1 TTCvi.CSR2 ^D $ regbuild -d /tmp -l register32.list $ regbuild -d /tmp -l register16.list -c ModuleRegister16
Status
Working: but only for the default bit fields. At the moment alternate representations are ignored.