diff --git a/ADApp/Db/firewireDCAM.template b/ADApp/Db/firewireDCAM.template new file mode 100644 index 0000000..b06c45b --- /dev/null +++ b/ADApp/Db/firewireDCAM.template @@ -0,0 +1,161 @@ +## firewireDCAM.db +## Template database file to control the features of a firewire camera. +## See the detailled description for information about macros and how features +## can be controlled and read out: +## + +## Video Format +record(mbbo, "$(P)$(R)FORMAT") { + field(SCAN, "Passive") + field(PINI, "NO") + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT) 0)FDC_FORMAT") + field(ZRST, "VGA") + field(ONST, "Super VGA 1") + field(TWST, "Super VGA 2") + field(THST, "Still image") + field(FRST, "User-defined") + field(ZRVL, "0x0") + field(ONVL, "0x1") + field(TWVL, "0x2") + field(THVL, "0x6") + field(FRVL, "0x7") +} + +## Read back the framerate setting when not in ROI/format7 mode. +record(mbbi, "$(P)$(R)FORMAT_RBV") { + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) 0)FDC_FORMAT") + field(ZRST, "VGA") + field(ONST, "Super VGA 1") + field(TWST, "Super VGA 2") + field(THST, "Still image") + field(FRST, "User-defined") + field(ZRVL, "0x0") + field(ONVL, "0x1") + field(TWVL, "0x2") + field(THVL, "0x6") + field(FRVL, "0x7") +} + +## VideoMode +record(mbbo, "$(P)$(R)MODE") { + field(SCAN, "Passive") + field(PINI, "NO") + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT) 0)FDC_MODE") + field(ZRST, "0") + field(ONST, "1") + field(TWST, "2") + field(THST, "3") + field(FRST, "4") + field(FVST, "5") + field(SXST, "6") + field(SVST, "7") + field(ZRVL, "0x0") + field(ONVL, "0x1") + field(TWVL, "0x2") + field(THVL, "0x3") + field(FRVL, "0x4") + field(FVVL, "0x5") + field(SXVL, "0x6") + field(SVVL, "0x7") +} + +## Read back the framerate setting when not in ROI/format7 mode. +record(mbbi, "$(P)$(R)MODE_RBV") { + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) 0)FDC_MODE") + field(ZRST, "0") + field(ONST, "1") + field(TWST, "2") + field(THST, "3") + field(FRST, "4") + field(FVST, "5") + field(SXST, "6") + field(SVST, "7") + field(ZRVL, "0x0") + field(ONVL, "0x1") + field(TWVL, "0x2") + field(THVL, "0x3") + field(FRVL, "0x4") + field(FVVL, "0x5") + field(SXVL, "0x6") + field(SVVL, "0x7") +} + +## Change the framerate when the camera is not in the ROI/format7 mode +record(mbbo, "$(P)$(R)FR") { + field(SCAN, "Passive") + field(PINI, "NO") + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT) 0)FDC_FRAMERATE") + field(ZRST, "1.875") + field(ONST, "3.75") + field(TWST, "7.5") + field(THST, "15") + field(FRST, "30") + field(FVST, "60") + field(SXST, "120") + field(SVST, "240") + field(ZRVL, "0x0") + field(ONVL, "0x1") + field(TWVL, "0x2") + field(THVL, "0x3") + field(FRVL, "0x4") + field(FVVL, "0x5") + field(SXVL, "0x6") + field(SVVL, "0x7") +} + +## Read back the framerate setting when not in ROI/format7 mode. +record(mbbi, "$(P)$(R)FR_RBV") { + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) 0)FDC_FRAMERATE") + field(ZRST, "1.875") + field(ONST, "3.75") + field(TWST, "7.5") + field(THST, "15") + field(FRST, "30") + field(FVST, "60") + field(SXST, "120") + field(SVST, "240") + field(ZRVL, "0x0") + field(ONVL, "0x1") + field(TWVL, "0x2") + field(THVL, "0x3") + field(FRVL, "0x4") + field(FVVL, "0x5") + field(SXVL, "0x6") + field(SVVL, "0x7") +} + +# Current format string +record(stringin, "$(P)$(R)CURRENT_FORMAT") { + field(PINI, "YES") + field(DTYP, "asynOctetRead") + field(INP, "@asyn($(PORT) 0)FDC_CURRENT_FORMAT") + field(SCAN, "I/O Intr") +} + +# Current mode string +record(stringin, "$(P)$(R)CURRENT_MODE") { + field(PINI, "YES") + field(DTYP, "asynOctetRead") + field(INP, "@asyn($(PORT) 0)FDC_CURRENT_MODE") + field(SCAN, "I/O Intr") +} + +# Current frame rate string +record(stringin, "$(P)$(R)CURRENT_RATE") { + field(PINI, "YES") + field(DTYP, "asynOctetRead") + field(INP, "@asyn($(PORT) 0)FDC_CURRENT_FRAMERATE") + field(SCAN, "I/O Intr") +} diff --git a/ADApp/Db/firewireFeature.template b/ADApp/Db/firewireFeature.template new file mode 100644 index 0000000..04de981 --- /dev/null +++ b/ADApp/Db/firewireFeature.template @@ -0,0 +1,163 @@ +## firewireFeature.db + +# Set the value (int32) +record(ao, "$(P)$(R)$(FEATURE)") { + field(DTYP, "asynInt32") + field(DESC, "$(DESC)") + field(OUT, "@asyn($(PORT) $(N))FDC_FEAT_VAL") +} + +# Read the value (int32) +record(ai, "$(P)$(R)$(FEATURE)_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) $(N))FDC_FEAT_VAL") + field(PINI, "YES") +} + +## Set the control mode (manual = user configured /auto = camera sets values) +record(bo, "$(P)$(R)$(FEATURE)_CTRL") { + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT) $(N))FDC_FEAT_MODE") + field(ZNAM, "Manual") + field(ONAM, "Auto") +} + +## Read back the control mode +record(bi, "$(P)$(R)$(FEATURE)_CTRL_RBV") { + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) $(N))FDC_FEAT_MODE") + field(ZNAM, "Manual") + field(ONAM, "Auto") +} + +## Read whether the camera supports this feature +record(bi, "$(P)$(R)$(FEATURE)_AVL") { + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) $(N))FDC_FEAT_AVAILABLE") + field(ZNAM, "not available") + field(ONAM, "available") +} + +# Read value boundaries +record(ai, "$(P)$(R)$(FEATURE)_MIN") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) $(N))FDC_FEAT_VAL_MIN") + field(PINI, "YES") + field(FLNK, "$(P)$(R)$(FEATURE)_DRVL") +} + +# Set DRLV field of the value PV +record(ao, "$(P)$(R)$(FEATURE)_DRVL") { + field(DOL, "$(P)$(R)$(FEATURE)_MIN NPP NMS") + field(OMSL, "closed_loop") + field(OUT, "$(P)$(R)$(FEATURE).DRVL NPP NMS") + field(FLNK, "$(P)$(R)$(FEATURE)_LOPR") +} +# Set LOPR field of the value PV +record(ao, "$(P)$(R)$(FEATURE)_LOPR") { + field(DOL, "$(P)$(R)$(FEATURE)_MIN NPP NMS") + field(OMSL, "closed_loop") + field(OUT, "$(P)$(R)$(FEATURE).LOPR NPP NMS") +} +record(ai, "$(P)$(R)$(FEATURE)_MAX") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) $(N))FDC_FEAT_VAL_MAX") + field(PINI, "YES") + field(FLNK, "$(P)$(R)$(FEATURE)_DRVH") +} +# Set DRLH field of the value PV +record(ao, "$(P)$(R)$(FEATURE)_DRVH") { + field(DOL, "$(P)$(R)$(FEATURE)_MAX NPP NMS") + field(OMSL, "closed_loop") + field(OUT, "$(P)$(R)$(FEATURE).DRVH NPP NMS") + field(FLNK, "$(P)$(R)$(FEATURE)_HOPR") +} +# Set HOPR field of the value PV +record(ao, "$(P)$(R)$(FEATURE)_HOPR") { + field(DOL, "$(P)$(R)$(FEATURE)_MAX NPP NMS") + field(OMSL, "closed_loop") + field(OUT, "$(P)$(R)$(FEATURE).HOPR NPP NMS") +} + +## Read whether the camera supports absolute (floating point) control of this feature +record(bi, "$(P)$(R)$(FEATURE)_ABS_AVL") { + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) $(N))FDC_FEAT_ABSOLUTE") + field(ZNAM, "not available") + field(ONAM, "available") +} + +# Set the feature absolute value (floating point) +record(ao, "$(P)$(R)$(FEATURE)_ABS") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn($(PORT) $(N))FDC_FEAT_VAL_ABS") + field(PREC, "3") +} + +# Read the feature absolute value +record(ai, "$(P)$(R)$(FEATURE)_ABS_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynFloat64") + field(INP, "@asyn($(PORT) $(N))FDC_FEAT_VAL_ABS") + field(PINI, "YES") + field(PREC, "3") +} + + +# Read the feature absolute value max boundary +record(ai, "$(P)$(R)$(FEATURE)_ABS_MAX") { + field(SCAN, "I/O Intr") + field(DTYP, "asynFloat64") + field(INP, "@asyn($(PORT) $(N))FDC_FEAT_VAL_ABS_MAX") + field(PINI, "YES") + field(PREC, "3") + field(FLNK, "$(P)$(R)$(FEATURE)_ABS_DRVH") +} +# Set DRLH field of the value PV +record(ao, "$(P)$(R)$(FEATURE)_ABS_DRVH") { + field(DOL, "$(P)$(R)$(FEATURE)_ABS_MAX NPP NMS") + field(OMSL, "closed_loop") + field(OUT, "$(P)$(R)$(FEATURE)_ABS.DRVH NPP NMS") + field(FLNK, "$(P)$(R)$(FEATURE)_ABS_HOPR") +} +# Set HOPR field of the value PV +record(ao, "$(P)$(R)$(FEATURE)_ABS_HOPR") { + field(DOL, "$(P)$(R)$(FEATURE)_ABS_MAX NPP NMS") + field(OMSL, "closed_loop") + field(OUT, "$(P)$(R)$(FEATURE)_ABS.HOPR NPP NMS") +} + +# Read the feature absolute value min boundary +record(ai, "$(P)$(R)$(FEATURE)_ABS_MIN") { + field(SCAN, "I/O Intr") + field(DTYP, "asynFloat64") + field(INP, "@asyn($(PORT) $(N))FDC_FEAT_VAL_ABS_MIN") + field(PINI, "YES") + field(PREC, "3") + field(FLNK, "$(P)$(R)$(FEATURE)_ABS_DRVL") +} + +# Set DRLV field of the value PV +record(ao, "$(P)$(R)$(FEATURE)_ABS_DRVL") { + field(DOL, "$(P)$(R)$(FEATURE)_ABS_MIN NPP NMS") + field(OMSL, "closed_loop") + field(OUT, "$(P)$(R)$(FEATURE)_ABS.DRVL NPP NMS") + field(FLNK, "$(P)$(R)$(FEATURE)_ABS_LOPR") +} +# Set LOPR field of the value PV +record(ao, "$(P)$(R)$(FEATURE)_ABS_LOPR") { + field(DOL, "$(P)$(R)$(FEATURE)_ABS_MIN NPP NMS") + field(OMSL, "closed_loop") + field(OUT, "$(P)$(R)$(FEATURE)_ABS.LOPR NPP NMS") +} + + diff --git a/ADApp/Db/firewireVideoModes.template b/ADApp/Db/firewireVideoModes.template new file mode 100644 index 0000000..00d7431 --- /dev/null +++ b/ADApp/Db/firewireVideoModes.template @@ -0,0 +1,58 @@ +## firewireVideoModes.db + +# Valid format strings +record(stringin, "$(P)$(R)VALID_FORMAT_$(N)") { + field(PINI, "YES") + field(DTYP, "asynOctetRead") + field(INP, "@asyn($(PORT) $(N))FDC_VALID_FORMAT") + field(SCAN, "I/O Intr") +} + +# Has format bi +record(bi, "$(P)$(R)HAS_FORMAT_$(N)") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) $(N))FDC_HAS_FORMAT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Valid mode strings +record(stringin, "$(P)$(R)VALID_MODE_$(N)") { + field(PINI, "YES") + field(DTYP, "asynOctetRead") + field(INP, "@asyn($(PORT) $(N))FDC_VALID_MODE") + field(SCAN, "I/O Intr") +} +# + +# Has mode bi +record(bi, "$(P)$(R)HAS_MODE_$(N)") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) $(N))FDC_HAS_MODE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +# Valid frame rate strings +record(stringin, "$(P)$(R)VALID_RATE_$(N)") { + field(PINI, "YES") + field(DTYP, "asynOctetRead") + field(INP, "@asyn($(PORT) $(N))FDC_VALID_FRAMERATE") + field(SCAN, "I/O Intr") +} + +# Has rate bi +record(bi, "$(P)$(R)HAS_RATE_$(N)") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT) $(N))FDC_HAS_RATE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} +