The data type of the ZRVL field is ULONG:
This is from mbbiRecord.dbd for 3.14.12.4:
field(ZRVL,DBF_ULONG) {
prompt("Zero Value")
promptgroup(GUI_BITS1)
special(SPC_MOD)
pp(TRUE)
base(HEX)
interest(1)
}
However, because Channel Access does not support a ULONG datatype, it promotes it to double.
Mark
In working with the value types of a MBBI, I noticed that the native type of the mbbi values is DBF_DOUBLE even though the documentation states ULONG. When a connection handler completes a connection with those attributes it returns the
DOUBLE type. Also, when a caget with the –D option is executed the following is displayed.
> caget –d DBR_LONG <PV NAME>.ZRVL
<PV NAME>.ZRVL
Native Data Type: DBF_DOUBLE
Request Type: DBR_LONG
Element Count: 1
Value: 0
However a caput with a double value does get truncated during the put. Which makes sense as these values should be integers. So why is the native type a double? Currently I am
basing display of data by the EPICS type. So this data is shows as a decimal value because it comes back as a DOUBLE.
We can code for this configuration but I was just curious as why the native type for MBBI values was set to DOUBLE.
Thanks