This repository has been archived on 2020-09-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
libs/cd_utils/k_description.h
2020-08-25 22:24:02 +03:00

148 lines
3.5 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
};
enum MDescription {
Main, //b
Core, //s
Warnings, //b Global fourier enable flag
};
}
#endif // K_DESCRIPTION_H