diff --git a/ADHamaApp/src/hama.cpp b/ADHamaApp/src/hama.cpp index 7f7d396..49cf33f 100644 --- a/ADHamaApp/src/hama.cpp +++ b/ADHamaApp/src/hama.cpp @@ -1644,19 +1644,19 @@ asynStatus Hama::writeFloat64(asynUser *pasynUser, epicsFloat64 value){ printf("[DEBUG]::function ADAcquireTime from camera: %f\n", value); int trigger_mode = 0; - getIntegerParam(hTriggerSource, &trigger_mode); - m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_EXPOSURETIME, &dvalue); + double acquire_period = 0; + status = getDoubleParam(ADAcquirePeriod, &acquire_period); + status = getIntegerParam(hTriggerSource, &trigger_mode); if (trigger_mode == DCAMPROP_TRIGGERSOURCE__EXTERNAL) { - if (dvalue <= value) status = asynError; + if (value >= acquire_period) status = asynError; + else { + status = setFeature(DCAM_IDPROP_EXPOSURETIME, value); + } } else { status = setFeature(DCAM_IDPROP_EXPOSURETIME, value); - m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_EXPOSURETIME, &dvalue); - - double acquire_period = 0; - status = getDoubleParam(ADAcquirePeriod, &acquire_period); if (value >= acquire_period) { status = setFeature(DCAM_IDPROP_TRIGGERSOURCE, DCAMPROP_TRIGGERSOURCE__INTERNAL); status = setIntegerParam(hTriggerSource, DCAMPROP_TRIGGERSOURCE__INTERNAL);