# Database for NDStdArrays asyn driver and standard asyn device support # Mark Rivers # April 14, 2008 ################################################################### # These records are the array size and data type # ################################################################### # The number of dimensions record(longin, "$(P)$(R)NDimensions_RBV") { field(PINI, "1") field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ARRAY_NDIMENSIONS") field(SCAN, "I/O Intr") } # The array dimensions waveform record record(waveform, "$(P)$(R)Dimensions_RBV") { field(PINI, "1") field(DTYP, "asynInt32ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") field(FLNK, "$(P)$(R)Dim0SA") field(SCAN, "I/O Intr") } # Note, we only extrace the first 2 dimensions here, but this # can easily be extended up to the maximum of 10 dimensions record(subArray, "$(P)$(R)Dim0SA") { field(INP, "$(P)$(R)Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") field(FLNK, "$(P)$(R)ArraySize0_RBV") } record(longin, "$(P)$(R)ArraySize0_RBV") { field(INP, "$(P)$(R)Dim0SA") field(FLNK, "$(P)$(R)Dim1SA") } record(subArray, "$(P)$(R)Dim1SA") { field(INP, "$(P)$(R)Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") field(FLNK, "$(P)$(R)ArraySize1_RBV") } record(longin, "$(P)$(R)ArraySize1_RBV") { field(INP, "$(P)$(R)Dim1SA") # field(FLNK, "$(P)$(R)Dim2SA") } record(mbbi, "$(P)$(R)DataType_RBV") { field(PINI, "1") field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))DATA_TYPE") field(ZRST, "Int8") field(ZRVL, "0") field(ONST, "UInt8") field(ONVL, "1") field(TWST, "Int16") field(TWVL, "2") field(THST, "UInt16") field(THVL, "3") field(FRST, "Int32") field(FRVL, "4") field(FVST, "UInt32") field(FVVL, "5") field(SXST, "Float32") field(SXVL, "6") field(SVST, "Float64") field(SVVL, "7") field(SCAN, "I/O Intr") } ################################################################### # This record is the array waveform data # ################################################################### record(waveform, "$(P)$(R)ArrayData") { field(DTYP, "asynInt$(SIZE)ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ARRAY_DATA") field(FTVL, "$(FTVL)") field(NELM, "$(NELEMENTS)") field(SCAN, "I/O Intr") }