From 52c274d5b297ade0ae0f0084da261c6832059c14 Mon Sep 17 00:00:00 2001 From: Douglas Araujo Date: Fri, 13 Sep 2024 11:59:44 +0200 Subject: [PATCH] Remove unused class parameter and update the devOrcaConfig iocsh function --- .gitignore | 1 + ADOrcaApp/src/orca.cpp | 45 +++++++++++++----------------------------- ADOrcaApp/src/orca.h | 3 +-- cmds/st.cmd | 41 ++++++++++++++++++-------------------- 4 files changed, 35 insertions(+), 55 deletions(-) diff --git a/.gitignore b/.gitignore index a08be8b..d8b1125 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ kafka.conf ecdc-kafka-ca.crt .pre-commit-config.yaml .clang-format +.iocsh_history diff --git a/ADOrcaApp/src/orca.cpp b/ADOrcaApp/src/orca.cpp index 85a4616..480775a 100644 --- a/ADOrcaApp/src/orca.cpp +++ b/ADOrcaApp/src/orca.cpp @@ -28,17 +28,14 @@ static void c_temperaturetask(void* arg) { } //============================================================================ -Orca::Orca(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, - int priority, int stackSize, int maxFrames) +Orca::Orca(const char* portName, int maxBuffers, size_t maxMemory, int priority, + int stackSize, int maxFrames) : ADDriver(portName, 1, 0, maxBuffers, maxMemory, asynEnumMask, asynEnumMask, ASYN_CANBLOCK, /* ASYN_CANBLOCK=1 ASYN_MULTIDEVICE=0 */ 1, /* autoConnect=1 */ priority, stackSize), - m_hdcam(NULL), - m_id(0) - -{ + m_hdcam(NULL) { const char* functionName = "orcaDetector::orcaDetector"; stopThread = 0; @@ -1888,25 +1885,14 @@ int Orca::connectCamera(void) { //============================================================================ int Orca::disconnectCamera(void) { - static const char* functionName = "disconnectCamera"; - int status = 0; if (m_hdcam == NULL) { return status; } - asynPrint(pasynUserSelf, ASYN_TRACE_FLOW, "%s:%s: disconnecting camera %d\n", - driverName, functionName, m_id); - dcamdev_close(m_hdcam); - if (status) { - asynPrint(pasynUserSelf, ASYN_TRACE_ERROR, - "%s:%s: error closing camera %d\n", driverName, functionName, - m_id); - } - m_hdcam = NULL; return status; } @@ -2163,33 +2149,30 @@ int Orca::roundToNearestMultipleOfFour(int value) { } /* Code for iocsh registration */ -extern "C" int OrcaConfig(const char* portName, int cameraId, int maxBuffers, +extern "C" int OrcaConfig(const char* portName, int maxBuffers, size_t maxMemory, int priority, int stackSize, int maxFrames) { - new Orca(portName, cameraId, maxBuffers, maxMemory, priority, stackSize, - maxFrames); + new Orca(portName, maxBuffers, maxMemory, priority, stackSize, maxFrames); return (asynSuccess); } //============================================================================ static const iocshArg OrcaConfigArg0 = {"Port name", iocshArgString}; -static const iocshArg OrcaConfigArg1 = {"CameraId", iocshArgInt}; -static const iocshArg OrcaConfigArg2 = {"maxBuffers", iocshArgInt}; -static const iocshArg OrcaConfigArg3 = {"maxMemory", iocshArgInt}; -static const iocshArg OrcaConfigArg4 = {"priority", iocshArgInt}; -static const iocshArg OrcaConfigArg5 = {"stackSize", iocshArgInt}; -static const iocshArg OrcaConfigArg6 = {"maxFrames", iocshArgInt}; +static const iocshArg OrcaConfigArg1 = {"maxBuffers", iocshArgInt}; +static const iocshArg OrcaConfigArg2 = {"maxMemory", iocshArgInt}; +static const iocshArg OrcaConfigArg3 = {"priority", iocshArgInt}; +static const iocshArg OrcaConfigArg4 = {"stackSize", iocshArgInt}; +static const iocshArg OrcaConfigArg5 = {"maxFrames", iocshArgInt}; static const iocshArg* const OrcaConfigArgs[] = { - &OrcaConfigArg0, &OrcaConfigArg1, &OrcaConfigArg2, &OrcaConfigArg3, - &OrcaConfigArg4, &OrcaConfigArg5, &OrcaConfigArg6}; + &OrcaConfigArg0, &OrcaConfigArg1, &OrcaConfigArg2, + &OrcaConfigArg3, &OrcaConfigArg4, &OrcaConfigArg5}; -static const iocshFuncDef configorca = {"devOrcamatsuConfig", 7, - OrcaConfigArgs}; +static const iocshFuncDef configorca = {"devOrcaConfig", 6, OrcaConfigArgs}; static void configorcaCallFunc(const iocshArgBuf* args) { OrcaConfig(args[0].sval, args[1].ival, args[2].ival, args[3].ival, - args[4].ival, args[5].ival, args[6].ival); + args[4].ival, args[5].ival); } static void orcaRegister(void) { diff --git a/ADOrcaApp/src/orca.h b/ADOrcaApp/src/orca.h index 6aa1d1d..a53f4c1 100644 --- a/ADOrcaApp/src/orca.h +++ b/ADOrcaApp/src/orca.h @@ -192,7 +192,7 @@ class epicsShareClass Orca : public ADDriver { public: - Orca(const char*, int, int, size_t, int, int, int); + Orca(const char*, int, size_t, int, int, int); // ~Orca(); /* override ADDriver methods */ virtual asynStatus writeInt32(asynUser* pasynUser, epicsInt32 value); @@ -335,7 +335,6 @@ class epicsShareClass Orca : public ADDriver { // handle used to wait for events sent from the device HDCAMWAIT hwait; - int m_id; int stopThread; epicsEventId startEvent_; diff --git a/cmds/st.cmd b/cmds/st.cmd index ae0e90d..887e2ee 100644 --- a/cmds/st.cmd +++ b/cmds/st.cmd @@ -1,10 +1,8 @@ -# This should be a test startup script require adorca require adpluginkafka -epicsEnvSet("PREFIX", "Orca:") +epicsEnvSet("PREFIX", "YMIR-Det1:") epicsEnvSet("PORT", "ORCA") -epicsEnvSet("CAMERA", "0") epicsEnvSet("QSIZE", "21") epicsEnvSet("XSIZE", "2048") epicsEnvSet("YSIZE", "2048") @@ -14,17 +12,16 @@ epicsEnvSet("NELEMENTS", "4194304") epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", "64000000") #EVR settings -#epicsEnvSet("EVR", "LabS-NIDO:Ctrl-EVR-01") -epicsEnvSet("EVR", "Labs-ECDC:TS-EVR-11") +epicsEnvSet("EVR", "YMIR-TS:Ctrl-EVR-03") epicsEnvSet("EVR_EVENT", "B") # iocshLoad("$(adorca_DIR)ADOrca.iocsh") -devOrcamatsuConfig("$(PORT)", $(CAMERA), 0, 0, 0, 0, 10) +devOrcaConfig("$(PORT)", 0, 0, 0, 0, 10) dbLoadRecords("$(adorca_DIR)db/orca.db","P=$(PREFIX),R=cam1:,EVR=$(EVR),E=$(EVR_EVENT),PORT=$(PORT),ADDR=0,TIMEOUT=1") -#asynSetTraceMask("$(PORT)",-1,0x9) +#asynSetTraceMask("$(PORT)",-1,0x10) #asynSetTraceIOMask("$(PORT)",-1,0x2) @@ -42,30 +39,30 @@ NDStdArraysConfigure("Image1", "$(QSIZE)", 0, "$(PORT)", 0, 0) dbLoadRecords("NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT),TYPE=Int32,FTVL=LONG,NELEMENTS=$(NELEMENTS)") # Create a kafka plugin, set it to get data from orca driver. -#epicsEnvSet("KFK_TOPIC", "ymir_camera") -epicsEnvSet("KFK_TOPIC", "nido_camera") +epicsEnvSet("KFK_TOPIC", "ymir_camera") # Kafka plugin -epicsEnvSet("KFK_CONFIG_FILE_PATH", "/home/iocuser/git/adhama/cmds/kafka.conf") +#epicsEnvSet("KFK_CONFIG_FILE_PATH", "/etc/kafka/kafka.conf") -KafkaPluginConfigure("KFK1", 3, 1, "$(PORT)", 0, -1, "$(KFK_TOPIC)", "hama_kfk1","$(KFK_CONFIG_FILE_PATH)") -dbLoadRecords("$(adpluginkafka_DIR)db/adpluginkafka.db", "P=$(PREFIX), R=Kfk1:, PORT=KFK1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=$(PORT)") +#KafkaPluginConfigure("KFK1", 3, 1, "$(PORT)", 0, -1, "$(KFK_TOPIC)", "hama_kfk1","$(KFK_CONFIG_FILE_PATH)") +#dbLoadRecords("$(adpluginkafka_DIR)db/adpluginkafka.db", "P=$(PREFIX), R=Kfk1:, PORT=KFK1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=$(PORT)") -startPVAServer +# startPVAServer iocInit() -dbpf Orca:cam1:PoolUsedMem.SCAN 0 -dbpf Orca:image1:EnableCallbacks 1 -dbpf Orca:Kfk1:EnableCallbacks 1 +dbpf $(PREFIX)cam1:PoolUsedMem.SCAN 0 +dbpf $(PREFIX)image1:EnableCallbacks 1 -dbpf Orca:cam1:AcquireTime .001 -dbpf Orca:cam1:AcquirePeriod .02 -dbpf Orca:cam1:TriggerSource-S 1 # external -dbpf Orca:cam1:NumImages 10 -dbpf Orca:cam1:ImageMode 1 +dbpf $(PREFIX)cam1:AcquireTime .05 +dbpf $(PREFIX)cam1:AcquirePeriod .1 +dbpf $(PREFIX)cam1:NumImages 10 +dbpf $(PREFIX)cam1:ImageMode 1 #dbpf Orca:cam1:TriggerPolarity-S # 2-positive, 1-negative epicsThreadSleep(1.0) -dbl > pv.list +dbpf $(PREFIX)cam1:PoolUsedMem.SCAN 0 +dbpf $(PREFIX)image1:EnableCallbacks 1 + +epicsThreadSleep(1.0)