27#ifndef _nidas_dynld_raf_2d_processing_h_
28#define _nidas_dynld_raf_2d_processing_h_
33namespace nidas {
namespace dynld {
namespace raf {
241 void saveBuffer(
const unsigned char * cp,
const unsigned char * eod);
253 void setupBuffer(
const unsigned char ** cp,
const unsigned char ** eod);
281template <
typename T,
typename V>
287 for (
unsigned int i = 0; i <
nbins; ++
i)
289 if (sizedist[i] == 0)
Definition TwoD_Processing.h:76
void zero()
Definition TwoD_Processing.h:79
Particle()
Definition TwoD_Processing.h:78
unsigned int width
Max particle length, along flight path.
Definition TwoD_Processing.h:84
unsigned int height
Max particle height, along diode array.
Definition TwoD_Processing.h:82
bool dofReject
Depth Of Field Reject? Last bit of sync word.
Definition TwoD_Processing.h:102
unsigned char edgeTouch
Was an edge diode triggered.
Definition TwoD_Processing.h:94
unsigned int area
Actual number of shadowed diodes.
Definition TwoD_Processing.h:89
unsigned int liveTime
Amount of time consumed by the particle as it passed through the array.
Definition TwoD_Processing.h:99
Base class for SPEC 2DS optical array probe on a USB interface.
Definition TwoD_Processing.h:43
unsigned int _overSizeCount_2D
Definition TwoD_Processing.h:195
TwoD_Processing()
Definition TwoD_Processing.cc:45
unsigned int _rejected2D_Cntr
Definition TwoD_Processing.h:193
virtual void countParticle(const Particle &p, float resolutionUsec)
Look at particle stats/info and decide whether to accept or reject.
Definition TwoD_Processing.cc:261
virtual void processParticleSlice(Particle &p, const unsigned char *slice)
Process a slice and update the Particle struct area, edgeTouch, width and height.
Definition TwoD_Processing.cc:159
unsigned int _recordsPerSecond
Definition TwoD_Processing.h:198
unsigned int _misAligned
Definition TwoD_Processing.h:196
virtual int NumberOfDiodes() const =0
Number of diodes in the probe array.
TwoD_Processing(const TwoD_Processing &)
No copying.
float getResolution() const
The probe resolution in meters.
Definition TwoD_Processing.h:63
virtual ~TwoD_Processing()
Definition TwoD_Processing.cc:62
float _twoDAreaRejectRatio
Area of particle rejection ratio.
Definition TwoD_Processing.h:217
void setupBuffer(const unsigned char **cp, const unsigned char **eod)
Derived Classes should call this at the beginning of processing an image block.
Definition TwoD_Processing.cc:316
Particle _particle
Current particle information.
Definition TwoD_Processing.h:223
virtual void clearData()
Clear size_dist arrays.
Definition TwoD_Processing.cc:306
unsigned int getResolutionMicron() const
The probe resolution in micrometers.
Definition TwoD_Processing.h:71
void saveBuffer(const unsigned char *cp, const unsigned char *eod)
In case of mis-aligned data, we may need to save some bytes at the end of an image block to pre-pend ...
Definition TwoD_Processing.cc:335
virtual bool acceptThisParticle2D(const Particle &p) const
Definition TwoD_Processing.cc:242
virtual bool acceptThisParticle1D(const Particle &p) const
Accept/reject criteria are in these functions.
Definition TwoD_Processing.cc:227
unsigned int _numImages
Number of image blocks processed by driver at time of last printStatus.
Definition TwoD_Processing.h:151
unsigned int _rejected1D_Cntr
Definition TwoD_Processing.h:193
unsigned char * _saveBuffer
The saved buffer.
Definition TwoD_Processing.h:258
int _nextraValues
If XML file has a variable RPS (records per second) defined, then _nextravalues will be 2,...
Definition TwoD_Processing.h:231
float _dead_time
Amount of time probe was inactive or amount of time consumed by rejected particles.
Definition TwoD_Processing.h:184
unsigned int _totalRecords
Statistics variables for processRecord().
Definition TwoD_Processing.h:191
unsigned int _totalParticles
Definition TwoD_Processing.h:192
unsigned int * _size_dist_1D
Arrays for size-distribution histograms.
Definition TwoD_Processing.h:176
dsm_sample_id_t _2dcID
Definition TwoD_Processing.h:170
unsigned int _suspectSlices
Definition TwoD_Processing.h:197
virtual void createSamples(dsm_time_t nextTimeTag, std::list< const Sample * > &results)
Send derived data and reset.
Definition TwoD_Processing.cc:81
float _resolutionMeters
Probe resolution in meters.
Definition TwoD_Processing.h:162
long long _histoEndTime
The end time of the current histogram.
Definition TwoD_Processing.h:210
unsigned int _totalPixelsShadowed
total # of pixels shadoweded in the time period. per second...
Definition TwoD_Processing.h:202
long long _lastStatusTime
Time of last printStatus.
Definition TwoD_Processing.h:156
unsigned int * _size_dist_2D
Definition TwoD_Processing.h:177
int _savedAlloc
Size of the saved buffer.
Definition TwoD_Processing.h:268
int _savedBytes
How many bytes were last saved.
Definition TwoD_Processing.h:263
dsm_sample_id_t _1dcID
Definition TwoD_Processing.h:170
TwoD_Processing & operator=(const TwoD_Processing &)
No copying.
unsigned int _resolutionMicron
Probe resolution in micrometers.
Definition TwoD_Processing.h:167
unsigned int _overLoadSliceCount
Definition TwoD_Processing.h:194
dsm_time_t _prevTime
Time from previous record.
Definition TwoD_Processing.h:207
The essential core classes of nidas.
Definition A2DConverter.h:31
Sample * getSample(sampleType type, unsigned int len)
A convienence method for getting a sample of an enumerated type from a pool.
Definition Sample.cc:70
long long dsm_time_t
Posix time in microseconds, the number of non-leap microseconds since 1970 Jan 1 00:00 UTC.
Definition Sample.h:62
unsigned int dsm_sample_id_t
Definition Sample.h:64
void stream_histogram(T &out, V *sizedist, unsigned int nbins)
Definition TwoD_Processing.h:284
Root namespace for the NCAR In-Situ Data Acquisition Software.
Definition A2DConverter.h:31