142 lines
3.4 KiB
C++
142 lines
3.4 KiB
C++
#ifndef K_DESCRIPTION_H
|
|
#define K_DESCRIPTION_H
|
|
|
|
namespace KD {
|
|
|
|
enum Sections {
|
|
Startup,
|
|
Spectrometer,
|
|
Switch,
|
|
Formats,
|
|
Logs,
|
|
Detector,
|
|
CoreOutput,
|
|
};
|
|
|
|
enum LogFormat {
|
|
Text, //b text
|
|
Binary, //b binary
|
|
};
|
|
|
|
enum LogType {
|
|
Data, //b write data logs
|
|
Spec, //b write spectrogram logs
|
|
ARINC, //b ARINC
|
|
};
|
|
|
|
enum KLogConfig {
|
|
// LogFormat = Formats
|
|
StartupWrite, //b
|
|
ApplyBinaryLogHeader, //b Apply settings under ID = 255 for binary log
|
|
MaximumWriteFrequency, //f Maximum frequency for log in Hz, or 0 for unlimited
|
|
};
|
|
|
|
enum SwitchType {
|
|
BaySpec,
|
|
DiCon,
|
|
};
|
|
|
|
enum SpectrometerConnection {
|
|
TCP,
|
|
USB,
|
|
};
|
|
|
|
enum PeakSearchMode {
|
|
Left,
|
|
Max,
|
|
Right,
|
|
};
|
|
|
|
enum CoreMode {
|
|
ModeSpectrometer,
|
|
ModePlayer,
|
|
ModePeaks,
|
|
};
|
|
|
|
enum KSpectrometer {
|
|
Connection, //e ${SpectrometerConnection}
|
|
Temperature_compensation, //b Use temperature sensor or default temperature witout compensation
|
|
Temperature_default, //f Default temperature using if compensation disabled
|
|
};
|
|
|
|
enum KSwitch {
|
|
Enabled, //b 0 or 1 Use optical switch or not
|
|
Wait, //n Delay after switching channel, ms
|
|
Autoscan, //e {0 - scan with our forces, 1 - SDK autoscan}
|
|
Autoscan_offset, //n Offset for SDK autoscan
|
|
Type, //e ${SwitchType}
|
|
};
|
|
|
|
enum KDetector {
|
|
Threshold_Min, //f
|
|
Threshold_Max, //f
|
|
SideSize, //f
|
|
SideOffset, //f
|
|
PeaksSearch, //e ${PeakSearchMode}
|
|
};
|
|
|
|
enum KCoreOutput {
|
|
SendSpectrum, //b Send spectrum data or empty vector
|
|
SendOnlyCurrentValue, //b Send current values or all stored in 20Hz
|
|
};
|
|
|
|
enum CoreOutputChannel {
|
|
GUI,
|
|
SecGUI,
|
|
ThirdGUI,
|
|
};
|
|
|
|
enum KDescription {
|
|
// KSpectrometer = Spectrometer
|
|
// KSwitch = Switch
|
|
// KDetector = Detector
|
|
// KCoreOutput[CoreOutputChannel] = CoreOutput
|
|
// KLogConfig[LogType] = Logs
|
|
Gratings_history, //n Gratings peak values history, count
|
|
Amplitude_history_size, //n Count of history values to calculate sensors amplitude
|
|
Fourier_enabled, //b Global fourier enable flag
|
|
Fourier_size, //n Size of fourier window, in counts
|
|
Fourier_YScale, //f scale for fourier amplitude
|
|
Fourier_Max_or_Density, //n 0 - Maximum in fourier window, 1 - Density of fourier window
|
|
Mode, //e ${CoreMode} Work mode
|
|
SynchronizationEnabled, //b When enabled, start logs and reset time when sync signal received
|
|
SynchronizationMode, //e {0 - disabled, 1 - new file, 2 - column in log}
|
|
LambdasAutoReset, //b Set lambdas_0 to grating values on first data receive
|
|
Gauss_size, //n
|
|
//Peak_max_offset, //f in pixels
|
|
//Peak_LF_coeff, //f 1. - no filtering
|
|
GratingOverloadMax, //n
|
|
GratingOverloadMin, //n
|
|
SendLED, //b Send to LED Arduino serial port current state
|
|
SynchronizationClearValues, //b clear gratings and sensors values and history on sync
|
|
PeaksModeFrequency, //f
|
|
PeaksModeAdditionNm_1, //f Addition nm to peaks in ModePeaks, channel 1
|
|
PeaksModeAdditionNm_2, //f Addition nm to peaks in ModePeaks, channel 2
|
|
PeaksModeAdditionNm_3, //f Addition nm to peaks in ModePeaks, channel 3
|
|
PeaksModeAdditionNm_4, //f Addition nm to peaks in ModePeaks, channel 4
|
|
};
|
|
|
|
enum XDescription {
|
|
// KSpectrometer = Spectrometer
|
|
// KSwitch = Switch
|
|
// KDetector = Detector
|
|
// KCoreOutput[CoreOutputChannel] = CoreOutput
|
|
// KLogConfig[LogType] = Logs
|
|
State, //b
|
|
Frequency, //n cur freq
|
|
//Fourier_enabled, //b Global fourier enable flag
|
|
};
|
|
|
|
enum CDescription {
|
|
// KSpectrometer = Spectrometer
|
|
// KCoreOutput[CoreOutputChannel] = CoreOutput
|
|
// KLogConfig[LogType] = Logs
|
|
Halt, //b
|
|
Reboot, //n cur freq
|
|
Pause, //b Global fourier enable flag
|
|
};
|
|
|
|
}
|
|
|
|
#endif // K_DESCRIPTION_H
|