From 4c0a03fd814822c64264c44b1116471ca252ea52 Mon Sep 17 00:00:00 2001 From: Caissa Roque <caissa.roque@ess.eu> Date: Wed, 2 Oct 2024 15:39:17 +0200 Subject: [PATCH] Add sensor cooler --- ADOrcaApp/Db/orca.template | 27 +++++++++++++++++++++++++++ ADOrcaApp/src/orca.cpp | 11 +++++++++++ 2 files changed, 38 insertions(+) diff --git a/ADOrcaApp/Db/orca.template b/ADOrcaApp/Db/orca.template index fd0dc07..d4c03be 100644 --- a/ADOrcaApp/Db/orca.template +++ b/ADOrcaApp/Db/orca.template @@ -1682,3 +1682,30 @@ record(mbbi, "$(P)$(R)FrameStampProd-R") { field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_FRAMESTAMP_PRODUCER") field(SCAN, "I/O Intr") } + +record(mbbo, "$(P)$(R)SensorCooler-S") { + field(DESC, "Sensor cooler") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Off") + field(ONVL, "2") + field(ONST, "On") + field(TWVL, "4") + field(TWST, "Max") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_SENSOR_COOLER") + field(VAL, "1") +} + +record(mbbi, "$(P)$(R)SensorCooler-RB") { + field(DESC, "Sensor cooler") + field(DTYP, "asynInt32") + field(ZRVL, "1") + field(ZRST, "Off") + field(ONVL, "2") + field(ONST, "On") + field(TWVL, "4") + field(TWST, "Max") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))H_SENSOR_COOLER") + field(SCAN, "I/O Intr") +} diff --git a/ADOrcaApp/src/orca.cpp b/ADOrcaApp/src/orca.cpp index 7031359..6ab5f84 100644 --- a/ADOrcaApp/src/orca.cpp +++ b/ADOrcaApp/src/orca.cpp @@ -447,6 +447,10 @@ int Orca::readParameter(int propertyID, bool processPV) { status = setIntegerParam(hInternalTriggerHandling, dvalue); break; // - sensor cooler + case DCAM_IDPROP_SENSORCOOLER: //(RW1--) + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_SENSORCOOLER, &dvalue); + status = setIntegerParam(hSensorCooler, dvalue); + break; case DCAM_IDPROP_SENSORCOOLERSTATUS: //(R) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_SENSORCOOLERSTATUS, &dvalue); @@ -1155,6 +1159,13 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { functionName); } + //-- Sensor cooler + else if (index == hSensorCooler) { + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SENSORCOOLER, &dvalue); + checkAndLogError(m_err, "dcamprop_setgetvalue()", index, dvalue, + functionName); + } + //-- binning else if (index == hBinning) { double dFrameBytes = 0; -- GitLab