added placeholder for LEVEL and sync triggers
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -14,3 +14,6 @@ ecdc-kafka-ca.crt
|
||||
.pre-commit-config.yaml
|
||||
.clang-format
|
||||
.iocsh_history
|
||||
build
|
||||
build.sh
|
||||
|
||||
|
||||
@@ -842,17 +842,6 @@ void Orca::imageTask() {
|
||||
int triggerMode = DCAMPROP_TRIGGERSOURCE__INTERNAL;
|
||||
int triggerActive, triggerTimes;
|
||||
|
||||
// Functionality DCAM_IDPROP_TRIGGERACTIVE
|
||||
// DCAMPROP_TRIGGERACTIVE__EDGE:
|
||||
// CONDITIONS: ALL DCAM_IDPROP_SENSORMODE
|
||||
// DCAMPROP_TRIGGERACTIVE__LEVEL:
|
||||
// CONDITIONS: @ DCAMPROP_SENSORMODE__AREA, SPLITVIEW
|
||||
// DCAMPROP_TRIGGERACTIVE__SYNCREADOUT:
|
||||
// CONDITIONS: @ DCAMPROP_SENSORMODE__AREA, SPLITVIEW
|
||||
|
||||
// What is SPLITVIEW?
|
||||
|
||||
|
||||
lock();
|
||||
while (1) {
|
||||
getIntegerParam(ADAcquire, &acquire);
|
||||
@@ -922,7 +911,7 @@ void Orca::imageTask() {
|
||||
double timestamp;
|
||||
|
||||
getIntegerParam(hTriggerSource, &triggerMode);
|
||||
0
|
||||
|
||||
if (triggerMode == DCAMPROP_TRIGGERSOURCE__EXTERNAL) {
|
||||
getIntegerParam(evrCounts, &evr_counts);
|
||||
|
||||
@@ -1001,40 +990,19 @@ void Orca::imageTask() {
|
||||
epicsTimeGetCurrent(&prev_trigger_time);
|
||||
evr_counts_since_last_start_previous = evr_counts_since_last_start;
|
||||
}
|
||||
|
||||
// implement DCAM_IDPROP_TRIGGERACTIVE
|
||||
// /* DCAM_IDPROP_TRIGGERACTIVE */
|
||||
// DCAMPROP_TRIGGERACTIVE__EDGE = 1, /* "EDGE" */
|
||||
// DCAMPROP_TRIGGERACTIVE__LEVEL = 2, /* "LEVEL" */
|
||||
// DCAMPROP_TRIGGERACTIVE__SYNCREADOUT = 3, /* "SYNCREADOUT" */
|
||||
// DCAMPROP_TRIGGERACTIVE__POINT = 4, /* "POINT" */
|
||||
|
||||
getIntegerParam(hTriggerActive, &triggerActive);
|
||||
|
||||
// if (triggerActive == DCAMPROP_TRIGGERACTIVE__EDGE) {
|
||||
// Exposure is initiated rising of falling edge of the trigger signal.
|
||||
// 1. Edge trigger mode. 2. Global reset edge trigger mode.
|
||||
// } else if (triggerActive == DCAMPROP_TRIGGERACTIVE__LEVEL) {
|
||||
// 1. Level trigger mode. 2. Global reset level trigger mode.
|
||||
// The width of the trigger signal determines the exposure time.
|
||||
// } else if (triggerActive == DCAMPROP_TRIGGERACTIVE__SYNCREADOUT) {
|
||||
|
||||
|
||||
// Exposure is started by an external trigger (e.g., rising edge) and
|
||||
// exposure is ended by an external trigger. It also supports pulse count
|
||||
// readout.
|
||||
// }
|
||||
// getIntegerParam(hTriggerActive, &triggerActive);
|
||||
|
||||
if (triggerActive == DCAMPROP_TRIGGERACTIVE__SYNCREADOUT) {
|
||||
// getIntegerParam(hTriggerTimes, &triggerTimes);
|
||||
|
||||
|
||||
pass
|
||||
} else if (triggerActive == DCAMPROP_TRIGGERACTIVE__LEVEL) {
|
||||
pass
|
||||
} else {
|
||||
// Checks if the elapsed time since last frame is longer than the exposure,
|
||||
// stop waiting for image and put in timeout status.
|
||||
getDoubleParam(ADAcquirePeriod, &acqusitionRate);
|
||||
getIntegerParam(ADStatus, &acqStatus);
|
||||
maxAcqusitionTime = acqusitionRate * 2;
|
||||
maxAcqusitionTime = acqusitionRate * 2; // arbitrary time longer than the acqusiontime.
|
||||
epicsTimeGetCurrent(¤tAcqTime);
|
||||
if ((epicsTimeDiffInSeconds(¤tAcqTime, &prevAcqTime) >
|
||||
maxAcqusitionTime) &&
|
||||
|
||||
Reference in New Issue
Block a user