From 903ede43a88671fb4f9161f57f6cf31988d23907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=BB=E7=AB=8B=E6=96=B0?= Date: Fri, 5 Nov 2021 17:02:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BC=9A=E8=AE=AE=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeSettings.json | 17 +- CmakeLists.txt | 4 +- .../3.12.18081601-MSVC_2/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 623 ++++++++++++++++++ .../CompilerIdC/CMakeCCompilerId.exe | Bin 0 -> 94720 bytes .../CompilerIdC/CMakeCCompilerId.obj | Bin 0 -> 1809 bytes build_d/CMakeFiles/CMakeOutput.log | 552 ++++++++++++++++ build_d/CMakeFiles/ShowIncludes/foo.h | 1 + build_d/CMakeFiles/ShowIncludes/main.c | 2 + build_d/CMakeFiles/ShowIncludes/main.obj | Bin 0 -> 644 bytes build_d/CMakeFiles/feature_tests.c | 20 + build_d/VSInheritEnvironments.txt | 1 + document/20211105会议记录.md | 80 +++ ...光谱仪本地数据存储格式说明.md | 185 ++++++ document/sample.csv | 13 + 15 files changed, 1510 insertions(+), 3 deletions(-) create mode 100644 build_d/CMakeFiles/3.12.18081601-MSVC_2/CMakeSystem.cmake create mode 100644 build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.c create mode 100644 build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.exe create mode 100644 build_d/CMakeFiles/3.12.18081601-MSVC_2/CompilerIdC/CMakeCCompilerId.obj create mode 100644 build_d/CMakeFiles/CMakeOutput.log create mode 100644 build_d/CMakeFiles/ShowIncludes/foo.h create mode 100644 build_d/CMakeFiles/ShowIncludes/main.c create mode 100644 build_d/CMakeFiles/ShowIncludes/main.obj create mode 100644 build_d/CMakeFiles/feature_tests.c create mode 100644 build_d/VSInheritEnvironments.txt create mode 100644 document/20211105会议记录.md create mode 100644 document/SIF加地物光谱仪本地数据存储格式说明.md create mode 100644 document/sample.csv 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 0000000000000000000000000000000000000000..7f33b9582cac73538215a72dc5fa5fa186964aba GIT binary patch literal 94720 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

Mvh?{O}878`Q$hYg{G` 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ae6ef7e5388fc6ecf863db4aa226331e273bfe7c GIT binary patch literal 1809 zcmbVNO>7%g5T2Lav>`ODL-{EMiB(vM^w8}(PTj1dth*U_ag;WUyH*N(^^uhrN@mnM+p-TO`^jfJL5F7xh>IJnk`_{=iQV;D&Z{GK2 zzMXly`}SMw!vVPc?|HK=1H1;pG|ROs-Z?v1!XX5C)?EejU<5SFF1MG}TsLzY!TL6y z0g-9VGCi|P!g&qHQXjx|9AwxU3^0Du++O0F7=I9Oh)0GzL-XuaPpvmZ1mJT7F$v%X z4zhk63LHD7t@hR%z_>)sLS}$&Xw6>UF3dlRyq5wlmGya*(`Q@p@y)9ZM2EN4gF)=A zD2Gxrvr{KB`OMsOVgy|>n;+>7E@V>kQ`wo^h(Zs^HI;nO6P31#hpe$_boc91t3mf?1(;o zIEd)jBE6AUBO4iYAie(AzTadO>p{AbQk8UPi13~tWY*cGN>@8SZ^-J?XFhtOY8`B~ z{_DOgui_5qpvw?PPbFkHhJKHa&Y-8`EyH>Abkt;ELkxyS5Teni)U_88NSFr@h^oHq z$6nuAec_G$KkmQ(&f+U~zMJ9tXBT!~>nwh{v<5ei|J`QaNc{(X|KCe}{AG6I?zLYg zzy6aA-}-*)9$xI5K_^1v)+H{phYzWXQMFAEpYcTo?~6!Sgh*2)Ml#fEVFBvHl*CAa zdMzwI^dU=(pZ?&x?-kNHp1zY4PZ2y-SN9Yh4@2(IV=hd5CkPHl3+vPcprF?ySX?w_3g z4=1#`$v0)QA3qVi)69HKk2BLf3B0|e-$6s0DYl%+zs4EjLE78nOca|tl$rKBd6rmFU-^azz(bqLtNr44u%ts(z0mNAhjDkRl!Nn@Zz}UCa zJ+mYxB)>eh$iJW@KR7eZF)t;!0O6C$-?;mKLZ0ZgF{+sVu_xC!30Kz28al9Oo9TEnGqD1r~o+@nSfHvj2LmvfE= 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. **数据内容确定** + + ``` + 按照《SIF加地物光谱仪本地数据存储格式说明.pdf》存储 + ``` + + + +4. **shutter切换顺序** + + ``` + U1->D1->D2->D3 U1是向上光纤 D1、D2、D3由用户定义 + ``` + +5. **自动曝光上限及方式** + + ``` + 上限:40秒 + IS1曝光完成后 等待ISIF自动曝光 + 不采用比值法推算ISIF曝光时间 + ``` + +6. **数据采集流程** + + ``` + 自动曝光->暗电流->采集数据 + 执行过程中 IS1需要等待ISIF往常当前步骤 在执行下一操作 + ``` + +7. **异常报警** + + ``` + 以下情况需要推送异常 + 1、不返回数据 + 2、TEC温度异常 + 3、快门异常(开机15分内检测 通过IS1来检测) + 4、机箱温湿度异常报警 + 推送方式 http (本地log中也需体现) + ``` + +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,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。 + +数据分为数据区域与数据描述区 + +# 一 数据描述区 + +即元数据 元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性。本设备元数据主要包含以下六部分内容 + +**红色为配置文件给出 蓝色存疑** + +## 1.1、环境信息 + +包括自然环境与人工环境 + +### 自然环境信息 + +**时间信息**:主要记录数据开始采集时间,时间信息统一采用UTC时间 格林威治时间。世界统一时间、世界标准时间、国际协调时间、世界协调时间,UTC协调世界时即格林威治平太阳时间,是指格林威治所在地的标准时间,也是表示地球自转速率的一种形式,UTC基于国际原子时间,通过不规则的加入闰秒来抵消地球自转变慢的影响,是世界上调节时钟和时间的主要时间标准。其中年月日中间以下划线“_”(英文输入法 ASCII 95)分割。其中年用4位数表示,月和日均两位,如下所示 + +​ XXXX_XX_XX + +时间采取24小时制,时间中间以冒号“:”分割,均以两位填充,不足两位补零格式如下 + +​ XX:XX:XX + +年与时间中间以空格分开最终格式如下所示 + +​ XXXX_XX_XX XX:XX:XX + +**地点:**设备所处的行政范围 具体到乡。一个设备应该对应唯一地点,一个地点可以对应多个设备 + +名称中不应出现中文、“*”、“,“、”/“、”#“等特殊符号,每一级首字母应该大写 其他字母采用小写。级与级之间应该以下划线为分割 如下 XXXX省XXXXXX市XXXXX县XXXXX乡如果有缺级,则直接省略 + +**温度**:设备采集时的机箱温度,采用摄氏度。小数点保存两位 + +**湿度:**设备采集时的机箱湿度。 两位有效数字 + +**GPS_longtitude**:数据所在位置的GPS坐标的经度值,GPS采用WGS84坐标 小数点个数后8位。 + +**GPS_Latitude:** 数据所在位置的GPS坐标的纬度值,GPS采用WGS84坐标,数据保留小数点后8位 + +**GPS_半球**:设备所在地球半球位置 其中N表示北半球 S表示南半球 + +**GPS_高程**:设备的海拔高度 属于相对搞成 + +**高程坐标系统:**高程的系统。 + +**降雨:**设备采集数据时是否有下雨发生 + +**风速**:设备采集时的风速 + +*注意:上述顺序不代表数据存储数据,数据以键 值进行存储,在读取时应进行键值判断。* + +### 人工环境 + +**数据存储名称**:设备采集时存储文件的名称 防止用户后期修改文件名时无法找到对应的文件名称 + +**设备安装时间:**设备安装日期 格式与时间信息一致 + +**ISIF定标时间:**设备1定标时间 格式与时间信息一致 + +**设备2定标时间:**设备2定标时间 格式与时间信息一致 + +**设备维护人员姓名**:设备维护人员名称 + +**设维护人员电话**:设备维护人员电话 + +**远程资源用户id**:公司会将设备必要的文件存储至云上,届时用户可以通过网络对数据进行下载 + +**定标文件下载路径**:云服务的路径 + + + +*注意:上述顺序不代表数据存储数据,数据以键 值进行存储,在读取时应进行键值判断。* + +## 1.2、ISIF设备信息 + +**设备序列号:**ISIF出厂序列号 由设备厂商出具 + +**产品序列号:**由IRIS确定的序列号,格式为型号-序列号 如ISIF-101 + +**向上光纤U1曝光时间(shutter1)**单位毫秒 整型 + +**向下光纤D1曝光时间(shutter2):**单位毫秒 整型 + +**向下光纤D2曝光时间(shutter3):**单位毫秒 整型 + +**向下光纤D3曝光时间(shutter4):**单位毫秒 整型 + +**波段数量:**设备波段个数 + +**向上定标文件名**:向上光纤ISIF设备的定标文件名称 + +**向下定标文件名1**:向下光纤1 加ISIF设备定标文件名称 + +**向下定标文件名2:**向下光纤2 加ISIF设备定标文件名称 + +**向下定标文件名3:**向下光纤3 加ISIF设备定标文件名称 + +**向上测量时TEC温度:**单位摄氏度 保留一位小数 + +**向下测量1时TEC温度:**单位摄氏度 保留一位小数 + +**向下测量2时TEC温度:**单位摄氏度 保留一位小数 + +**向下测量3时TEC温度:**单位摄氏度 保留一位小数 + +**....** : .... + +## 1.3、ISIF波长数据 + +**ISIF设备的波长文件:**波长数据,采用两位有效数字 + +## 1.4、IS1设备信息 + +**IS1设备序列号:**光谱设备出厂序列号 由设备厂商出具 + +**IS1产品序列号:**由IRIS确定的序列号,格式为型号-序列号 + +**向上光纤U1曝光时间(shutter1):**单位毫秒 整型 + +**向下光纤D1曝光时间(shutter2):**单位毫秒 整型 + +**向下光纤D2曝光时间(shutter3):**单位毫秒 整型 + +**向下光纤D3曝光时间(shutter4):**单位毫秒 整型 + +**波段数量:**设备波段个数 + +**向上定标文件名**:向上光纤ISIF设备的定标文件名称 + +**向下定标文件名1**:向下光纤1 加ISIF设备定标文件名称 + +**向下定标文件名2:**向下光纤2 加ISIF设备定标文件名称 + +**向下定标文件名3:**向下光纤3 加ISIF设备定标文件名称 + +**向上测量时TEC温度:**单位摄氏度 保留一位小数 + +**向下测量1时TEC温度:**单位摄氏度 保留一位小数 + +**向下测量2时TEC温度:**单位摄氏度 保留一位小数 + +**向下测量3时TEC温度:**单位摄氏度 保留一位小数 + +**....** : .... + +## 1.5、IS1波长数据 + +**光谱设备的波长文件** :波长数据,采用两位有效数字 + +# 二 数据区 + +规则: + +1. 数据名称定义如下 ISIF_UP1、ISIF_D1、ISIF_D2、ISIF_D3、IS1_UP1、IS1_D1、IS1_D2、IS1_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,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data +ISIF_D1,valid,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data +ISIF_D2,valid,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data +ISIF_D3,valid,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data +IS1_UP1,valid,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data +IS1_D1,valid,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data +IS1_D2,valid,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data +IS1_D3,valid,data,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