#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