nidas v1.2.3
TwoD64_USB.h
Go to the documentation of this file.
1// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 4; -*-
2// vim: set shiftwidth=4 softtabstop=4 expandtab:
3/*
4 ********************************************************************
5 ** NIDAS: NCAR In-situ Data Acquistion Software
6 **
7 ** 2007, Copyright University Corporation for Atmospheric Research
8 **
9 ** This program is free software; you can redistribute it and/or modify
10 ** it under the terms of the GNU General Public License as published by
11 ** the Free Software Foundation; either version 2 of the License, or
12 ** (at your option) any later version.
13 **
14 ** This program is distributed in the hope that it will be useful,
15 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ** GNU General Public License for more details.
18 **
19 ** The LICENSE.txt file accompanying this software contains
20 ** a copy of the GNU General Public License. If it is not found,
21 ** write to the Free Software Foundation, Inc.,
22 ** 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23 **
24 ********************************************************************
25*/
26
27#ifndef _nidas_dynld_raf_2d64_usb_h_
28#define _nidas_dynld_raf_2d64_usb_h_
29
30#include "TwoD_USB.h"
31
32namespace nidas { namespace dynld { namespace raf {
33
34using namespace nidas::core;
35
40class TwoD64_USB : public TwoD_USB
41{
42public:
43 TwoD64_USB();
45
46 bool process(const Sample * samp, std::list < const Sample * >&results);
47
51 virtual int NumberOfDiodes() const { return 64; }
52
53protected:
54
55 virtual void init_parameters();
56
60 virtual bool processSOR(const Sample * samp, std::list < const Sample * >&results);
61
62 void scanForMissalignedSyncWords(const Sample * samp, const unsigned char * sp) const;
63
78 bool processImageRecord(const Sample * samp,
79 std::list < const Sample * >&results, int stype);
80
81 /* probe clock rate 12 MHz for v2
82 * v3 is 33.333 MHz
83 */
85
86 unsigned long long _timeWordMask;
87
88 unsigned char _dofMask;
89
91
94 static const unsigned char _syncString[];
95 static const unsigned char _overldString[];
96 static const unsigned char _blankString[];
98
99private:
104
105 // Save previous time word with ability to save across records.
106 long long _prevTimeWord;
107};
108
109}}} // namespace nidas namespace dynld namespace raf
110#endif
Interface to a data sample.
Definition Sample.h:190
Class for the USB Fast-2DC.
Definition TwoD64_USB.h:41
TwoD64_USB()
Definition TwoD64_USB.cc:59
static const unsigned char _overldString[]
Definition TwoD64_USB.h:95
virtual int NumberOfDiodes() const
Return bits-per-slice; same as the number of diodes in the probe.
Definition TwoD64_USB.h:51
void scanForMissalignedSyncWords(const Sample *samp, const unsigned char *sp) const
float _probeClockRate
Definition TwoD64_USB.h:84
bool _blankLine
Set to true if last slice was a blank line.
Definition TwoD64_USB.h:103
long long _prevTimeWord
Definition TwoD64_USB.h:106
virtual void init_parameters()
Initialize parameters for real-time and post-processing.
Definition TwoD64_USB.cc:72
~TwoD64_USB()
Definition TwoD64_USB.cc:68
static const unsigned char _blankString[]
Definition TwoD64_USB.h:96
unsigned char _dofMask
Definition TwoD64_USB.h:88
bool process(const Sample *samp, std::list< const Sample * > &results)
Apply further necessary processing to a raw sample from this DSMSensor.
Definition TwoD64_USB.cc:487
unsigned long long _timeWordMask
Definition TwoD64_USB.h:86
static const unsigned char _syncString[]
Sync and overload words/masks.
Definition TwoD64_USB.h:94
bool processImageRecord(const Sample *samp, std::list< const Sample * > &results, int stype)
Process a single 2D record generating size-distribution data.
Definition TwoD64_USB.cc:146
virtual bool processSOR(const Sample *samp, std::list< const Sample * > &results)
Process the Shadow-OR sample from the probe.
Definition TwoD64_USB.cc:100
Base class for PMS 2D particle probes on a USB interface.
Definition TwoD_USB.h:48
The essential core classes of nidas.
Definition A2DConverter.h:31
Root namespace for the NCAR In-Situ Data Acquisition Software.
Definition A2DConverter.h:31