1
////////////////////////////////////////////////////////////////////////////////
2
/*! @file HamamatsuScan.h Консоль спектрометра Hamamatsu.
3
- Part of Hamamatsu - a Research Assistant Plugin package.
4
- Uses RAGUI - the Research Assistant Graphical User Interface.
5
- Uses QtGui v.5.0 - http://qt.nokia.com/
6
- Uses RANet - Research Assistant Net Library (based on ANSI C++).
7
- Copyright(C) 2014-2017, Dmitry K. Nelson, St.Petersburg, Russia.
9
*///////////////////////////////////////////////////////////////////////////////
10
#ifndef HamamatsuScan_H
11
#define HamamatsuScan_H
12
#include "Hamamatsu.h"
14
#include "DataTableFolder.h"
15
#include "DataTableRecord.h"
22
//------------------------------------------------------------------------------
24
ANNOUNCE_CLASS(sHamamatsuScan)
26
//----------------------------------------------------------- sHamamatsuScan ---
27
/*! Консоль спектрометра Hamamatsu.
29
#define PRODUCT_ID 0x2909 // for C10082CA, C10083CA, C10082CAH, C10083CAH
30
#define PIXELSNUM 2048 // for C10083CA, C10083CAH
33
class Hamamatsu_EXPORT sHamamatsuScan : public sScanner
36
CONSOLE(sHamamatsuScan)
38
virtual ~sHamamatsuScan ();
39
virtual void RestoreState ();
40
virtual void StoreState ();
42
protected: //evolution of the inherited state machine
43
psState State_W_USBDevice;
45
signals: //for internal needs
46
void HamamatsuWarmed ();
47
void HamamatsuError(QString = QString());
49
protected: //reimplementing inherited
50
virtual void AppearanceMakeUp ();
51
virtual void Retranslate ()
53
sScanner::Retranslate();
56
virtual void UpdateHistory ();
58
protected slots: //reimplementing inherited
59
virtual void InitializeScanning ();
60
virtual void EarlySetAttributes ();
61
virtual void LateSetAttributes ();
63
protected slots: //implementing pure virtual
64
virtual void CreateNewDependence ();
65
virtual void StartScanning ();
66
virtual void StopScanning ();
76
void InitializeUSBDevice ();
77
virtual void AddNewData ();
78
virtual void ReportDeviceError (QString);
81
QLabel * LblModeTitle;
83
sPhysValueField * FldIntegrationTime;
84
QLabel * LblTriggerEdgeTitle;
85
QComboBox * FldTriggerEdge;
86
QLabel * LblTriggerModeTitle;
87
QComboBox * FldTriggerMode;
88
QLabel * LblNumOfSamplesTitle;
89
QSpinBox * FldNumOfSamples;
90
QLabel * LblNumOfAcquisitionsTitle;
91
QSpinBox * FldNumOfAcquisitions;
92
QCheckBox * ChkBackground;
93
psDropNodeWidget FldBackground;
94
QCheckBox * ChkCorrection;
95
psDropNodeWidget FldCorrection;
96
QTimer * AcquisitionTimer;
97
sPtr<sDataTableRecord> SpectrumDependence;
98
sPtr<sDataTableRecord> BackgroundDependence;
99
sPtr<sDataTableRecord> CorrectionDependence;
100
sPtr<sDataTableFolder> SubSpectrum;
101
sNodePtr PreviousSubSpectrum;
102
HANDLE DeviceHandle; /* device handle */
103
HANDLE PipeHandle; /* pipe handle */
104
UNIT_PARAMETER Parameters;
105
double Calibration[6];
106
ushort Buffer[PIXELSNUM];
107
ulong Data[PIXELSNUM];
108
real Wavelengths[PIXELSNUM];
113
int CurrentSamplingNo;
122
//------------------------------------------------------------------------------
124
#endif //HamamatsuScan_H