Add createAsynParams method to tidy up the constructor

This commit is contained in:
Douglas Araujo
2024-09-12 11:59:37 +02:00
parent aa7a350688
commit 1ec9ec9f50
2 changed files with 38 additions and 33 deletions
+37 -33
View File
@@ -46,6 +46,40 @@ Orca::Orca(const char* portName, int cameraId, int maxBuffers, size_t maxMemory,
return;
}
createAsynParams();
setIntegerParam(NDArrayCallbacks, 1);
setStringParam(ADStatusMessage, "Idle");
callParamCallbacks();
connectCamera();
printf(
"\n\n============================ Init Camera "
"=========================\n");
initCamera();
printf(
"\n\n============================ Start Threads "
"=======================\n");
/* launch image read task */
epicsThreadCreate("OrcaImageTask", epicsThreadPriorityMedium,
epicsThreadGetStackSize(epicsThreadStackMedium),
c_imagetask, this);
/* launch temp read task */
epicsThreadCreate("OrcaTemperatureTask", epicsThreadPriorityMedium,
epicsThreadGetStackSize(epicsThreadStackMedium),
c_temperaturetask, this);
/* shutdown on exit */
// epicsAtExit(c_shutdown, this);
printf("\n\n=== END Constructor ADOrca ===\n");
printf(
"===================================================================\n");
}
void Orca::createAsynParams() {
// General
createParam(hFrameRateString, asynParamFloat64, &hFrameRate);
createParam(hOrcaNameString, asynParamOctet, &hOrcaName);
@@ -101,9 +135,9 @@ Orca::Orca(const char* portName, int cameraId, int maxBuffers, size_t maxMemory,
createParam(hNumberOfOutputTriggerConnectorString, asynParamInt32,
&hNumberOfOutputTriggerConnector);
createParam(hOutputTriggerSource0String, asynParamInt32,
&hOutputTriggerSource0),
createParam(hOutputTriggerSource1String, asynParamInt32,
&hOutputTriggerSource1);
&hOutputTriggerSource0);
createParam(hOutputTriggerSource1String, asynParamInt32,
&hOutputTriggerSource1);
createParam(hOutputTriggerSource2String, asynParamInt32,
&hOutputTriggerSource2);
createParam(hOutputTriggerPolarity0String, asynParamInt32,
@@ -213,36 +247,6 @@ Orca::Orca(const char* portName, int cameraId, int maxBuffers, size_t maxMemory,
&evrCountsSinceAcqStart);
createParam(evrTriggerDroppedString, asynParamInt32, &evrTriggerDropped);
createParam(hAcqControlString, asynParamInt32, &hAcqControl);
setIntegerParam(NDArrayCallbacks, 1);
setStringParam(ADStatusMessage, "Idle");
callParamCallbacks();
connectCamera();
printf(
"\n\n============================ Init Camera "
"=========================\n");
initCamera();
printf(
"\n\n============================ Start Threads "
"=======================\n");
/* launch image read task */
epicsThreadCreate("OrcaImageTask", epicsThreadPriorityMedium,
epicsThreadGetStackSize(epicsThreadStackMedium),
c_imagetask, this);
/* launch temp read task */
epicsThreadCreate("OrcaTemperatureTask", epicsThreadPriorityMedium,
epicsThreadGetStackSize(epicsThreadStackMedium),
c_temperaturetask, this);
/* shutdown on exit */
// epicsAtExit(c_shutdown, this);
printf("\n\n=== END Constructor ADOrca ===\n");
printf(
"===================================================================\n");
}
int Orca::initCamera() {
+1
View File
@@ -199,6 +199,7 @@ class epicsShareClass Orca : public ADDriver {
virtual asynStatus writeFloat64(asynUser* pasynUser, epicsFloat64 value);
virtual void report(FILE* fp, int details);
void createAsynParams();
int readParameter(int propertyID, bool processPV = true);
int readParameterStr(int paramIndex);