From 3de7eb3da7bbabaae151e98c2b6c8169bd1384ff Mon Sep 17 00:00:00 2001 From: zhangzhuo Date: Mon, 6 Dec 2021 17:50:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E4=B8=80=E6=AD=A5=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E9=87=87=E9=9B=86=E6=B5=81=E7=A8=8B=EF=BC=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=B8=A7=E7=9A=84=E7=94=9F=E6=88=90=E4=BB=A5=E5=8F=8A=E4=BC=A0?= =?UTF-8?q?=E8=BE=93=E5=AE=8C=E6=88=90=E5=BA=A60.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Data/2021_12_02/beijing_18_09_27.txt | 1 - Data/2021_12_02/beijing_18_11_07.txt | 1 - Data/2021_12_02/beijing_18_11_20.txt | 1 - Data/2021_12_02/beijing_18_13_36.txt | 1 - Data/2021_12_02/beijing_18_14_30.txt | 1 - Data/2021_12_02/beijing_18_15_41.txt | 1 - Data/2021_12_03/beijing_09_50_36.txt | 1 - Data/2021_12_03/beijing_09_51_49.txt | 1 - Data/2021_12_03/beijing_09_52_15.txt | 1 - Data/2021_12_03/beijing_10_09_45.txt | 1 - Data/2021_12_03/beijing_10_15_37.txt | 1 - Data/2021_12_03/beijing_10_22_22.txt | 1 - Data/2021_12_03/beijing_10_22_54.txt | 1 - Data/2021_12_03/beijing_10_25_26.txt | 1 - Data/2021_12_03/beijing_10_26_51.txt | 1 - Data/2021_12_03/beijing_10_27_30.txt | 1 - Data/2021_12_03/beijing_10_28_30.txt | 1 - Data/2021_12_03/beijing_10_29_07.txt | 1 - Data/2021_12_03/beijing_10_29_49.txt | 1 - Data/2021_12_03/beijing_10_31_39.txt | 1 - Data/2021_12_03/beijing_10_32_27.txt | 1 - Data/2021_12_03/beijing_10_37_08.txt | 1 - Data/2021_12_03/beijing_10_41_27.txt | 1 - Data/2021_12_03/beijing_10_43_54.txt | 1 - Data/2021_12_03/beijing_11_01_57.txt | 1 - Data/2021_12_03/beijing_11_02_53.txt | 1 - Data/2021_12_03/beijing_11_03_49.txt | 1 - Data/2021_12_03/beijing_11_05_13.txt | 1 - Data/2021_12_03/beijing_11_18_04.txt | 1 - Data/2021_12_03/beijing_11_19_02.txt | 1 - Data/2021_12_03/beijing_11_19_11.txt | 1 - Data/2021_12_03/beijing_11_19_28.txt | 1 - Data/2021_12_03/beijing_11_26_01.txt | 1 - Data/2021_12_03/beijing_11_27_02.txt | 1 - Data/2021_12_03/beijing_11_27_45.txt | 1 - Data/2021_12_03/beijing_11_30_48.txt | 1 - .../beijing_17_17_15.txt} | 2 +- config/DeviceSettings.ini | 5 +- main.cpp | 3 +- source/FS/IrisFiberSpectrometerBase.h | 2 + source/FS/OControl_USB.cpp | 216 ++++++++++++++---- source/FS/OControl_USB.h | Bin 2400 -> 2516 bytes source/FS/ZZ_Types.h | 3 + source/Settings/SystemConfigger.cpp | 9 + source/Thread/AbstractFSController.cpp | 205 ++++++++++++++++- source/Thread/AbstractFSController.h | 16 +- source/Thread/MainDataGrabber.cpp | 119 +++++++--- source/Thread/MainDataGrabber.h | 5 +- 48 files changed, 486 insertions(+), 135 deletions(-) delete mode 100644 Data/2021_12_02/beijing_18_09_27.txt delete mode 100644 Data/2021_12_02/beijing_18_11_07.txt delete mode 100644 Data/2021_12_02/beijing_18_11_20.txt delete mode 100644 Data/2021_12_02/beijing_18_13_36.txt delete mode 100644 Data/2021_12_02/beijing_18_14_30.txt delete mode 100644 Data/2021_12_02/beijing_18_15_41.txt delete mode 100644 Data/2021_12_03/beijing_09_50_36.txt delete mode 100644 Data/2021_12_03/beijing_09_51_49.txt delete mode 100644 Data/2021_12_03/beijing_09_52_15.txt delete mode 100644 Data/2021_12_03/beijing_10_09_45.txt delete mode 100644 Data/2021_12_03/beijing_10_15_37.txt delete mode 100644 Data/2021_12_03/beijing_10_22_22.txt delete mode 100644 Data/2021_12_03/beijing_10_22_54.txt delete mode 100644 Data/2021_12_03/beijing_10_25_26.txt delete mode 100644 Data/2021_12_03/beijing_10_26_51.txt delete mode 100644 Data/2021_12_03/beijing_10_27_30.txt delete mode 100644 Data/2021_12_03/beijing_10_28_30.txt delete mode 100644 Data/2021_12_03/beijing_10_29_07.txt delete mode 100644 Data/2021_12_03/beijing_10_29_49.txt delete mode 100644 Data/2021_12_03/beijing_10_31_39.txt delete mode 100644 Data/2021_12_03/beijing_10_32_27.txt delete mode 100644 Data/2021_12_03/beijing_10_37_08.txt delete mode 100644 Data/2021_12_03/beijing_10_41_27.txt delete mode 100644 Data/2021_12_03/beijing_10_43_54.txt delete mode 100644 Data/2021_12_03/beijing_11_01_57.txt delete mode 100644 Data/2021_12_03/beijing_11_02_53.txt delete mode 100644 Data/2021_12_03/beijing_11_03_49.txt delete mode 100644 Data/2021_12_03/beijing_11_05_13.txt delete mode 100644 Data/2021_12_03/beijing_11_18_04.txt delete mode 100644 Data/2021_12_03/beijing_11_19_02.txt delete mode 100644 Data/2021_12_03/beijing_11_19_11.txt delete mode 100644 Data/2021_12_03/beijing_11_19_28.txt delete mode 100644 Data/2021_12_03/beijing_11_26_01.txt delete mode 100644 Data/2021_12_03/beijing_11_27_02.txt delete mode 100644 Data/2021_12_03/beijing_11_27_45.txt delete mode 100644 Data/2021_12_03/beijing_11_30_48.txt rename Data/{2021_12_02/beijing_18_08_00.txt => 2021_12_06/beijing_17_17_15.txt} (75%) diff --git a/Data/2021_12_02/beijing_18_09_27.txt b/Data/2021_12_02/beijing_18_09_27.txt deleted file mode 100644 index dcaa036..0000000 --- a/Data/2021_12_02/beijing_18_09_27.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_02 10:09:27,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_02/beijing_18_11_07.txt b/Data/2021_12_02/beijing_18_11_07.txt deleted file mode 100644 index 6a77f9b..0000000 --- a/Data/2021_12_02/beijing_18_11_07.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_02 10:11:07,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_02/beijing_18_11_20.txt b/Data/2021_12_02/beijing_18_11_20.txt deleted file mode 100644 index 18b5d52..0000000 --- a/Data/2021_12_02/beijing_18_11_20.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_02 10:11:20,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_02/beijing_18_13_36.txt b/Data/2021_12_02/beijing_18_13_36.txt deleted file mode 100644 index 668f753..0000000 --- a/Data/2021_12_02/beijing_18_13_36.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_02 10:13:36,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_02/beijing_18_14_30.txt b/Data/2021_12_02/beijing_18_14_30.txt deleted file mode 100644 index 67710d5..0000000 --- a/Data/2021_12_02/beijing_18_14_30.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_02 10:14:30,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_02/beijing_18_15_41.txt b/Data/2021_12_02/beijing_18_15_41.txt deleted file mode 100644 index 831d51c..0000000 --- a/Data/2021_12_02/beijing_18_15_41.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_02 10:15:41,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_09_50_36.txt b/Data/2021_12_03/beijing_09_50_36.txt deleted file mode 100644 index 4674c83..0000000 --- a/Data/2021_12_03/beijing_09_50_36.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 01:50:36,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_09_51_49.txt b/Data/2021_12_03/beijing_09_51_49.txt deleted file mode 100644 index 533294b..0000000 --- a/Data/2021_12_03/beijing_09_51_49.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 01:51:49,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_09_52_15.txt b/Data/2021_12_03/beijing_09_52_15.txt deleted file mode 100644 index 67deddd..0000000 --- a/Data/2021_12_03/beijing_09_52_15.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 01:52:15,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_09_45.txt b/Data/2021_12_03/beijing_10_09_45.txt deleted file mode 100644 index b047383..0000000 --- a/Data/2021_12_03/beijing_10_09_45.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:09:45,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_15_37.txt b/Data/2021_12_03/beijing_10_15_37.txt deleted file mode 100644 index 4df0c1b..0000000 --- a/Data/2021_12_03/beijing_10_15_37.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:15:37,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_22_22.txt b/Data/2021_12_03/beijing_10_22_22.txt deleted file mode 100644 index ad41dc9..0000000 --- a/Data/2021_12_03/beijing_10_22_22.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:22:22,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_22_54.txt b/Data/2021_12_03/beijing_10_22_54.txt deleted file mode 100644 index 2ccc97a..0000000 --- a/Data/2021_12_03/beijing_10_22_54.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:22:54,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_25_26.txt b/Data/2021_12_03/beijing_10_25_26.txt deleted file mode 100644 index 56013a6..0000000 --- a/Data/2021_12_03/beijing_10_25_26.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:25:26,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_26_51.txt b/Data/2021_12_03/beijing_10_26_51.txt deleted file mode 100644 index ca4fd5b..0000000 --- a/Data/2021_12_03/beijing_10_26_51.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:26:51,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_27_30.txt b/Data/2021_12_03/beijing_10_27_30.txt deleted file mode 100644 index ea75a8c..0000000 --- a/Data/2021_12_03/beijing_10_27_30.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:27:30,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_28_30.txt b/Data/2021_12_03/beijing_10_28_30.txt deleted file mode 100644 index ee07135..0000000 --- a/Data/2021_12_03/beijing_10_28_30.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:28:30,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_29_07.txt b/Data/2021_12_03/beijing_10_29_07.txt deleted file mode 100644 index 1f5a685..0000000 --- a/Data/2021_12_03/beijing_10_29_07.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:29:07,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_29_49.txt b/Data/2021_12_03/beijing_10_29_49.txt deleted file mode 100644 index 2c5809e..0000000 --- a/Data/2021_12_03/beijing_10_29_49.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:29:49,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_31_39.txt b/Data/2021_12_03/beijing_10_31_39.txt deleted file mode 100644 index 3b87ad4..0000000 --- a/Data/2021_12_03/beijing_10_31_39.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:31:39,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_32_27.txt b/Data/2021_12_03/beijing_10_32_27.txt deleted file mode 100644 index 50e1a15..0000000 --- a/Data/2021_12_03/beijing_10_32_27.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:32:27,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_37_08.txt b/Data/2021_12_03/beijing_10_37_08.txt deleted file mode 100644 index ac9cfeb..0000000 --- a/Data/2021_12_03/beijing_10_37_08.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:37:08,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_41_27.txt b/Data/2021_12_03/beijing_10_41_27.txt deleted file mode 100644 index d41049b..0000000 --- a/Data/2021_12_03/beijing_10_41_27.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:41:27,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_10_43_54.txt b/Data/2021_12_03/beijing_10_43_54.txt deleted file mode 100644 index 9f94357..0000000 --- a/Data/2021_12_03/beijing_10_43_54.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 02:43:54,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_01_57.txt b/Data/2021_12_03/beijing_11_01_57.txt deleted file mode 100644 index 99eb2d1..0000000 --- a/Data/2021_12_03/beijing_11_01_57.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:01:57,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_02_53.txt b/Data/2021_12_03/beijing_11_02_53.txt deleted file mode 100644 index f99ed40..0000000 --- a/Data/2021_12_03/beijing_11_02_53.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:02:53,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_03_49.txt b/Data/2021_12_03/beijing_11_03_49.txt deleted file mode 100644 index 5dcd00b..0000000 --- a/Data/2021_12_03/beijing_11_03_49.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:03:49,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_05_13.txt b/Data/2021_12_03/beijing_11_05_13.txt deleted file mode 100644 index 41cba17..0000000 --- a/Data/2021_12_03/beijing_11_05_13.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:05:13,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_18_04.txt b/Data/2021_12_03/beijing_11_18_04.txt deleted file mode 100644 index 30f8dcc..0000000 --- a/Data/2021_12_03/beijing_11_18_04.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:18:04,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_19_02.txt b/Data/2021_12_03/beijing_11_19_02.txt deleted file mode 100644 index 0e6cc60..0000000 --- a/Data/2021_12_03/beijing_11_19_02.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:19:02,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_19_11.txt b/Data/2021_12_03/beijing_11_19_11.txt deleted file mode 100644 index 5f290fe..0000000 --- a/Data/2021_12_03/beijing_11_19_11.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:19:11,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_19_28.txt b/Data/2021_12_03/beijing_11_19_28.txt deleted file mode 100644 index b3d4e1e..0000000 --- a/Data/2021_12_03/beijing_11_19_28.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:19:28,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_26_01.txt b/Data/2021_12_03/beijing_11_26_01.txt deleted file mode 100644 index b914fd9..0000000 --- a/Data/2021_12_03/beijing_11_26_01.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:26:01,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_27_02.txt b/Data/2021_12_03/beijing_11_27_02.txt deleted file mode 100644 index dc34412..0000000 --- a/Data/2021_12_03/beijing_11_27_02.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:27:02,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_27_45.txt b/Data/2021_12_03/beijing_11_27_45.txt deleted file mode 100644 index 07263ea..0000000 --- a/Data/2021_12_03/beijing_11_27_45.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:27:45,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_03/beijing_11_30_48.txt b/Data/2021_12_03/beijing_11_30_48.txt deleted file mode 100644 index 7d5c20d..0000000 --- a/Data/2021_12_03/beijing_11_30_48.txt +++ /dev/null @@ -1 +0,0 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_03 03:30:48,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/Data/2021_12_02/beijing_18_08_00.txt b/Data/2021_12_06/beijing_17_17_15.txt similarity index 75% rename from Data/2021_12_02/beijing_18_08_00.txt rename to Data/2021_12_06/beijing_17_17_15.txt index a3c7a16..9a338ca 100644 --- a/Data/2021_12_02/beijing_18_08_00.txt +++ b/Data/2021_12_06/beijing_17_17_15.txt @@ -1 +1 @@ -EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_02 10:08:00,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file +EnvironmentalContext,CaseHumidity,,CaseTemperature,,GPS_Altitude,50,GPS_Latitude,118,GPS_Longtitude,117,GPS_North,on,Location,beijing,UTCDateTime,2021_12_06 09:17:15,DownlaodAddress,http://www.iris-rs.cn,DownloadUserID,newuser,HTTPServer,,InstallationTime,2021-11-18,NameOfMaintenanceStaff,renlixin,PhoneNumberOfMaintenanceStaff,110110110, \ No newline at end of file diff --git a/config/DeviceSettings.ini b/config/DeviceSettings.ini index fbf6b16..38cabf9 100644 --- a/config/DeviceSettings.ini +++ b/config/DeviceSettings.ini @@ -7,7 +7,10 @@ UID=QEP02975 [FS1] Model=OSIFBeta Port=-1 -UID=FLMS15814 +UID=FLMS15815 +AEMax=0.85 +AEMin=0.75 +Depth=65535 [FS2] Model=Null [LINEAR SHUTTER] diff --git a/main.cpp b/main.cpp index 1147c34..3650e69 100644 --- a/main.cpp +++ b/main.cpp @@ -30,12 +30,13 @@ int main(int argc, char *argv[]) testdp.SetEnvironmentContex(testEC); testdp.SetManmadeEnviromentalContext(testMEC); - testdp.WriteDataFile(); + //testdp.WriteDataFile(); //////////////////////////////////////////////////////////////////////////test using namespace ZZ_MISCDEF::ZZ_RUNPARAMS; CMainDataGrabber testDG; QThread* m_pqDataGrabberThreadHolder = new QThread(); testDG.moveToThread(m_pqDataGrabberThreadHolder); + testDG.SetGrabberFileProcessor(testdp); testDG.SetGrabberParams(testp); testDG.InitThreadStatus(); testDG.InitializeWorkers(); diff --git a/source/FS/IrisFiberSpectrometerBase.h b/source/FS/IrisFiberSpectrometerBase.h index ebf17d7..2657294 100644 --- a/source/FS/IrisFiberSpectrometerBase.h +++ b/source/FS/IrisFiberSpectrometerBase.h @@ -9,6 +9,8 @@ class CIrisFSBase public: //CIrisFSBase(); //virtual ~CIrisFSBase()= 0; +private: + //int m_iMaxDepth = 65535; public: //初始化设备 //此处string为指明连接哪个ocean光谱仪的参数,可自行更换为其他c/c++标准类型 diff --git a/source/FS/OControl_USB.cpp b/source/FS/OControl_USB.cpp index 471b609..b6edf6b 100644 --- a/source/FS/OControl_USB.cpp +++ b/source/FS/OControl_USB.cpp @@ -6,6 +6,7 @@ OceanOptics_lib::OceanOptics_lib() { m_iSpectralmeterHandle = -100; } + OceanOptics_lib::~OceanOptics_lib() { @@ -22,49 +23,68 @@ int OceanOptics_lib::Initialize(bool bIsUSBMode, ZZ_U8 ucPortNumber, std::string for (i = 0; i < SEABREEZE_MAX_DEVICES; i++) { - //printf("\nOpening spectrometer %d.\n", i); + // printf("\nOpening spectrometer %d.\n", i); flag = seabreeze_open_spectrometer(i, &error); - //printf("Open spectrometer result is (%d) [%s]\n", flag, get_error_string(error)); + // printf("Open spectrometer result is (%d) [%s]\n", flag, get_error_string(error)); if (0 == flag) { device_count++; } + else + { + continue; + } string sn = GetSerialNumber(i); if (strcmp(sn.c_str(), strDeviceName.c_str()) == 0) { m_iSpectralmeterHandle = i; - //printf("\nfind!!!!!!!!!!!!\n"); + // printf("\nfind!!!!!!!!!!!!\n"); break; } else { - //printf("\nClosing spectrometer %d.\n", i); + // printf("\nClosing spectrometer %d.\n", i); flag = seabreeze_close_spectrometer(i, &error); - //printf("Close spectrometer result is (%d) [%s]\n", flag, get_error_string(error)); + // printf("Close spectrometer result is (%d) [%s]\n", flag, get_error_string(error)); } } if (m_iSpectralmeterHandle == -100) { - //printf("\nNo!!!!!!!!!!!!\n"); + // printf("\nNo!!!!!!!!!!!!\n"); return 1; } + seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); - //设置初始积分时间 + long test = seabreeze_get_buffer_capacity_minimum(m_iSpectralmeterHandle, &error); + seabreeze_set_buffer_capacity(m_iSpectralmeterHandle, &error, test); + //seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); + //seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); + // printf("seabreeze_set_trigger_mode: Result is [%s]\n", get_error_string(error)); + + + + //设置初始积分时间 long minimum_time; - minimum_time = seabreeze_get_min_integration_time_microsec(m_iSpectralmeterHandle, &error); //printf("...Minimum is %ld microseconds, result is [%s]\n", minimum_time, get_error_string(error)); + bool ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + // printf("\n-------------------没成功!!!!!!!!!!!!!!!!!!\n"); + return 1; + } + if (minimum_time < 0) { /* If there was an error, reset to a time that is supported widely. */ minimum_time = 15000; return 1; } - //SetExposureTime(minimum_time); + SetExposureTime(minimum_time / 1000); return 0; } @@ -80,7 +100,7 @@ int OceanOptics_lib::Initialize() for (i = 0; i < SEABREEZE_MAX_DEVICES; i++) { - //printf("\nOpening spectrometer %d.\n", i); + printf("\nOpening spectrometer %d.\n", i); flag = seabreeze_open_spectrometer(i, &error); //printf("Open spectrometer result is (%d) [%s]\n", flag, get_error_string(error)); if (0 == flag) @@ -88,25 +108,42 @@ int OceanOptics_lib::Initialize() m_iSpectralmeterHandle = i; break; } + else + { + continue; + } } if (m_iSpectralmeterHandle == -100) { - //printf("\nNo!!!!!!!!!!!!\n"); + printf("\nNo!!!!!!!!!!!!\n"); return 1; } - //设置初始积分时间 + seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); + seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); + seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); + // printf("seabreeze_set_trigger_mode: Result is [%s]\n", get_error_string(error)); + + //设置初始积分时间 long minimum_time; minimum_time = seabreeze_get_min_integration_time_microsec(m_iSpectralmeterHandle, &error); //printf("...Minimum is %ld microseconds, result is [%s]\n", minimum_time, get_error_string(error)); + bool ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + // printf("\n-------------------没成功!!!!!!!!!!!!!!!!!!\n"); + return 1; + } + if (minimum_time < 0) { /* If there was an error, reset to a time that is supported widely. */ minimum_time = 15000; + return 1; } - SetExposureTime(minimum_time); + SetExposureTime(minimum_time / 1000); return 0; } @@ -197,7 +234,7 @@ void OceanOptics_lib::Close() int error; flag = seabreeze_close_spectrometer(m_iSpectralmeterHandle, &error); - //printf("Close spectrometer result is (%d) [%s]\n", flag, get_error_string(error)); + // printf("Close spectrometer result is (%d) [%s]\n", flag, get_error_string(error)); } //单次数据采集 @@ -205,7 +242,7 @@ int OceanOptics_lib::SingleShot(DataFrame &dfData) { if (m_iSpectralmeterHandle == -100) { - //printf("\nNo!!!!!!!!!!!!\n"); + printf("\nNo!!!!!!!!!!!!\n"); return 1; } @@ -213,19 +250,38 @@ int OceanOptics_lib::SingleShot(DataFrame &dfData) int flag; int spec_length; double *spectrum = 0; + bool ret; - //printf("\n\nGetting formatted spectrum length.\n"); + // printf("\n\nGetting formatted spectrum length.\n"); spec_length = seabreeze_get_formatted_spectrum_length(m_iSpectralmeterHandle, &error); //printf("Get formatted spectrum_length result is (%d) [%s]\n", spec_length, get_error_string(error)); + ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return 1; + } if (spec_length > 0) { spectrum = (double *)calloc((size_t)spec_length, sizeof(double)); - //printf("\nGetting a formatted spectrum.\n"); + + + seabreeze_clear_buffer(m_iSpectralmeterHandle, &error); + + + + + printf("\nGetting a formatted spectrum.\n"); flag = seabreeze_get_formatted_spectrum(m_iSpectralmeterHandle, &error, spectrum, spec_length); - //printf("Get formatted spectrum result is (%d) [%s]\n", flag, get_error_string(error)); - //printf("\tPixel value 20 is %1.2f\n", spectrum[20]); + printf("\nGetting a formatted spectrum------------------------------.\n"); + // printf("Get formatted spectrum result is (%d) [%s]\n", flag, get_error_string(error)); + // printf("\tPixel value 20 is %1.2f\n", spectrum[20]); + ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return 1; + } for (int tmp = 0; tmp < spec_length; tmp++) { @@ -249,20 +305,40 @@ int OceanOptics_lib::SingleShot(DataFrame &dfData) //设置曝光时间 int OceanOptics_lib::SetExposureTime(int iExposureTimeInMS) { - iExposureTimeInMS = iExposureTimeInMS * 1000; if (m_iSpectralmeterHandle == -100) { - //printf("\nNo!!!!!!!!!!!!\n"); + printf("\nNo!!!!!!!!!!!!\n"); return 1; } int error; - seabreeze_set_integration_time_microsec(m_iSpectralmeterHandle, &error, iExposureTimeInMS); - //printf("Set integration time result is [%s]\n", get_error_string(error)); + seabreeze_set_integration_time_microsec(m_iSpectralmeterHandle, &error, iExposureTimeInMS * 1000); + printf("Set integration time result is [%s]\n", get_error_string(error)); + bool ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return 1; + } m_iExposureTime = iExposureTimeInMS; + + + // //---------------------------------------------------------------------------------------------------------------- + // int error; + // long *spectrometer_ids; + // int number_of_spectrometers; + // + // number_of_spectrometers = sbapi_get_number_of_spectrometer_features(m_iSpectralmeterHandle, &error); + // printf("\t\t\tResult is %d [%s]\n", number_of_spectrometers, sbapi_get_error_string(error)); + // spectrometer_ids = (long *)calloc(number_of_spectrometers, sizeof(long)); + // number_of_spectrometers = sbapi_get_spectrometer_features(m_iSpectralmeterHandle, &error, spectrometer_ids, number_of_spectrometers); + // printf("\t\t\tResult is %d [%s]\n", number_of_spectrometers, sbapi_get_error_string(error)); + // + // sbapi_spectrometer_set_integration_time_micros(m_iSpectralmeterHandle, spectrometer_ids[0], &error, iExposureTimeInMS*1000); + // printf("\t\t\t\tResult is [%s]\n", sbapi_get_error_string(error)); + return 0; } @@ -271,7 +347,7 @@ int OceanOptics_lib::GetExposureTime(int &iExposureTimeInMS) { if (m_iSpectralmeterHandle == -100) { - //printf("\nNo!!!!!!!!!!!!\n"); + printf("\nNo!!!!!!!!!!!!\n"); return 1; } @@ -283,21 +359,34 @@ int OceanOptics_lib::GetExposureTime(int &iExposureTimeInMS) //设置目标温度 int OceanOptics_lib::SetDeviceTemperature(float fTemperature) { + bool ret; + if (m_iSpectralmeterHandle == -100) { - //printf("\nNo!!!!!!!!!!!!\n"); + printf("\nNo!!!!!!!!!!!!\n"); return 1; } int error; - //printf("\nSetting TEC temperature to -5C\n"); + // printf("\nSetting TEC temperature to -5C\n"); seabreeze_set_tec_temperature(m_iSpectralmeterHandle, &error, fTemperature); - //printf("Set tec temperature result is [%s]\n", get_error_string(error)); + // printf("Set tec temperature result is [%s]\n", get_error_string(error)); + ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return 1; + } - //printf("\nSetting TEC enable to true\n"); + + // printf("\nSetting TEC enable to true\n"); seabreeze_set_tec_enable(m_iSpectralmeterHandle, &error, 1); - //printf("Set tec enable result is [%s]\n", get_error_string(error)); + // printf("Set tec enable result is [%s]\n", get_error_string(error)); + ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return 1; + } return 0; } @@ -307,7 +396,7 @@ int OceanOptics_lib::GetDeviceTemperature(float &fTemperature) { if (m_iSpectralmeterHandle == -100) { - //printf("\nNo!!!!!!!!!!!!\n"); + printf("\nNo!!!!!!!!!!!!\n"); return 1; } @@ -315,9 +404,14 @@ int OceanOptics_lib::GetDeviceTemperature(float &fTemperature) int error; // usleep(1000000); - //printf("\nGetting TEC temperature\n"); + // printf("\nGetting TEC temperature\n"); temp = seabreeze_read_tec_temperature(m_iSpectralmeterHandle, &error); - //printf("Read tec temperature result is %1.2f C [%s]\n", temp, get_error_string(error)); + // printf("Read tec temperature result is %1.2f C [%s]\n", temp, get_error_string(error)); + bool ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return 1; + } fTemperature = temp; @@ -329,7 +423,7 @@ int OceanOptics_lib::GetDeviceInfo(DeviceInfo &Info) { if (m_iSpectralmeterHandle == -100) { - //printf("\nNo!!!!!!!!!!!!\n"); + printf("\nNo!!!!!!!!!!!!\n"); return 1; } @@ -347,7 +441,7 @@ int OceanOptics_lib::GetDeviceAttribute(DeviceAttribute &Attr) { if (m_iSpectralmeterHandle == -100) { - //printf("\nNo!!!!!!!!!!!!\n"); + printf("\nNo!!!!!!!!!!!!\n"); return 1; } @@ -356,21 +450,34 @@ int OceanOptics_lib::GetDeviceAttribute(DeviceAttribute &Attr) int spec_length; double *wls = 0; - //printf("\n\nGetting formatted spectrum length.\n"); + // printf("\n\nGetting formatted spectrum length.\n"); spec_length = seabreeze_get_formatted_spectrum_length(m_iSpectralmeterHandle, &error); - //printf("Get formatted spectrum length result is (%d) [%s]\n", spec_length, get_error_string(error)); + // printf("Get formatted spectrum length result is (%d) [%s]\n", spec_length, get_error_string(error)); + bool ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return 1; + } Attr.iPixels = spec_length; - Attr.iMinIntegrationTimeInMS = 0; + + long minimum_time; + minimum_time = seabreeze_get_min_integration_time_microsec(m_iSpectralmeterHandle, &error); + Attr.iMinIntegrationTimeInMS = minimum_time; Attr.iMaxIntegrationTimeInMS = 60000; if (spec_length > 0) { wls = (double *)calloc((size_t)spec_length, sizeof(double)); - //printf("\nGetting wavelengths.\n"); + // printf("\nGetting wavelengths.\n"); flag = seabreeze_get_wavelengths(m_iSpectralmeterHandle, &error, wls, spec_length); - //printf("Get wavelengths result is (%d) [%s]\n", flag, get_error_string(error)); - //printf("\tPixel 20 is wavelength %1.2f nm\n", wls[20]); + // printf("Get wavelengths result is (%d) [%s]\n", flag, get_error_string(error)); + // printf("\tPixel 20 is wavelength %1.2f nm\n", wls[20]); + bool ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return 1; + } for (int tmp = 0; tmp < spec_length; tmp++) { @@ -387,15 +494,16 @@ bool OceanOptics_lib::isSuccess(char* resultStr) { if (strstr(resultStr, "Success") == NULL)//在a中查找b,如果不存在, { - cout << "not found\n";//输出结果。 - return true; + //cout << "not found\n";//输出结果。 + return false; } else//否则存在。 { - cout << "found\n"; //输出结果。 - return false; + //cout <<"found\n"; //输出结果。 + return true; } } + const char* OceanOptics_lib::get_error_string(int error) { static char buffer[32]; @@ -409,7 +517,13 @@ string OceanOptics_lib::GetDeviceType(int index) int error; seabreeze_get_model(index, &error, type, sizeof(type)); - //printf("...Result is (%s) [%s]\n", type, get_error_string(error)); + // printf("...Result is (%s) [%s]\n", type, get_error_string(error)); + bool ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return ""; + } + type[15] = '\0'; string deviceType = type; @@ -423,12 +537,18 @@ string OceanOptics_lib::GetSerialNumber(int index) int flag; int error; - //printf("\n\nGetting serial number.\n"); + // printf("\n\nGetting serial number.\n"); flag = seabreeze_get_serial_number(index, &error, serial_number, 32); - //printf("Get serial number result is (%d) [%s]\n", flag, get_error_string(error)); + // printf("Get serial number result is (%d) [%s]\n", flag, get_error_string(error)); + bool ret = isSuccess((char*)get_error_string(error)); + if (!ret) + { + return ""; + } + serial_number[31] = '\0'; if (flag > 0) { - //printf("\tSerial number: [%s]\n", serial_number); + printf("\tSerial number: [%s]\n", serial_number); } string sn = serial_number; diff --git a/source/FS/OControl_USB.h b/source/FS/OControl_USB.h index de4384ef57393532da52344da8e7138fcedd47ea..7f334954cab3006776b90c9d14b0faea81640e6e 100644 GIT binary patch delta 150 zcmaDLbVYcB8slaq#%+vg8VtOCe;e{DW<^W=502;c6G)mL^er`*A(bJK!HJ;=NT)JX z0r8dodtohQl2hMzKlWp+NCnCiG2{a=ub-8l0fPd=Bt-=vJ1Lbd1|j#QY-ut`pC-fR n8%%91lM`6km`fOvCr5K+ZjNK;V4Qr4ql=@K!J2`Wfr|kEmYyzw delta 55 zcmca2{6J`f8slay#!ZZq-!ZFfPGe4D*=)tZ!8rL2d)(wEPO-^Z>^zg>IP-XT8Mqi~ J8LSyVGywY>4%`3$ diff --git a/source/FS/ZZ_Types.h b/source/FS/ZZ_Types.h index 7ad1c54..f630548 100644 --- a/source/FS/ZZ_Types.h +++ b/source/FS/ZZ_Types.h @@ -173,6 +173,9 @@ namespace ZZ_MISCDEF ZZ_U8 ucDeviceModel[MAX_DEVICENUMBER_FS]; int iInterface[MAX_DEVICENUMBER_FS]; std::string strSN[MAX_DEVICENUMBER_FS]; + long lDepth[MAX_DEVICENUMBER_FS]; + float fMinFactor[MAX_DEVICENUMBER_FS]; + float fMaxFactor[MAX_DEVICENUMBER_FS]; }FSContext; typedef struct tagLinearShutterContext diff --git a/source/Settings/SystemConfigger.cpp b/source/Settings/SystemConfigger.cpp index d5cf283..5829a88 100644 --- a/source/Settings/SystemConfigger.cpp +++ b/source/Settings/SystemConfigger.cpp @@ -48,6 +48,15 @@ qstrTemp = m_qsDeviceConfig->value(QString("FS%1/UID").arg(i + 1), "Null").toString(); m_struDeviceContext.strSN[i] = qstrTemp.toStdString(); + + float fAEMax= m_qsDeviceConfig->value(QString("FS%1/AEMax").arg(i + 1), 0.9).toFloat(); + m_struDeviceContext.fMaxFactor[i] = fAEMax; + + float fAEMin = m_qsDeviceConfig->value(QString("FS%1/AEMin").arg(i + 1), 0.8).toFloat(); + m_struDeviceContext.fMinFactor[i] = fAEMin; + + long lDepth = m_qsDeviceConfig->value(QString("FS%1/Depth").arg(i + 1), 63219).toInt(); + m_struDeviceContext.lDepth[i] = lDepth; } m_struAcqPosition.iTotalPosition = m_qsDeviceConfig->value(QString("LINEAR SHUTTER/TotalPosition"), -1).toInt(); diff --git a/source/Thread/AbstractFSController.cpp b/source/Thread/AbstractFSController.cpp index 9bfffb9..6c6b676 100644 --- a/source/Thread/AbstractFSController.cpp +++ b/source/Thread/AbstractFSController.cpp @@ -1,8 +1,11 @@ #include "AbstractFSController.h" +#include "ZZ_Math_HDRONLY.h" CAbstractFSController::CAbstractFSController(QObject* parent /*= nullptr*/) { m_pFSCtrl = NULL; m_iThreadID = -1; + m_vecDataFrameDark.clear(); + m_vecDataFrameSignal.clear(); } CAbstractFSController::~CAbstractFSController() @@ -42,11 +45,11 @@ int CAbstractFSController::InitializeFSControl() break; case DeviceModel::OSIFBeta: m_pFSCtrl = new OceanOptics_lib; -// if (m_pFSCtrl->Initialize(false, m_fsInfo.iInterface, m_fsInfo.strSN) !=0) -// { -// qDebug() << "OSIFBeta Not Opened"; -// return 2; -// } + if (m_pFSCtrl->Initialize(false, m_fsInfo.iInterface, m_fsInfo.strSN) !=0) + { + qDebug() << "OSIFBeta Not Opened"; + return 2; + } break; case DeviceModel::ISIF: m_pFSCtrl = new ZZ_ATPControl_Serial_Qt; @@ -78,36 +81,202 @@ int CAbstractFSController::InitializeFSControl() default: break; } + + int iRes = m_pFSCtrl->GetDeviceAttribute(m_daDeviceAttr); + if (iRes !=0 ) + { + qDebug() << "GetDeviceAttribute Failed"<< iRes; + return 4; + } + + return 0; } int CAbstractFSController::PerformAutoExposure() { - qDebug() << "Starting PerformAutoExposure" << " Thread ID:" << m_iThreadID; - QThread::msleep(5000); - qDebug() << "Stop PerformAutoExposure" << " Thread ID:" << m_iThreadID; + qDebug() << "--------------------------Starting PerformAutoExposure" << " Thread ID:" << m_iThreadID; + using namespace ZZ_MATH; + float fPredictedExposureTime; + int iDeviceDepth = (int)m_fsInfo.lDepth; + + bool bFlagIsOverTrying = false; + bool bFlagIsLowerMinExposureTime = false; + bool bFlagIsOverMaxExposureTime = false; + bool bFlagIsAutoExposureOK = false; + bool bFlagIsAutoExposureFailed = false; + + bool bIsValueOverflow = false; + bool bIsLastValueOverflow = false; + + int iExposureTime = 0; + float fTempExposureTime = 0; + double fLastExposureTime = 0.1; + int iRepeatCount = 0; + + //int iRes = m_pFSCtrl->SetExposureTime(1000);//need change to load from files + int iRes = 0; + if (iRes != 0) + { + qDebug() << "Err:PerformAutoExposure Failed.Exit Code:1"; + return 1; + } + + while (!bFlagIsAutoExposureOK && !bFlagIsAutoExposureFailed) + { + DataFrame dfTemp; + + if (iRepeatCount++ > 30) + { + bFlagIsAutoExposureFailed = true; + bFlagIsOverTrying = true; + break; + } + //m_pFSCtrl->SetExposureTime(5000); + m_pFSCtrl->GetExposureTime(iExposureTime); + //m_pFSCtrl->SetExposureTime(2500); + //fExposureTime = (float)m_daDeviceAttr.iMinIntegrationTimeInMS; + fTempExposureTime = iExposureTime; + + iRes = m_pFSCtrl->SingleShot(dfTemp); + //iRes = m_pFSCtrl->SingleShot(dfTemp); + if (iRes != 0) + { + qDebug() << "Err:PerformAutoExposure Failed.Exit Code:2"; + return 2; + } + + HeapSort(dfTemp.usData, m_daDeviceAttr.iPixels); + + double dSum = 0; + int iCount = m_daDeviceAttr.iPixels / 100; + for (int i = 0; i < iCount; i++) + { + dSum += dfTemp.usData[i]; + } + double dTemp = dSum / iCount; + + if (dTemp >= iDeviceDepth * 0.99) + { + bIsValueOverflow = true; + if (!bIsLastValueOverflow) + { + iExposureTime = (float)(fLastExposureTime + iExposureTime) / 2; + } + else + { + iExposureTime = iExposureTime / 2; + } + } + + else if (iDeviceDepth * m_fsInfo.fMaxFactor >= dTemp && dTemp >= iDeviceDepth * m_fsInfo.fMinFactor) + { + bFlagIsAutoExposureOK = 1; + } + else if (dTemp > iDeviceDepth * m_fsInfo.fMaxFactor) + { + bIsValueOverflow = true; + if (!bIsLastValueOverflow) + { + iExposureTime = (float)(fLastExposureTime + iExposureTime) / 2; + } + else + { + iExposureTime = iExposureTime * 3 / 4; + } + } + else if (dTemp < iDeviceDepth * m_fsInfo.fMinFactor) + { + bIsValueOverflow = false; + if (bIsLastValueOverflow) + { + iExposureTime = (float)(fLastExposureTime + iExposureTime) / 2; + } + else + { + double dFactor; + dFactor = dTemp / (iDeviceDepth * m_fsInfo.fMaxFactor); + iExposureTime = (float)(iExposureTime / dFactor); + } + if (/*fExposureTime > 100 || */iExposureTime < 10) + { + bFlagIsAutoExposureOK = false; + bFlagIsAutoExposureFailed = true; + bFlagIsLowerMinExposureTime = true; + } + } + bIsLastValueOverflow = bIsValueOverflow; + fLastExposureTime = fTempExposureTime; + + if (iExposureTime > 30000) + { + bFlagIsAutoExposureOK = false; + bFlagIsAutoExposureFailed = true; + float fPredictedExposureTime = 30000; + iRes = m_pFSCtrl->SetExposureTime(30000); + if (iRes != 0) + { + qDebug() << "Err:PerformAutoExposure Failed.Exit Code:3"; + return 3; + } + bFlagIsOverMaxExposureTime = true; + break; + } + + iRes = m_pFSCtrl->SetExposureTime((int)iExposureTime); + if (iRes != 0) + { + qDebug() << "Err:PerformAutoExposure Failed.Exit Code:4"; + return 3; + } + else + { + qDebug() << "Success:PerformAutoExposure. Value"<< iExposureTime; + } + } + fPredictedExposureTime = iExposureTime; + qDebug() << "--------------------------Stop PerformAutoExposure" << " Thread ID:" << m_iThreadID; //emit SignalAcqFinished(m_iThreadID, 1); + return 0; } int CAbstractFSController::TakeDarkFrame() { qDebug() << "Starting TakeDarkFrame" << " Thread ID:" << m_iThreadID; - QThread::msleep(1000); + + m_vecDataFrameDark.push_back(TakeOneFrame()); + + qDebug() << "Stop TakeDarkFrame" << " Thread ID:" << m_iThreadID; //emit SignalAcqFinished(m_iThreadID, 1); return 0; } -int CAbstractFSController::TakeSignal() +int CAbstractFSController::TakeSignalFrame() { qDebug() << "Starting TakeSignal" << " Thread ID:" << m_iThreadID; - QThread::msleep(5000); + + m_vecDataFrameSignal.push_back(TakeOneFrame()); + qDebug() << "Stop TakeSignal" << " Thread ID:" << m_iThreadID; //emit SignalAcqFinished(m_iThreadID, 1); return 0; } +DataFrame CAbstractFSController::TakeOneFrame() +{ + + DataFrame dfTemp; + int iRes = m_pFSCtrl->SingleShot(dfTemp); + if (iRes != 0) + { + qDebug() << "Err. SingleShot" << " Thread ID:" << m_iThreadID; + } + + return dfTemp; +} + int CAbstractFSController::SaveDataFile() { return 0; @@ -123,7 +292,7 @@ int CAbstractFSController::StartAcquisitionSignal() // m_pFSCtrl->GetExposureTime(iii); // m_pFSCtrl->SingleShot(struDF); PerformAutoExposure(); - TakeSignal(); + TakeSignalFrame(); qDebug() << "Stop acq Signal" << " Thread ID:" << m_iThreadID; emit SignalAcqFinished_Signal(m_iThreadID, 1); @@ -145,5 +314,17 @@ int CAbstractFSController::StopAcquisition() return 0; } +int CAbstractFSController::ClearBuffer() +{ + m_vecDataFrameDark.clear(); + m_vecDataFrameSignal.clear(); + return 0; +} +int CAbstractFSController::GetBuffer(std::vector *pvecDataFrameDark, std::vector *pvecDataFrameSignal) +{ + pvecDataFrameDark = &m_vecDataFrameDark; + pvecDataFrameSignal = &m_vecDataFrameSignal; + return 0; +} diff --git a/source/Thread/AbstractFSController.h b/source/Thread/AbstractFSController.h index 5a52126..4892fce 100644 --- a/source/Thread/AbstractFSController.h +++ b/source/Thread/AbstractFSController.h @@ -3,12 +3,16 @@ #include "ATPControl_Serial_QT.h" #include "OControl_USB.h" #include +#include typedef struct tagFSInfo { ZZ_U8 ucDeviceModel; int iInterface; std::string strSN; + long lDepth; + float fMinFactor; + float fMaxFactor; }FSInfo; class CAbstractFSController :public QObject @@ -30,18 +34,24 @@ private: CIrisFSBase *m_pFSCtrl; int m_iThreadID; FSInfo m_fsInfo; - DataFrame m_dfDark,m_dfSignal; + //DataFrame m_dfDark,m_dfSignal; + std::vector m_vecDataFrameDark, m_vecDataFrameSignal; + DeviceAttribute m_daDeviceAttr; private: int PerformAutoExposure(); int TakeDarkFrame(); - int TakeSignal(); + int TakeSignalFrame(); + DataFrame TakeOneFrame(); int SaveDataFile(); + public slots: virtual int StartAcquisitionSignal(); virtual int StartAcquisitionDark(); - virtual int StopAcquisition(); + virtual int ClearBuffer(); + virtual int GetBuffer(std::vector *pvecDataFrameDark, std::vector *pvecDataFrameSignal); + signals: void SignalAcqStarted(); diff --git a/source/Thread/MainDataGrabber.cpp b/source/Thread/MainDataGrabber.cpp index 50c1b13..8390477 100644 --- a/source/Thread/MainDataGrabber.cpp +++ b/source/Thread/MainDataGrabber.cpp @@ -59,6 +59,12 @@ int CMainDataGrabber::SetGrabberParams(RunTimeGrabberParams struGrabberRTParams) return 0; } +int CMainDataGrabber::SetGrabberFileProcessor(DataFileProcessor &dfpSaver) +{ + m_pdfpSaver = &dfpSaver; + return 0; +} + int CMainDataGrabber::InitThreadStatus() { if (m_piFlagCaptureThreadStatus_Signal!=NULL) @@ -95,6 +101,9 @@ int CMainDataGrabber::InitializeWorkers() fsInfo.iInterface = m_struDeviceContext.iInterface[i]; fsInfo.ucDeviceModel = m_struDeviceContext.ucDeviceModel[i]; fsInfo.strSN = m_struDeviceContext.strSN[i]; + fsInfo.fMaxFactor = m_struDeviceContext.fMaxFactor[i]; + fsInfo.fMinFactor = m_struDeviceContext.fMinFactor[i]; + fsInfo.lDepth = m_struDeviceContext.lDepth[i]; CAbstractFSController* m_pWorkThread = new CAbstractFSController; m_pWorkThread->SetRunParas(i, fsInfo); @@ -282,40 +291,86 @@ int CMainDataGrabber::GrabOnceFinished() int CMainDataGrabber::OnTimeCounter() { - - if (m_iFlagIsCapturing) - { - qDebug() << "-------------------------------------------busy"; - return 0; - } - m_iFlagIsCapturing = 1; + if (m_iFlagIsCapturing) + { + qDebug() << "Fatal Thread Err."; + return 1000; + } + m_iFlagIsCapturing = 1; + + m_struAcqPosSetting.iTotalPosition = 2; + + //m_pdfpSaver->WriteDataFile(); + for (ZZ_U8 i = 0; i < m_struDeviceContext.ucDeviceNumber; i++) + { + m_pControlThread[i]->ClearBuffer(); + } + + for (int i=0;i< m_struAcqPosSetting.iTotalPosition-1;i++) + { + ////move to + m_struAcqPosSetting.iPosition[i + 1]; + m_iFlagIsCapturing_Signal = 1; + emit SignalStartGrabOnce_Signal(); + while (m_iFlagIsCapturing_Signal) + { + Delay_MSec(1000); + } + + + ////move to + m_struAcqPosSetting.iPosition[0]; + m_iFlagIsCapturing_Dark = 1; + emit SignalStartGrabOnce_Dark(); + while (m_iFlagIsCapturing_Dark) + { + Delay_MSec(1000); + } + + } + + std::vector test,test1; + for (ZZ_U8 i = 0; i < m_struDeviceContext.ucDeviceNumber; i++) + { + m_pControlThread[i]->GetBuffer(&test, &test1); + } +// qDebug() << "-------------------------------------------busy" << QTime::currentTime().toString(); +// QThread::msleep(5000); +// return 0; +// if (m_iFlagIsCapturing) +// { +// +// } +// m_iFlagIsCapturing = 1; //qDebug() << "-------------------------------------------return"; //return 1; - for (int i = 0; i < 5; i++) - { - m_iFlagIsCapturing_Signal = 1; - emit SignalStartGrabOnce_Signal(); - while (m_iFlagIsCapturing_Signal) - { - Delay_MSec(1000); - //QThread::msleep(1000); - qDebug() << "msleep" << 1000; - } - - m_iFlagIsCapturing_Dark = 1; - emit SignalStartGrabOnce_Dark(); - while (m_iFlagIsCapturing_Dark) - { - Delay_MSec(1000); - //QThread::msleep(1000); - qDebug() << "msleep" << 1000; - } - - } - qDebug() << "for quit"; - - - emit SignalGrabOnceFinished(); +// for (int i = 0; i < 5; i++) +// { +// m_iFlagIsCapturing_Signal = 1; +// emit SignalStartGrabOnce_Signal(); +// while (m_iFlagIsCapturing_Signal) +// { +// //Delay_MSec(1000); +// QThread::msleep(100); +// QCoreApplication::processEvents(QEventLoop::AllEvents, 100); +// //qDebug() << "msleep" << 1000; +// } +// +// m_iFlagIsCapturing_Dark = 1; +// emit SignalStartGrabOnce_Dark(); +// while (m_iFlagIsCapturing_Dark) +// { +// Delay_MSec(1000); +// QThread::msleep(100); +// QCoreApplication::processEvents(QEventLoop::AllEvents, 100); +// //qDebug() << "msleep" << 1000; +// } +// +// } +// qDebug() << "for quit"; +// +// +// emit SignalGrabOnceFinished(); return 0; } diff --git a/source/Thread/MainDataGrabber.h b/source/Thread/MainDataGrabber.h index 7038a91..4494f23 100644 --- a/source/Thread/MainDataGrabber.h +++ b/source/Thread/MainDataGrabber.h @@ -2,6 +2,7 @@ #include"pch.h" #include #include "AbstractFSController.h" +#include "DataFileProcessor.h" using namespace std; using namespace ZZ_MISCDEF::ZZ_RUNPARAMS; @@ -26,7 +27,8 @@ private: int m_iFlagIsCapturing_Signal; int m_iFlagIsCapturing_Dark; - + DataFileProcessor* m_pdfpSaver; + FSContext m_struDeviceContext; LSContext m_struLinearShutterContext; AcqPosSettings m_struAcqPosSetting; @@ -39,6 +41,7 @@ private: public: //Call this first int SetGrabberParams(RunTimeGrabberParams struGrabberRTParams); + int SetGrabberFileProcessor(DataFileProcessor &dfpSaver); int InitThreadStatus(); int InitializeWorkers();