Add createAsynParams method to tidy up the constructor
This commit is contained in:
+37
-33
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user