Feature #11031
Milestone #10477: ANUB Startup
Milestone #11019: Cycle devices for anub
Extraction sample device
Description
:BEAMXn[0:7]
Similar to #11028 but each element represents a sample right before extraction.
History
#1 Updated by John Diamond about 5 years ago
- reset() -
- Clear circular buffer
- Reset extraction samples to 0
- Attach to $07
- Attach to extraction event
- sample() -
- Sample intensity device
- Push sample into the circular buffer
- exSample() -
- sample() one more time
- search backwards through circular buffer for extraction edge
- push edge sample into the sample buffer
- endOfBeam() -
- Detach from $07
- Detach from extraction event
#2 Updated by John Diamond about 5 years ago
- % Done changed from 0 to 20
Implemented CircularBuffer class and began implementing CycleDeviceEx.
#3 Updated by John Diamond about 5 years ago
- % Done changed from 20 to 80
Complete implementation of extraction cycle device support.
Merged into origin/mirrdcct_master.
Added configurations for MI and RR extraction devices to anubstartup.
Ready to test on anub.
#4 Updated by John Diamond about 5 years ago
- % Done changed from 80 to 20
Refactored CycleDeviceEx and CycleDeviceInj to use a std::vector for the sample buffer instead of a native array.
Removed the size parameter from their constructors and cli commands.
#5 Updated by John Diamond about 5 years ago
- % Done changed from 20 to 80
#6 Updated by John Diamond about 5 years ago
- % Done changed from 80 to 90
Implemented ClassACNet accessors for CycleDeviceInj and CycleDeviceEx.
#7 Updated by John Diamond about 5 years ago
Added a sanity check to CycleDeviceInj::sample() and CycleDeviceEx::exSample() to make sure we're not recording an infinite number of injection/extraction samples.
#8 Updated by John Diamond about 5 years ago
Fixed a program exception bug in the circular buffer implementation.
Verified that the CB is being filled but don't have events at the moment to test edge detection...
#9 Updated by John Diamond about 5 years ago
4: Machine: Recycler, reset: $e3, eob: $e6, inten ID: 1 Injection: event: $e4, delay: 5, n: 6, samples: [20629,21661,22651,23548,24457,25347] Extraction: event: $f3, delay: 0, CB cap/size: 50/50, n: 1, samples: [32502] 0: event: $e4 delay: 0 sample: 31265 1: event: $e4 delay: 60 sample: 30238 2: event: $fe delay: 0 sample: 0 3: event: $fe delay: 0 sample: 0 4: event: $fe delay: 0 sample: 0 5: event: $f3 delay: 0 sample: 31401
However, the MI DCCT digitizer is returning 0xffffs for intensity at the moment so CycleDeviceEx::exSample() can't find an edge:
3: Machine: Main Injector, reset: $2a, eob: $26, inten ID: 0 Injection: event: $a3, delay: 5, n: 0, samples: [] Extraction: event: $a9, delay: 0, CB cap/size: 50/50, n: 0, samples: [] 0: event: $a3 delay: 0 sample: 0 1: event: $22 delay: 0 sample: -1 2: event: $25 delay: 0 sample: -1 3: event: $fe delay: 0 sample: 0 4: event: $a9 delay: 0 sample: -1 5: event: $2f delay: 0 sample: -1
So it appears that the algorithm is working properly. Also, the extraction array device is reporting correctly:
ACL> read R:DCCTX3[0:7] R:DCCTX3 = 1637.05 0 0 0 0 0 0 0 E12
The anub startup script is configured for and the following extraction array devices have been created:
- I:DCCTX0
- I:DCCTX1
- I:DCCTX3
- I:DCCTXA
- R:DCCTX3
#10 Updated by John Diamond about 5 years ago
- Status changed from Assigned to Closed
- % Done changed from 90 to 100