diff --git a/CMakeSettings.json b/CMakeSettings.json
index e8a8018..c27b4f5 100644
--- a/CMakeSettings.json
+++ b/CMakeSettings.json
@@ -7,8 +7,21 @@
"inheritEnvironments": [
"msvc_x64_x64"
],
- "buildRoot": "${workspaceRoot}/build",
- "installRoot": "${workspaceRoot}/build",
+ "buildRoot": "${workspaceRoot}/build_d",
+ "installRoot": "${workspaceRoot}/build_d",
+ "cmakeCommandArgs": "",
+ "buildCommandArgs": "-v",
+ "ctestCommandArgs": ""
+ },
+ {
+ "name": "x64-Release",
+ "generator": "Ninja",
+ "configurationType": "Release",
+ "inheritEnvironments": [
+ "msvc_x64_x64"
+ ],
+ "buildRoot": "${workspaceRoot}/build_r",
+ "installRoot": "${workspaceRoot}/build_r",
"cmakeCommandArgs": "",
"buildCommandArgs": "-v",
"ctestCommandArgs": ""
diff --git a/CmakeLists.txt b/CmakeLists.txt
index 0f111c7..afb53c3 100644
--- a/CmakeLists.txt
+++ b/CmakeLists.txt
@@ -1,7 +1,9 @@
cmake_minimum_required(VERSION 3.3)
project(TowerOptoSifAndSpectral)
-
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
set(QT Core Network WebSockets SerialPort Widgets)
find_package(Qt5 REQUIRED ${QT})
diff --git a/build_d/CMakeFiles/3.12.18081601-MSVC_2/CMakeSystem.cmake b/build_d/CMakeFiles/3.12.18081601-MSVC_2/CMakeSystem.cmake
new file mode 100644
index 0000000..220c4b0
--- /dev/null
+++ b/build_d/CMakeFiles/3.12.18081601-MSVC_2/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Windows-10.0.19043")
+set(CMAKE_HOST_SYSTEM_NAME "Windows")
+set(CMAKE_HOST_SYSTEM_VERSION "10.0.19043")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
+
+
+
+set(CMAKE_SYSTEM "Windows-10.0.19043")
+set(CMAKE_SYSTEM_NAME "Windows")
+set(CMAKE_SYSTEM_VERSION "10.0.19043")
+set(CMAKE_SYSTEM_PROCESSOR "AMD64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.c b/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000..bfc6ebb
--- /dev/null
+++ b/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,623 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+ /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+ /* __SUNPRO_C = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+ /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+ /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+# if defined(__ibmxl__)
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+# else
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+# endif
+
+
+#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800)
+# define COMPILER_ID "XL"
+# if defined(__ibmxl__)
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+# else
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+# endif
+
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+# if defined(__ibmxl__)
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+# else
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+# endif
+
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+ /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__)
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
+# define COMPILER_ID "SDCC"
+# if defined(__SDCC_VERSION_MAJOR)
+# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
+# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
+# else
+ /* SDCC = VRP */
+# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
+# endif
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+ /* _SGI_COMPILER_VERSION = VRP */
+# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10)
+# else
+ /* _COMPILER_VERSION = VRP */
+# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if !defined(__STDC__)
+# if (defined(_MSC_VER) && !defined(__clang__)) \
+ || (defined(__ibmxl__) || defined(__IBMC__))
+# define C_DIALECT "90"
+# else
+# define C_DIALECT
+# endif
+#elif __STDC_VERSION__ >= 201000L
+# define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_DIALECT "99"
+#else
+# define C_DIALECT "90"
+#endif
+const char* info_language_dialect_default =
+ "INFO" ":" "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+ require += info_cray[argc];
+#endif
+ require += info_language_dialect_default[argc];
+ (void)argv;
+ return require;
+}
+#endif
diff --git a/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe b/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe
new file mode 100644
index 0000000..7f33b95
Binary files /dev/null and b/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe differ
diff --git a/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.obj b/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.obj
new file mode 100644
index 0000000..ae6ef7e
Binary files /dev/null and b/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.obj differ
diff --git a/build_d/CMakeFiles/CMakeOutput.log b/build_d/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000..eb3513a
--- /dev/null
+++ b/build_d/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,552 @@
+The system is: Windows - 10.0.19043 - AMD64
+The system is: Windows - 10.0.19043 - AMD64
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/CMakeTmp
+
+Run Build Command:"C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "cmTC_c4d66"
+[1/2] Building C object CMakeFiles\cmTC_c4d66.dir\testCCompiler.c.obj
+[2/2] Linking C executable cmTC_c4d66.exe
+
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/CMakeTmp
+
+Run Build Command:"C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "cmTC_2376b"
+[1/2] Building C object CMakeFiles\cmTC_2376b.dir\testCCompiler.c.obj
+[2/2] Linking C executable cmTC_2376b.exe
+
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/CMakeTmp
+
+Run Build Command:"C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "cmTC_fee43"
+[1/2] Building C object CMakeFiles\cmTC_fee43.dir\CMakeCCompilerABI.c.obj
+[2/2] Linking C executable cmTC_fee43.exe
+
+
+The system is: Windows - 10.0.19043 - AMD64
+The system is: Windows - 10.0.19043 - AMD64
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/CMakeTmp
+
+Run Build Command:"C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "cmTC_17486"
+[1/2] Building C object CMakeFiles\cmTC_17486.dir\testCCompiler.c.obj
+[2/2] Linking C executable cmTC_17486.exe
+
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+The system is: Windows - 10.0.19043 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
+版权所有(C) Microsoft Corporation。保留所有权利。
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.16.27045.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "D:/03MyGit/TowerOptoSifAndSpectral/TowerOptoSifAndSpectral/build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
diff --git a/build_d/CMakeFiles/ShowIncludes/foo.h b/build_d/CMakeFiles/ShowIncludes/foo.h
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/build_d/CMakeFiles/ShowIncludes/foo.h
@@ -0,0 +1 @@
+
diff --git a/build_d/CMakeFiles/ShowIncludes/main.c b/build_d/CMakeFiles/ShowIncludes/main.c
new file mode 100644
index 0000000..cd3cbc1
--- /dev/null
+++ b/build_d/CMakeFiles/ShowIncludes/main.c
@@ -0,0 +1,2 @@
+#include "foo.h"
+int main(){}
diff --git a/build_d/CMakeFiles/ShowIncludes/main.obj b/build_d/CMakeFiles/ShowIncludes/main.obj
new file mode 100644
index 0000000..802924d
Binary files /dev/null and b/build_d/CMakeFiles/ShowIncludes/main.obj differ
diff --git a/build_d/CMakeFiles/feature_tests.c b/build_d/CMakeFiles/feature_tests.c
new file mode 100644
index 0000000..0b8491f
--- /dev/null
+++ b/build_d/CMakeFiles/feature_tests.c
@@ -0,0 +1,20 @@
+
+ const char features[] = {"\n"
+"C_FEATURE:"
+#if _MSC_VER >= 1600
+"1"
+#else
+"0"
+#endif
+"c_function_prototypes\n"
+"C_FEATURE:"
+#if _MSC_VER >= 1600
+"1"
+#else
+"0"
+#endif
+"c_variadic_macros\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/build_d/VSInheritEnvironments.txt b/build_d/VSInheritEnvironments.txt
new file mode 100644
index 0000000..f8cc9d8
--- /dev/null
+++ b/build_d/VSInheritEnvironments.txt
@@ -0,0 +1 @@
+msvc_x64_x64
\ No newline at end of file
diff --git a/document/20211105浼氳璁板綍.md b/document/20211105浼氳璁板綍.md
new file mode 100644
index 0000000..429c884
--- /dev/null
+++ b/document/20211105浼氳璁板綍.md
@@ -0,0 +1,80 @@
+# 20211105浼氳璁板綍
+
+鍙備細浜哄憳锛氫换绔嬫柊 闊╁杽榫 寮犲崜
+
+1. **鏂囦欢鍚嶇О瀹氫箟**
+
+ 鑻辨枃鍦板悕_璧峰鏃堕棿_缁撴潫鏃堕棿 绮剧‘鍒扮 鏃堕棿 骞確鏈坃鏃鏃禵鍒哶绉
+
+2. **璺緞瀹氫箟**
+
+ ```
+ 鎬昏矾寰 /home/data
+ /Setting
+ /Data
+ /2021_10_15
+ /Beijing_2021_10_15_15_31_00_2021_10_15_15_31_50.csv
+ /2021_10_16
+ /Log
+ 鍏朵粬
+
+ ```
+
+
+
+3. **鏁版嵁鍐呭纭畾**
+
+ ```
+ 鎸夌収銆奡IF鍔犲湴鐗╁厜璋变华鏈湴鏁版嵁瀛樺偍鏍煎紡璇存槑.pdf銆嬪瓨鍌
+ ```
+
+
+
+4. **shutter鍒囨崲椤哄簭**
+
+ ```
+ U1->D1->D2->D3 U1鏄悜涓婂厜绾 D1銆丏2銆丏3鐢辩敤鎴峰畾涔
+ ```
+
+5. **鑷姩鏇濆厜涓婇檺鍙婃柟寮**
+
+ ```
+ 涓婇檺锛40绉
+ IS1鏇濆厜瀹屾垚鍚 绛夊緟ISIF鑷姩鏇濆厜
+ 涓嶉噰鐢ㄦ瘮鍊兼硶鎺ㄧ畻ISIF鏇濆厜鏃堕棿
+ ```
+
+6. **鏁版嵁閲囬泦娴佺▼**
+
+ ```
+ 鑷姩鏇濆厜->鏆楃數娴->閲囬泦鏁版嵁
+ 鎵ц杩囩▼涓 IS1闇瑕佺瓑寰匢SIF寰甯稿綋鍓嶆楠 鍦ㄦ墽琛屼笅涓鎿嶄綔
+ ```
+
+7. **寮傚父鎶ヨ**
+
+ ```
+ 浠ヤ笅鎯呭喌闇瑕佹帹閫佸紓甯
+ 1銆佷笉杩斿洖鏁版嵁
+ 2銆乀EC娓╁害寮傚父
+ 3銆佸揩闂ㄥ紓甯革紙寮鏈15鍒嗗唴妫娴 閫氳繃IS1鏉ユ娴嬶級
+ 4銆佹満绠辨俯婀垮害寮傚父鎶ヨ
+ 鎺ㄩ佹柟寮 http 锛堟湰鍦發og涓篃闇浣撶幇锛
+ ```
+
+8. **閲囬泦鏃堕棿闂撮殧**
+
+ ```
+ 閲囩敤闂撮殧娉 閲囬泦闂撮殧鏈灏30鍒嗛挓
+ ```
+
+9. **娣诲姞娓╂箍搴︿紶鎰熷櫒**
+
+ ```
+ 娣诲姞娓╂箍搴︿紶鎰熷櫒
+ ```
+
+
+
+
+
diff --git a/document/SIF鍔犲湴鐗╁厜璋变华鏈湴鏁版嵁瀛樺偍鏍煎紡璇存槑.md b/document/SIF鍔犲湴鐗╁厜璋变华鏈湴鏁版嵁瀛樺偍鏍煎紡璇存槑.md
new file mode 100644
index 0000000..faa758f
--- /dev/null
+++ b/document/SIF鍔犲湴鐗╁厜璋变华鏈湴鏁版嵁瀛樺偍鏍煎紡璇存槑.md
@@ -0,0 +1,185 @@
+# SIF鍔犲湴鐗╁厜璋变华鏈湴鏁版嵁瀛樺偍鏍煎紡璇存槑
+
+娉ㄦ剰锛氭湰鏂囦粎瀵瑰瓨鍌ㄥ唴瀹硅繘琛岃鏄 鏂囦欢鍚嶇О鍙婂瓨鍌ㄨ矾寰勭瓥鐣ュ彟琛岃璁
+
+鏈瀛樺偍鐨勬枃浠朵互CSV鏍煎紡瀛樺偍 閫楀彿鍒嗛殧鍊硷紙Comma-Separated Values锛孋SV锛屾湁鏃朵篃绉颁负瀛楃鍒嗛殧鍊硷紝鍥犱负鍒嗛殧瀛楃涔熷彲浠ヤ笉鏄楀彿锛夛紝鍏舵枃浠朵互绾枃鏈舰寮忓瓨鍌ㄨ〃鏍兼暟鎹紙鏁板瓧鍜屾枃鏈級銆傜函鏂囨湰鎰忓懗鐫璇ユ枃浠舵槸涓涓瓧绗﹀簭鍒楋紝涓嶅惈蹇呴』鍍忎簩杩涘埗鏁板瓧閭f牱琚В璇荤殑鏁版嵁銆侰SV鏂囦欢鐢变换鎰忔暟鐩殑璁板綍缁勬垚锛岃褰曢棿浠ユ煇绉嶆崲琛岀鍒嗛殧锛涙瘡鏉¤褰曠敱瀛楁缁勬垚锛屽瓧娈甸棿鐨勫垎闅旂鏄叾瀹冨瓧绗︽垨瀛楃涓诧紝鏈甯歌鐨勬槸閫楀彿鎴栧埗琛ㄧ銆傞氬父锛屾墍鏈夎褰曢兘鏈夊畬鍏ㄧ浉鍚岀殑瀛楁搴忓垪銆傞氬父閮芥槸绾枃鏈枃浠躲
+
+鏁版嵁鍒嗕负鏁版嵁鍖哄煙涓庢暟鎹弿杩板尯
+
+# 涓 鏁版嵁鎻忚堪鍖
+
+鍗冲厓鏁版嵁 鍏冩暟鎹紙Metadata锛夛紝鍙堢О涓粙鏁版嵁銆佷腑缁ф暟鎹紝涓烘弿杩版暟鎹殑鏁版嵁锛坉ata about data锛夛紝涓昏鏄弿杩版暟鎹睘鎬с傛湰璁惧鍏冩暟鎹富瑕佸寘鍚互涓嬪叚閮ㄥ垎鍐呭
+
+**绾㈣壊涓洪厤缃枃浠剁粰鍑 钃濊壊瀛樼枒**
+
+## 1.1銆佺幆澧冧俊鎭
+
+鍖呮嫭鑷劧鐜涓庝汉宸ョ幆澧
+
+### 鑷劧鐜淇℃伅
+
+**鏃堕棿淇℃伅**锛氫富瑕佽褰曟暟鎹紑濮嬮噰闆嗘椂闂达紝鏃堕棿淇℃伅缁熶竴閲囩敤UTC鏃堕棿 鏍兼灄濞佹不鏃堕棿銆備笘鐣岀粺涓鏃堕棿銆佷笘鐣屾爣鍑嗘椂闂淬佸浗闄呭崗璋冩椂闂淬佷笘鐣屽崗璋冩椂闂达紝UTC鍗忚皟涓栫晫鏃跺嵆鏍兼灄濞佹不骞冲お闃虫椂闂达紝鏄寚鏍兼灄濞佹不鎵鍦ㄥ湴鐨勬爣鍑嗘椂闂达紝涔熸槸琛ㄧず鍦扮悆鑷浆閫熺巼鐨勪竴绉嶅舰寮忥紝UTC鍩轰簬鍥介檯鍘熷瓙鏃堕棿锛岄氳繃涓嶈鍒欑殑鍔犲叆闂扮鏉ユ姷娑堝湴鐞冭嚜杞彉鎱㈢殑褰卞搷锛屾槸涓栫晫涓婅皟鑺傛椂閽熷拰鏃堕棿鐨勪富瑕佹椂闂存爣鍑嗐傚叾涓勾鏈堟棩涓棿浠ヤ笅鍒掔嚎鈥淿鈥(鑻辨枃杈撳叆娉 ASCII 95)鍒嗗壊銆傚叾涓勾鐢4浣嶆暟琛ㄧず锛屾湀鍜屾棩鍧囦袱浣嶏紝濡備笅鎵绀
+
+鈥 XXXX_XX_XX
+
+鏃堕棿閲囧彇24灏忔椂鍒讹紝鏃堕棿涓棿浠ュ啋鍙封滐細鈥濆垎鍓诧紝鍧囦互涓や綅濉厖锛屼笉瓒充袱浣嶈ˉ闆舵牸寮忓涓
+
+鈥 XX:XX:XX
+
+骞翠笌鏃堕棿涓棿浠ョ┖鏍煎垎寮鏈缁堟牸寮忓涓嬫墍绀
+
+鈥 XXXX_XX_XX XX:XX:XX
+
+**鍦扮偣锛**璁惧鎵澶勭殑琛屾斂鑼冨洿 鍏蜂綋鍒颁埂銆備竴涓澶囧簲璇ュ搴斿敮涓鍦扮偣锛屼竴涓湴鐐瑰彲浠ュ搴斿涓澶
+
+鍚嶇О涓笉搴斿嚭鐜颁腑鏂囥佲*鈥濄佲滐紝鈥溿佲/鈥溿佲#鈥滅瓑鐗规畩绗﹀彿锛屾瘡涓绾ч瀛楁瘝搴旇澶у啓 鍏朵粬瀛楁瘝閲囩敤灏忓啓銆傜骇涓庣骇涔嬮棿搴旇浠ヤ笅鍒掔嚎涓哄垎鍓 濡備笅 XXXX鐪乆XXXXX甯俋XXXX鍘縓XXXX涔″鏋滄湁缂虹骇锛屽垯鐩存帴鐪佺暐
+
+**娓╁害**锛氳澶囬噰闆嗘椂鐨勬満绠辨俯搴︼紝閲囩敤鎽勬皬搴︺傚皬鏁扮偣淇濆瓨涓や綅
+
+**婀垮害锛**璁惧閲囬泦鏃剁殑鏈虹婀垮害銆 涓や綅鏈夋晥鏁板瓧
+
+**GPS_longtitude**锛氭暟鎹墍鍦ㄤ綅缃殑GPS鍧愭爣鐨勭粡搴﹀硷紝GPS閲囩敤WGS84鍧愭爣 灏忔暟鐐逛釜鏁板悗8浣嶃
+
+**GPS_Latitude:** 鏁版嵁鎵鍦ㄤ綅缃殑GPS鍧愭爣鐨勭含搴﹀硷紝GPS閲囩敤WGS84鍧愭爣锛屾暟鎹繚鐣欏皬鏁扮偣鍚8浣
+
+**GPS_鍗婄悆**锛氳澶囨墍鍦ㄥ湴鐞冨崐鐞冧綅缃 鍏朵腑N琛ㄧず鍖楀崐鐞 S琛ㄧず鍗楀崐鐞
+
+**GPS_楂樼▼**锛氳澶囩殑娴锋嫈楂樺害 灞炰簬鐩稿鎼炴垚
+
+**楂樼▼鍧愭爣绯荤粺锛**楂樼▼鐨勭郴缁熴
+
+**闄嶉洦锛**璁惧閲囬泦鏁版嵁鏃舵槸鍚︽湁涓嬮洦鍙戠敓
+
+**椋庨**锛氳澶囬噰闆嗘椂鐨勯閫
+
+*娉ㄦ剰锛氫笂杩伴『搴忎笉浠h〃鏁版嵁瀛樺偍鏁版嵁锛屾暟鎹互閿 鍊艰繘琛屽瓨鍌紝鍦ㄨ鍙栨椂搴旇繘琛岄敭鍊煎垽鏂*
+
+### 浜哄伐鐜
+
+**鏁版嵁瀛樺偍鍚嶇О**锛氳澶囬噰闆嗘椂瀛樺偍鏂囦欢鐨勫悕绉 闃叉鐢ㄦ埛鍚庢湡淇敼鏂囦欢鍚嶆椂鏃犳硶鎵惧埌瀵瑰簲鐨勬枃浠跺悕绉
+
+**璁惧瀹夎鏃堕棿锛**璁惧瀹夎鏃ユ湡 鏍煎紡涓庢椂闂翠俊鎭竴鑷
+
+**ISIF瀹氭爣鏃堕棿锛**璁惧1瀹氭爣鏃堕棿 鏍煎紡涓庢椂闂翠俊鎭竴鑷
+
+**璁惧2瀹氭爣鏃堕棿锛**璁惧2瀹氭爣鏃堕棿 鏍煎紡涓庢椂闂翠俊鎭竴鑷
+
+**璁惧缁存姢浜哄憳濮撳悕**锛氳澶囩淮鎶や汉鍛樺悕绉
+
+**璁剧淮鎶や汉鍛樼數璇**锛氳澶囩淮鎶や汉鍛樼數璇
+
+**杩滅▼璧勬簮鐢ㄦ埛id**锛氬叕鍙镐細灏嗚澶囧繀瑕佺殑鏂囦欢瀛樺偍鑷充簯涓婏紝灞婃椂鐢ㄦ埛鍙互閫氳繃缃戠粶瀵规暟鎹繘琛屼笅杞
+
+**瀹氭爣鏂囦欢涓嬭浇璺緞**锛氫簯鏈嶅姟鐨勮矾寰
+
+
+
+*娉ㄦ剰锛氫笂杩伴『搴忎笉浠h〃鏁版嵁瀛樺偍鏁版嵁锛屾暟鎹互閿 鍊艰繘琛屽瓨鍌紝鍦ㄨ鍙栨椂搴旇繘琛岄敭鍊煎垽鏂*
+
+## 1.2銆両SIF璁惧淇℃伅
+
+**璁惧搴忓垪鍙凤細**ISIF鍑哄巶搴忓垪鍙 鐢辫澶囧巶鍟嗗嚭鍏
+
+**浜у搧搴忓垪鍙凤細**鐢盜RIS纭畾鐨勫簭鍒楀彿锛屾牸寮忎负鍨嬪彿-搴忓垪鍙 濡侷SIF-101
+
+**鍚戜笂鍏夌氦U1鏇濆厜鏃堕棿锛坰hutter1锛**鍗曚綅姣 鏁村瀷
+
+**鍚戜笅鍏夌氦D1鏇濆厜鏃堕棿锛坰hutter2锛夛細**鍗曚綅姣 鏁村瀷
+
+**鍚戜笅鍏夌氦D2鏇濆厜鏃堕棿锛坰hutter3锛夛細**鍗曚綅姣 鏁村瀷
+
+**鍚戜笅鍏夌氦D3鏇濆厜鏃堕棿锛坰hutter4锛夛細**鍗曚綅姣 鏁村瀷
+
+**娉㈡鏁伴噺锛**璁惧娉㈡涓暟
+
+**鍚戜笂瀹氭爣鏂囦欢鍚**锛氬悜涓婂厜绾SIF璁惧鐨勫畾鏍囨枃浠跺悕绉
+
+**鍚戜笅瀹氭爣鏂囦欢鍚1**锛氬悜涓嬪厜绾1 鍔營SIF璁惧瀹氭爣鏂囦欢鍚嶇О
+
+**鍚戜笅瀹氭爣鏂囦欢鍚2锛**鍚戜笅鍏夌氦2 鍔營SIF璁惧瀹氭爣鏂囦欢鍚嶇О
+
+**鍚戜笅瀹氭爣鏂囦欢鍚3锛**鍚戜笅鍏夌氦3 鍔營SIF璁惧瀹氭爣鏂囦欢鍚嶇О
+
+**鍚戜笂娴嬮噺鏃禩EC娓╁害锛**鍗曚綅鎽勬皬搴 淇濈暀涓浣嶅皬鏁
+
+**鍚戜笅娴嬮噺1鏃禩EC娓╁害锛**鍗曚綅鎽勬皬搴 淇濈暀涓浣嶅皬鏁
+
+**鍚戜笅娴嬮噺2鏃禩EC娓╁害锛**鍗曚綅鎽勬皬搴 淇濈暀涓浣嶅皬鏁
+
+**鍚戜笅娴嬮噺3鏃禩EC娓╁害锛**鍗曚綅鎽勬皬搴 淇濈暀涓浣嶅皬鏁
+
+**....** : ....
+
+## 1.3銆両SIF娉㈤暱鏁版嵁
+
+**ISIF璁惧鐨勬尝闀挎枃浠讹細**娉㈤暱鏁版嵁锛岄噰鐢ㄤ袱浣嶆湁鏁堟暟瀛
+
+## 1.4銆両S1璁惧淇℃伅
+
+**IS1璁惧搴忓垪鍙凤細**鍏夎氨璁惧鍑哄巶搴忓垪鍙 鐢辫澶囧巶鍟嗗嚭鍏
+
+**IS1浜у搧搴忓垪鍙凤細**鐢盜RIS纭畾鐨勫簭鍒楀彿锛屾牸寮忎负鍨嬪彿-搴忓垪鍙
+
+**鍚戜笂鍏夌氦U1鏇濆厜鏃堕棿锛坰hutter1锛夛細**鍗曚綅姣 鏁村瀷
+
+**鍚戜笅鍏夌氦D1鏇濆厜鏃堕棿锛坰hutter2锛夛細**鍗曚綅姣 鏁村瀷
+
+**鍚戜笅鍏夌氦D2鏇濆厜鏃堕棿锛坰hutter3锛夛細**鍗曚綅姣 鏁村瀷
+
+**鍚戜笅鍏夌氦D3鏇濆厜鏃堕棿锛坰hutter4锛夛細**鍗曚綅姣 鏁村瀷
+
+**娉㈡鏁伴噺锛**璁惧娉㈡涓暟
+
+**鍚戜笂瀹氭爣鏂囦欢鍚**锛氬悜涓婂厜绾SIF璁惧鐨勫畾鏍囨枃浠跺悕绉
+
+**鍚戜笅瀹氭爣鏂囦欢鍚1**锛氬悜涓嬪厜绾1 鍔營SIF璁惧瀹氭爣鏂囦欢鍚嶇О
+
+**鍚戜笅瀹氭爣鏂囦欢鍚2锛**鍚戜笅鍏夌氦2 鍔營SIF璁惧瀹氭爣鏂囦欢鍚嶇О
+
+**鍚戜笅瀹氭爣鏂囦欢鍚3锛**鍚戜笅鍏夌氦3 鍔營SIF璁惧瀹氭爣鏂囦欢鍚嶇О
+
+**鍚戜笂娴嬮噺鏃禩EC娓╁害锛**鍗曚綅鎽勬皬搴 淇濈暀涓浣嶅皬鏁
+
+**鍚戜笅娴嬮噺1鏃禩EC娓╁害锛**鍗曚綅鎽勬皬搴 淇濈暀涓浣嶅皬鏁
+
+**鍚戜笅娴嬮噺2鏃禩EC娓╁害锛**鍗曚綅鎽勬皬搴 淇濈暀涓浣嶅皬鏁
+
+**鍚戜笅娴嬮噺3鏃禩EC娓╁害锛**鍗曚綅鎽勬皬搴 淇濈暀涓浣嶅皬鏁
+
+**....** : ....
+
+## 1.5銆両S1娉㈤暱鏁版嵁
+
+**鍏夎氨璁惧鐨勬尝闀挎枃浠** 锛氭尝闀挎暟鎹紝閲囩敤涓や綅鏈夋晥鏁板瓧
+
+# 浜 鏁版嵁鍖
+
+瑙勫垯锛
+
+1. 鏁版嵁鍚嶇О瀹氫箟濡備笅 ISIF_UP1銆両SIF_D1銆両SIF_D2銆両SIF_D3銆両S1_UP1銆両S1_D1銆両S1_D2銆両S1_D3
+2. 鏁版嵁瀛樺偍鎸夎鏉 涓琛屾暟鎹瓨鍌
+3. 鍗曡鏁版嵁涓涓鍒椾负鏁版嵁鍚嶇О 鍚嶇О鎸夌涓鏉¤鍒欏畾涔
+4. 绗簩鍒楁暟鎹负鏁版嵁鐘舵佽〃绀 valid鏈夋晥 invalid琛ㄧず鏃犳晥
+5. 鍗曡鏁版嵁涓粠绗笁鍒楀紑濮嬩负鏁版嵁 鏁版嵁閲囩敤鏁村舰瀛樺偍
+
+
+
+## 涓 鏁版嵁灞曠ず
+
+```csv
+environmental factor,Date,XXXX_XX_XX XX:XX:XX,Location,Beijing_Haidian
+ISIFInfo,ISIF_SN,10085,Shutter1,100
+wavelenth,300.00,301.00,.........
+IS1Info,IS1_SN,10085,Shutter1,100
+wavelenth,300.00,301.00,.........
+Data_header
+ISIF_U1,valid锛宒ata,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+ISIF_D1,valid锛宒ata,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+ISIF_D2,valid锛宒ata,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+ISIF_D3,valid锛宒ata,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+IS1_UP1,valid锛宒ata,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+IS1_D1,valid锛宒ata,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+IS1_D2,valid锛宒ata,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+IS1_D3,valid锛宒ata,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+```
+
diff --git a/document/sample.csv b/document/sample.csv
new file mode 100644
index 0000000..d9d1e1a
--- /dev/null
+++ b/document/sample.csv
@@ -0,0 +1,13 @@
+锘跨幆澧冧俊鎭,鏃堕棿,骞存湀鏃ユ椂鍒嗙,鍦扮偣,鍚嶇О,,,,,,,,,,,,,,,
+璁惧1淇℃伅,id,10085,鏇濆厜鏃堕棿,100ms,,,,,,,,,,,,,,,
+璁惧娉㈤暱,,,,,,,,,,,,,,,,,,,
+璁惧2淇℃伅,id,10085,鏇濆厜鏃堕棿,100ms,,,,,,,,,,,,,,,
+璁惧娉㈤暱,,,,,,,,,,,,,,,,,,,
+鏁版嵁鍚嶇О1,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+鏁版嵁鍚嶇О2,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+鏁版嵁鍚嶇О3,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+鏁版嵁鍚嶇О4,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+鏁版嵁鍚嶇О5,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+鏁版嵁鍚嶇О6,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+鏁版嵁鍚嶇О7,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
+鏁版嵁鍚嶇О8,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data