瀏覽代碼

Merge branch 'Release2.8' into GSP

gsp 1 年之前
父節點
當前提交
8cd720817e

+ 1270 - 525
Bin/x64/OTSOx61_2_8.wse

@@ -925,2625 +925,3370 @@ item: Include Script
   Pathname=%_WISE_%\INCLUDE\uninstal.wse
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\apidsp_windows.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Bruker.API.Logging64.dll
+  Destination=%MAINDIR%\Bruker.API.Logging64.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Bruker.API.Esprit64.dll
+  Destination=%MAINDIR%\Bruker.API.Esprit64.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\apidsp_windows.dll
   Destination=%MAINDIR%\apidsp_windows.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\apidsp_windows_x64.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\apidsp_windows_x64.dll
   Destination=%MAINDIR%\apidsp_windows_x64.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AutoScript.Authentication.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AutoScript.Authentication.dll
   Destination=%MAINDIR%\AutoScript.Authentication.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AutoScript.Clients.SdbMicroscope.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AutoScript.Clients.SdbMicroscope.dll
   Destination=%MAINDIR%\AutoScript.Clients.SdbMicroscope.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AutoScript.Common.CSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AutoScript.Common.CSharp.dll
   Destination=%MAINDIR%\AutoScript.Common.CSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AutoScript.FramedTransport.CSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AutoScript.FramedTransport.CSharp.dll
   Destination=%MAINDIR%\AutoScript.FramedTransport.CSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AutoScript.Libraries.SdbMicroscope.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AutoScript.Libraries.SdbMicroscope.dll
   Destination=%MAINDIR%\AutoScript.Libraries.SdbMicroscope.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AutoScript.Orc.CSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AutoScript.Orc.CSharp.dll
   Destination=%MAINDIR%\AutoScript.Orc.CSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AutoScript.Orc.Interfaces.CSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AutoScript.Orc.Interfaces.CSharp.dll
   Destination=%MAINDIR%\AutoScript.Orc.Interfaces.CSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AutoScript.Presentation.CSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AutoScript.Presentation.CSharp.dll
   Destination=%MAINDIR%\AutoScript.Presentation.CSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AutoScript.Serialization.CSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AutoScript.Serialization.CSharp.dll
   Destination=%MAINDIR%\AutoScript.Serialization.CSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\AxRM.Interop.ReportMachine.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\AxRM.Interop.ReportMachine.dll
   Destination=%MAINDIR%\AxRM.Interop.ReportMachine.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\BitMiracle.LibTiff.NET.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\BitMiracle.LibTiff.NET.dll
   Destination=%MAINDIR%\BitMiracle.LibTiff.NET.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\BouncyCastle.Crypto.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\BouncyCastle.Crypto.dll
   Destination=%MAINDIR%\BouncyCastle.Crypto.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\BouncyCastle.Crypto.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\BouncyCastle.Crypto.xml
   Destination=%MAINDIR%\BouncyCastle.Crypto.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Bruker.API.Esprit1.9.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Bruker.API.Esprit1.9.dll
   Destination=%MAINDIR%\Bruker.API.Esprit1.9.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Bruker.API.Esprit2.1.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Bruker.API.Esprit2.1.dll
   Destination=%MAINDIR%\Bruker.API.Esprit2.1.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Bruker.API.Esprit2.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Bruker.API.Esprit2.2.dll
   Destination=%MAINDIR%\Bruker.API.Esprit2.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\cef.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\cef.pak
   Destination=%MAINDIR%\cef.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CefSharp.BrowserSubprocess.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CefSharp.BrowserSubprocess.Core.dll
   Destination=%MAINDIR%\CefSharp.BrowserSubprocess.Core.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CefSharp.BrowserSubprocess.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CefSharp.BrowserSubprocess.exe
   Destination=%MAINDIR%\CefSharp.BrowserSubprocess.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CefSharp.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CefSharp.Core.dll
   Destination=%MAINDIR%\CefSharp.Core.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CefSharp.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CefSharp.Core.xml
   Destination=%MAINDIR%\CefSharp.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CefSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CefSharp.dll
   Destination=%MAINDIR%\CefSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CefSharp.WinForms.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CefSharp.WinForms.dll
   Destination=%MAINDIR%\CefSharp.WinForms.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CefSharp.WinForms.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CefSharp.WinForms.xml
   Destination=%MAINDIR%\CefSharp.WinForms.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CefSharp.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CefSharp.xml
   Destination=%MAINDIR%\CefSharp.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\cef_100_percent.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\cef_100_percent.pak
   Destination=%MAINDIR%\cef_100_percent.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\cef_200_percent.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\cef_200_percent.pak
   Destination=%MAINDIR%\cef_200_percent.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\cef_extensions.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\cef_extensions.pak
   Destination=%MAINDIR%\cef_extensions.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CLRProfiler.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CLRProfiler.exe
   Destination=%MAINDIR%\CLRProfiler.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\CLRProfilerControl.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\CLRProfilerControl.dll
   Destination=%MAINDIR%\CLRProfilerControl.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\OneKeyLoad\ddddd.mrp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\OneKeyLoad\ddddd.mrp
   Destination=%MAINDIR%\Config\OneKeyLoad\ddddd.mrp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\OneKeyLoad\gggg.mrp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\OneKeyLoad\gggg.mrp
   Destination=%MAINDIR%\Config\OneKeyLoad\gggg.mrp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\OneKeyLoad\iii.mrp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\OneKeyLoad\iii.mrp
   Destination=%MAINDIR%\Config\OneKeyLoad\iii.mrp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\ProData\BrukerDllVersion.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\ProData\BrukerDllVersion.xml
   Destination=%MAINDIR%\Config\ProData\BrukerDllVersion.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\ProData\DefaultTriTemplateFile.tpf
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\ProData\DefaultTriTemplateFile.tpf
   Destination=%MAINDIR%\Config\ProData\DefaultTriTemplateFile.tpf
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\ProData\HardwareConfig.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\ProData\HardwareConfig.xml
   Destination=%MAINDIR%\Config\ProData\HardwareConfig.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\ProData\lj.psf
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\ProData\lj.psf
   Destination=%MAINDIR%\Config\ProData\lj.psf
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\ProData\lj2.psf
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\ProData\lj2.psf
   Destination=%MAINDIR%\Config\ProData\lj2.psf
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\ProData\ReportTemplateConfig.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\ProData\ReportTemplateConfig.xml
   Destination=%MAINDIR%\Config\ProData\ReportTemplateConfig.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\ReportTemplate\language.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\ReportTemplate\language.db
   Destination=%MAINDIR%\Config\ReportTemplate\language.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\ReportTemplate\ReportTemplateConfig.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\ReportTemplate\ReportTemplateConfig.xml
   Destination=%MAINDIR%\Config\ReportTemplate\ReportTemplateConfig.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\00013.tif
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\00013.tif
   Destination=%MAINDIR%\Config\Simulate\00013.tif
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage (2).bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage (2).bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage (2).bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage-1.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage-1.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage-1.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.bmp2
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.bmp2
   Destination=%MAINDIR%\Config\Simulate\SimImage.bmp2
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.bmp3
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.bmp3
   Destination=%MAINDIR%\Config\Simulate\SimImage.bmp3
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.jpg
   Destination=%MAINDIR%\Config\Simulate\SimImage.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.tiff
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage.tiff
   Destination=%MAINDIR%\Config\Simulate\SimImage.tiff
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage002.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage002.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage002.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1 (2).bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1 (2).bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage1 (2).bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1 (3).bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1 (3).bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage1 (3).bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1 (4).bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1 (4).bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage1 (4).bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage1.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1024_704.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1024_704.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage1024_704.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1024_768.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1024_768.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage1024_768.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1024_768_1.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage1024_768_1.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage1024_768_1.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage111.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage111.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage111.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage12.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage12.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage12.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage2.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage2.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage2.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage22.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage22.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage22.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage3 .bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage3 .bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage3 .bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage5.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage5.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage5.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImageOld.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImageOld.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImageOld.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage_bak.bmp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimImage_bak.bmp
   Destination=%MAINDIR%\Config\Simulate\SimImage_bak.bmp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\Simulate\SimSpectrum.txt
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\Simulate\SimSpectrum.txt
   Destination=%MAINDIR%\Config\Simulate\SimSpectrum.txt
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\CleannessNew_nj.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\CleannessNew_nj.db
   Destination=%MAINDIR%\Config\SysData\CleannessNew_nj.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\FudanDaXue.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\FudanDaXue.db
   Destination=%MAINDIR%\Config\SysData\FudanDaXue.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\IncSysLib\IncASTDData.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\IncSysLib\IncASTDData.db
   Destination=%MAINDIR%\Config\SysData\IncSysLib\IncASTDData.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\LibBackup\AztecBattery.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\LibBackup\AztecBattery.db
   Destination=%MAINDIR%\Config\SysData\LibBackup\AztecBattery.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\LibBackup\OTSCleanlinessSTD1.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\LibBackup\OTSCleanlinessSTD1.db
   Destination=%MAINDIR%\Config\SysData\LibBackup\OTSCleanlinessSTD1.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\LibBackup\OTSCleanlinessSTD2.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\LibBackup\OTSCleanlinessSTD2.db
   Destination=%MAINDIR%\Config\SysData\LibBackup\OTSCleanlinessSTD2.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\LibBackup\OTSIncASTD1.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\LibBackup\OTSIncASTD1.db
   Destination=%MAINDIR%\Config\SysData\LibBackup\OTSIncASTD1.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\NoSTDDB.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\NoSTDDB.db
   Destination=%MAINDIR%\Config\SysData\NoSTDDB.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\OTSCleanlinessSTD1.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\OTSCleanlinessSTD1.db
   Destination=%MAINDIR%\Config\SysData\OTSCleanlinessSTD1.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\OTSIncASTD1.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\OTSIncASTD1.db
   Destination=%MAINDIR%\Config\SysData\OTSIncASTD1.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\OTSInclusionsTraceabilityParam.rpf
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\OTSInclusionsTraceabilityParam.rpf
   Destination=%MAINDIR%\Config\SysData\OTSInclusionsTraceabilityParam.rpf
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\OTSProgMgrParam - 副本.pmf
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\OTSProgMgrParam - 副本.pmf
   Destination=%MAINDIR%\Config\SysData\OTSProgMgrParam - 副本.pmf
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\OTSProgMgrParam.pmf
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\OTSProgMgrParam.pmf
   Destination=%MAINDIR%\Config\SysData\OTSProgMgrParam.pmf
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\OTSReportMgrParam.rpf
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\OTSReportMgrParam.rpf
   Destination=%MAINDIR%\Config\SysData\OTSReportMgrParam.rpf
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\OTSStage.stg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\OTSStage.stg
   Destination=%MAINDIR%\Config\SysData\OTSStage.stg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\OTSSTD_F.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\OTSSTD_F.db
   Destination=%MAINDIR%\Config\SysData\OTSSTD_F.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\RegistrationProofreading.txt
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\RegistrationProofreading.txt
   Destination=%MAINDIR%\Config\SysData\RegistrationProofreading.txt
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\rrr.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\rrr.db
   Destination=%MAINDIR%\Config\SysData\rrr.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\SpecialGrayConfig.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\SpecialGrayConfig.xml
   Destination=%MAINDIR%\Config\SysData\SpecialGrayConfig.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Config\SysData\StdBattery.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Config\SysData\StdBattery.db
   Destination=%MAINDIR%\Config\SysData\StdBattery.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\d3dcompiler_43.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\COTSUtilityDllFunExport.obj
+  Destination=%MAINDIR%\COTSUtilityDllFunExport.obj
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\d3dcompiler_43.dll
   Destination=%MAINDIR%\d3dcompiler_43.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\d3dcompiler_47.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\d3dcompiler_47.dll
   Destination=%MAINDIR%\d3dcompiler_47.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\debug.log
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.Data.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.Data.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.DataAccess.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.DataAccess.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.DataAccess.v21.2.UI.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.DataAccess.v21.2.UI.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.Diagram.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.Diagram.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.Office.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.Office.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.Pdf.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.Pdf.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.PivotGrid.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.PivotGrid.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.Printing.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.Printing.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.RichEdit.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.RichEdit.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.Sparkline.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.Sparkline.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.Utils.v21.2.UI.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.Utils.v21.2.UI.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.Xpo.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.Xpo.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraBars.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraBars.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraCharts.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraCharts.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraCharts.v21.2.Wizard.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraCharts.v21.2.Wizard.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraEditors.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraEditors.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraGauges.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraGauges.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraLayout.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraLayout.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraNavBar.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraNavBar.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraPivotGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraPivotGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraPrinting.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraPrinting.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraReports.v21.2.Extensions.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraReports.v21.2.Extensions.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraReports.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraReports.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraRichEdit.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraRichEdit.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraTreeList.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraTreeList.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\de\DevExpress.XtraVerticalGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\de\DevExpress.XtraVerticalGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\debug.log
   Destination=%MAINDIR%\debug.log
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Charts.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Charts.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.Charts.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Charts.v21.2.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Charts.v21.2.Core.xml
   Destination=%MAINDIR%\DevExpress.Charts.v21.2.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.CodeParser.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.CodeParser.v21.2.dll
   Destination=%MAINDIR%\DevExpress.CodeParser.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Data.Desktop.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Data.Desktop.v21.2.dll
   Destination=%MAINDIR%\DevExpress.Data.Desktop.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Data.Desktop.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Data.Desktop.v21.2.xml
   Destination=%MAINDIR%\DevExpress.Data.Desktop.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Data.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Data.v21.2.dll
   Destination=%MAINDIR%\DevExpress.Data.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Data.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Data.v21.2.xml
   Destination=%MAINDIR%\DevExpress.Data.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.DataAccess.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.DataAccess.v21.2.dll
   Destination=%MAINDIR%\DevExpress.DataAccess.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.DataAccess.v21.2.UI.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.DataAccess.v21.2.UI.dll
   Destination=%MAINDIR%\DevExpress.DataAccess.v21.2.UI.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.DataAccess.v21.2.UI.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.DataAccess.v21.2.UI.xml
   Destination=%MAINDIR%\DevExpress.DataAccess.v21.2.UI.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.DataAccess.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.DataAccess.v21.2.xml
   Destination=%MAINDIR%\DevExpress.DataAccess.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.DataVisualization.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.DataVisualization.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.DataVisualization.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Diagram.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Diagram.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.Diagram.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Diagram.v21.2.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Diagram.v21.2.Core.xml
   Destination=%MAINDIR%\DevExpress.Diagram.v21.2.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Images.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Images.v21.2.dll
   Destination=%MAINDIR%\DevExpress.Images.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Office.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Office.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.Office.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Office.v21.2.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Office.v21.2.Core.xml
   Destination=%MAINDIR%\DevExpress.Office.v21.2.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Pdf.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Pdf.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.Pdf.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Pdf.v21.2.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Pdf.v21.2.Core.xml
   Destination=%MAINDIR%\DevExpress.Pdf.v21.2.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Pdf.v21.2.Drawing.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Pdf.v21.2.Drawing.dll
   Destination=%MAINDIR%\DevExpress.Pdf.v21.2.Drawing.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Pdf.v21.2.Drawing.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Pdf.v21.2.Drawing.xml
   Destination=%MAINDIR%\DevExpress.Pdf.v21.2.Drawing.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.PivotGrid.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.PivotGrid.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.PivotGrid.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.PivotGrid.v21.2.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.PivotGrid.v21.2.Core.xml
   Destination=%MAINDIR%\DevExpress.PivotGrid.v21.2.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Printing.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Printing.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.Printing.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Printing.v21.2.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Printing.v21.2.Core.xml
   Destination=%MAINDIR%\DevExpress.Printing.v21.2.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.RichEdit.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.RichEdit.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.RichEdit.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.RichEdit.v21.2.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.RichEdit.v21.2.Core.xml
   Destination=%MAINDIR%\DevExpress.RichEdit.v21.2.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.RichEdit.v21.2.Export.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.RichEdit.v21.2.Export.dll
   Destination=%MAINDIR%\DevExpress.RichEdit.v21.2.Export.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Sparkline.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Sparkline.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.Sparkline.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Sparkline.v21.2.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Sparkline.v21.2.Core.xml
   Destination=%MAINDIR%\DevExpress.Sparkline.v21.2.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Utils.v21.2.UI.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Utils.v21.2.UI.dll
   Destination=%MAINDIR%\DevExpress.Utils.v21.2.UI.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Utils.v21.2.UI.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Utils.v21.2.UI.xml
   Destination=%MAINDIR%\DevExpress.Utils.v21.2.UI.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Xpo.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Xpo.v21.2.dll
   Destination=%MAINDIR%\DevExpress.Xpo.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.Xpo.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.Xpo.v21.2.xml
   Destination=%MAINDIR%\DevExpress.Xpo.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraBars.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraBars.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraBars.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraBars.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraBars.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraBars.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraCharts.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.Extensions.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.Extensions.dll
   Destination=%MAINDIR%\DevExpress.XtraCharts.v21.2.Extensions.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.Wizard.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.Wizard.dll
   Destination=%MAINDIR%\DevExpress.XtraCharts.v21.2.Wizard.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.Wizard.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.Wizard.xml
   Destination=%MAINDIR%\DevExpress.XtraCharts.v21.2.Wizard.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraCharts.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraCharts.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraDiagram.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraDiagram.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraDiagram.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraDiagram.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraDiagram.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraDiagram.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraEditors.v20.1.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraEditors.v20.1.dll
   Destination=%MAINDIR%\DevExpress.XtraEditors.v20.1.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraEditors.v20.1.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraEditors.v20.1.xml
   Destination=%MAINDIR%\DevExpress.XtraEditors.v20.1.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraEditors.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraEditors.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraEditors.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraEditors.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraEditors.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraEditors.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraGauges.v21.2.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraGauges.v21.2.Core.dll
   Destination=%MAINDIR%\DevExpress.XtraGauges.v21.2.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraGauges.v21.2.Core.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraGauges.v21.2.Core.xml
   Destination=%MAINDIR%\DevExpress.XtraGauges.v21.2.Core.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraGrid.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraGrid.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraGrid.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraGrid.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraGrid.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraGrid.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraLayout.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraLayout.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraLayout.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraLayout.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraLayout.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraLayout.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraNavBar.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraNavBar.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraNavBar.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraNavBar.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraNavBar.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraNavBar.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraPivotGrid.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraPivotGrid.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraPivotGrid.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraPivotGrid.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraPivotGrid.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraPivotGrid.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraPrinting.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraPrinting.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraPrinting.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraPrinting.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraPrinting.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraPrinting.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraReports.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraReports.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraReports.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraReports.v21.2.Extensions.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraReports.v21.2.Extensions.dll
   Destination=%MAINDIR%\DevExpress.XtraReports.v21.2.Extensions.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraReports.v21.2.Extensions.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraReports.v21.2.Extensions.xml
   Destination=%MAINDIR%\DevExpress.XtraReports.v21.2.Extensions.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraReports.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraReports.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraReports.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraRichEdit.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraRichEdit.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraRichEdit.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraRichEdit.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraRichEdit.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraRichEdit.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraTreeList.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraTreeList.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraTreeList.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraTreeList.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraTreeList.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraTreeList.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraVerticalGrid.v21.2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraVerticalGrid.v21.2.dll
   Destination=%MAINDIR%\DevExpress.XtraVerticalGrid.v21.2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DevExpress.XtraVerticalGrid.v21.2.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DevExpress.XtraVerticalGrid.v21.2.xml
   Destination=%MAINDIR%\DevExpress.XtraVerticalGrid.v21.2.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\devtools_resources.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\devtools_resources.pak
   Destination=%MAINDIR%\devtools_resources.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\dll\x64\OpenCvSharpExtern.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\dll\x64\OpenCvSharpExtern.dll
   Destination=%MAINDIR%\dll\x64\OpenCvSharpExtern.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\dll\x64\opencv_ffmpeg400_64.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\dll\x64\opencv_ffmpeg400_64.dll
   Destination=%MAINDIR%\dll\x64\opencv_ffmpeg400_64.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\dll\x64\opencv_videoio_ffmpeg455_64.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\dll\x64\opencv_videoio_ffmpeg455_64.dll
   Destination=%MAINDIR%\dll\x64\opencv_videoio_ffmpeg455_64.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\dll\x64\opencv_videoio_ffmpeg480_64.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\dll\x64\opencv_videoio_ffmpeg480_64.dll
   Destination=%MAINDIR%\dll\x64\opencv_videoio_ffmpeg480_64.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\dll\x86\OpenCvSharpExtern.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\dll\x86\OpenCvSharpExtern.dll
   Destination=%MAINDIR%\dll\x86\OpenCvSharpExtern.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\dll\x86\opencv_ffmpeg400.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\dll\x86\opencv_ffmpeg400.dll
   Destination=%MAINDIR%\dll\x86\opencv_ffmpeg400.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\dll\x86\opencv_videoio_ffmpeg455.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\dll\x86\opencv_videoio_ffmpeg455.dll
   Destination=%MAINDIR%\dll\x86\opencv_videoio_ffmpeg455.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\dll\x86\opencv_videoio_ffmpeg480.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\dll\x86\opencv_videoio_ffmpeg480.dll
   Destination=%MAINDIR%\dll\x86\opencv_videoio_ffmpeg480.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\DynamicDataDisplay.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\DynamicDataDisplay.dll
   Destination=%MAINDIR%\DynamicDataDisplay.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\EntityFramework.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\EntityFramework.dll
   Destination=%MAINDIR%\EntityFramework.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\EntityFramework.SqlServer.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\EntityFramework.SqlServer.dll
   Destination=%MAINDIR%\EntityFramework.SqlServer.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\EntityFramework.SqlServer.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\EntityFramework.SqlServer.xml
   Destination=%MAINDIR%\EntityFramework.SqlServer.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\EntityFramework.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\EntityFramework.xml
   Destination=%MAINDIR%\EntityFramework.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Extender.log4net
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.Data.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.Data.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.DataAccess.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.DataAccess.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.DataAccess.v21.2.UI.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.DataAccess.v21.2.UI.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.Diagram.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.Diagram.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.Office.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.Office.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.Pdf.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.Pdf.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.PivotGrid.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.PivotGrid.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.Printing.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.Printing.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.RichEdit.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.RichEdit.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.Sparkline.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.Sparkline.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.Utils.v21.2.UI.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.Utils.v21.2.UI.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.Xpo.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.Xpo.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraBars.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraBars.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraCharts.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraCharts.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraCharts.v21.2.Wizard.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraCharts.v21.2.Wizard.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraEditors.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraEditors.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraGauges.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraGauges.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraLayout.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraLayout.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraNavBar.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraNavBar.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraPivotGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraPivotGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraPrinting.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraPrinting.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraReports.v21.2.Extensions.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraReports.v21.2.Extensions.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraReports.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraReports.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraRichEdit.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraRichEdit.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraTreeList.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraTreeList.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\es\DevExpress.XtraVerticalGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\es\DevExpress.XtraVerticalGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Extender.log4net
   Destination=%MAINDIR%\Extender.log4net
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Extreme.Numerics.Net40.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Extreme.Numerics.Net40.dll
   Destination=%MAINDIR%\Extreme.Numerics.Net40.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\FEIApiControl.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\FEIApiControl.dll
   Destination=%MAINDIR%\FEIApiControl.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\hasp_net_windows.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\hasp_net_windows.dll
   Destination=%MAINDIR%\hasp_net_windows.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\hasp_windows_50590.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\hasp_windows_50590.dll
   Destination=%MAINDIR%\hasp_windows_50590.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\hasp_windows_x64_50590.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\hasp_windows_x64_50590.dll
   Destination=%MAINDIR%\hasp_windows_x64_50590.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Help\Extender.chm
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Help\Extender.chm
   Destination=%MAINDIR%\Help\Extender.chm
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Help\Extender.chw
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Help\Extender.chw
   Destination=%MAINDIR%\Help\Extender.chw
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\ICSharpCode.SharpZipLib.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ICSharpCode.SharpZipLib.dll
   Destination=%MAINDIR%\ICSharpCode.SharpZipLib.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\ICSharpCode.SharpZipLib.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ICSharpCode.SharpZipLib.pdb
   Destination=%MAINDIR%\ICSharpCode.SharpZipLib.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\ICSharpCode.SharpZipLib.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ICSharpCode.SharpZipLib.xml
   Destination=%MAINDIR%\ICSharpCode.SharpZipLib.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\icudtl.dat
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\icudtl.dat
   Destination=%MAINDIR%\icudtl.dat
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\libcef.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.Data.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.Data.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.DataAccess.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.DataAccess.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.DataAccess.v21.2.UI.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.DataAccess.v21.2.UI.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.Diagram.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.Diagram.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.Office.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.Office.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.Pdf.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.Pdf.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.PivotGrid.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.PivotGrid.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.Printing.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.Printing.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.RichEdit.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.RichEdit.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.Sparkline.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.Sparkline.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.Utils.v21.2.UI.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.Utils.v21.2.UI.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.Xpo.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.Xpo.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraBars.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraBars.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraCharts.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraCharts.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraCharts.v21.2.Wizard.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraCharts.v21.2.Wizard.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraEditors.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraEditors.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraGauges.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraGauges.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraLayout.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraLayout.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraNavBar.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraNavBar.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraPivotGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraPivotGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraPrinting.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraPrinting.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraReports.v21.2.Extensions.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraReports.v21.2.Extensions.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraReports.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraReports.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraRichEdit.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraRichEdit.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraTreeList.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraTreeList.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ja\DevExpress.XtraVerticalGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\ja\DevExpress.XtraVerticalGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\libcef.dll
   Destination=%MAINDIR%\libcef.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\libEGL.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\libEGL.dll
   Destination=%MAINDIR%\libEGL.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\libGLESv2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\libGLESv2.dll
   Destination=%MAINDIR%\libGLESv2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\am.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\am.pak
   Destination=%MAINDIR%\locales\am.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\ar.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\ar.pak
   Destination=%MAINDIR%\locales\ar.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\bg.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\bg.pak
   Destination=%MAINDIR%\locales\bg.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\bn.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\bn.pak
   Destination=%MAINDIR%\locales\bn.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\ca.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\ca.pak
   Destination=%MAINDIR%\locales\ca.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\cs.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\cs.pak
   Destination=%MAINDIR%\locales\cs.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\da.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\da.pak
   Destination=%MAINDIR%\locales\da.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\de.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\de.pak
   Destination=%MAINDIR%\locales\de.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\el.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\el.pak
   Destination=%MAINDIR%\locales\el.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\en-GB.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\en-GB.pak
   Destination=%MAINDIR%\locales\en-GB.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\en-US.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\en-US.pak
   Destination=%MAINDIR%\locales\en-US.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\es-419.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\es-419.pak
   Destination=%MAINDIR%\locales\es-419.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\es.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\es.pak
   Destination=%MAINDIR%\locales\es.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\et.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\et.pak
   Destination=%MAINDIR%\locales\et.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\fa.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\fa.pak
   Destination=%MAINDIR%\locales\fa.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\fi.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\fi.pak
   Destination=%MAINDIR%\locales\fi.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\fil.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\fil.pak
   Destination=%MAINDIR%\locales\fil.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\fr.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\fr.pak
   Destination=%MAINDIR%\locales\fr.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\gu.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\gu.pak
   Destination=%MAINDIR%\locales\gu.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\he.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\he.pak
   Destination=%MAINDIR%\locales\he.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\hi.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\hi.pak
   Destination=%MAINDIR%\locales\hi.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\hr.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\hr.pak
   Destination=%MAINDIR%\locales\hr.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\hu.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\hu.pak
   Destination=%MAINDIR%\locales\hu.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\id.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\id.pak
   Destination=%MAINDIR%\locales\id.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\it.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\it.pak
   Destination=%MAINDIR%\locales\it.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\ja.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\ja.pak
   Destination=%MAINDIR%\locales\ja.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\kn.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\kn.pak
   Destination=%MAINDIR%\locales\kn.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\ko.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\ko.pak
   Destination=%MAINDIR%\locales\ko.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\lt.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\lt.pak
   Destination=%MAINDIR%\locales\lt.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\lv.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\lv.pak
   Destination=%MAINDIR%\locales\lv.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\ml.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\ml.pak
   Destination=%MAINDIR%\locales\ml.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\mr.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\mr.pak
   Destination=%MAINDIR%\locales\mr.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\ms.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\ms.pak
   Destination=%MAINDIR%\locales\ms.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\nb.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\nb.pak
   Destination=%MAINDIR%\locales\nb.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\nl.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\nl.pak
   Destination=%MAINDIR%\locales\nl.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\pl.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\pl.pak
   Destination=%MAINDIR%\locales\pl.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\pt-BR.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\pt-BR.pak
   Destination=%MAINDIR%\locales\pt-BR.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\pt-PT.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\pt-PT.pak
   Destination=%MAINDIR%\locales\pt-PT.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\ro.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\ro.pak
   Destination=%MAINDIR%\locales\ro.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\ru.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\ru.pak
   Destination=%MAINDIR%\locales\ru.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\sk.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\sk.pak
   Destination=%MAINDIR%\locales\sk.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\sl.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\sl.pak
   Destination=%MAINDIR%\locales\sl.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\sr.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\sr.pak
   Destination=%MAINDIR%\locales\sr.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\sv.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\sv.pak
   Destination=%MAINDIR%\locales\sv.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\sw.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\sw.pak
   Destination=%MAINDIR%\locales\sw.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\ta.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\ta.pak
   Destination=%MAINDIR%\locales\ta.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\te.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\te.pak
   Destination=%MAINDIR%\locales\te.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\th.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\th.pak
   Destination=%MAINDIR%\locales\th.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\tr.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\tr.pak
   Destination=%MAINDIR%\locales\tr.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\uk.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\uk.pak
   Destination=%MAINDIR%\locales\uk.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\vi.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\vi.pak
   Destination=%MAINDIR%\locales\vi.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\zh-CN.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\zh-CN.pak
   Destination=%MAINDIR%\locales\zh-CN.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\locales\zh-TW.pak
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\locales\zh-TW.pak
   Destination=%MAINDIR%\locales\zh-TW.pak
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\log4net.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-09-20.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-09-20.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-09-21.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-09-21.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-09-22.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-09-22.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-09-23.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-09-23.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-10-19.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-10-19.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-10-27.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-10-27.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-10-31.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-10-31.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-11-01.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-11-01.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-11-02.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-11-02.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2022-11-04.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2022-11-04.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-03-17.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-03-17.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-03-22.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-03-22.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-07-19.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-07-19.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-07-20.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-07-20.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-09-04.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-09-04.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-10-08.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-10-08.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-10-09.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-10-09.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-10-10.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-10-10.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-10-13.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-10-13.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTS 2023-10-16.log
+  Destination=%MAINDIR%\Log\Nlogs\OTS 2023-10-16.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-09-20.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-09-20.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-09-23.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-09-23.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-10-10.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-10-10.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-10-26.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-10-26.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-10-27.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-10-27.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-10-31.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-10-31.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-11-02.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-11-02.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-11-04.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-11-04.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-11-08.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-11-08.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2022-11-09.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2022-11-09.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2023-07-20.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2023-07-20.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2023-10-08.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2023-10-08.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2023-10-09.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2023-10-09.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Log\Nlogs\OTSReport 2023-10-12.log
+  Destination=%MAINDIR%\Log\Nlogs\OTSReport 2023-10-12.log
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\log4net.dll
   Destination=%MAINDIR%\log4net.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\LogWriterAPI.NET.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\LogWriterAPI.NET.dll
   Destination=%MAINDIR%\LogWriterAPI.NET.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.Data.Sqlite.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.Data.Sqlite.dll
   Destination=%MAINDIR%\Microsoft.Data.Sqlite.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.Practices.EnterpriseLibrary.Common.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.Practices.EnterpriseLibrary.Common.dll
   Destination=%MAINDIR%\Microsoft.Practices.EnterpriseLibrary.Common.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.Practices.EnterpriseLibrary.Validation.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.Practices.EnterpriseLibrary.Validation.dll
   Destination=%MAINDIR%\Microsoft.Practices.EnterpriseLibrary.Validation.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.Solver.Foundation.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.Solver.Foundation.dll
   Destination=%MAINDIR%\Microsoft.Solver.Foundation.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.Solver.Foundation.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.Solver.Foundation.xml
   Destination=%MAINDIR%\Microsoft.Solver.Foundation.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
   Destination=%MAINDIR%\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
   Destination=%MAINDIR%\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.dll
   Destination=%MAINDIR%\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.TestFramework.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.TestFramework.dll
   Destination=%MAINDIR%\Microsoft.VisualStudio.TestPlatform.TestFramework.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll
   Destination=%MAINDIR%\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml
   Destination=%MAINDIR%\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.TestFramework.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.VisualStudio.TestPlatform.TestFramework.xml
   Destination=%MAINDIR%\Microsoft.VisualStudio.TestPlatform.TestFramework.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.WindowsAPICodePack.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.WindowsAPICodePack.dll
   Destination=%MAINDIR%\Microsoft.WindowsAPICodePack.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Microsoft.WindowsAPICodePack.Shell.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Microsoft.WindowsAPICodePack.Shell.dll
   Destination=%MAINDIR%\Microsoft.WindowsAPICodePack.Shell.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\mkl_sequential.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\mkl_sequential.dll
   Destination=%MAINDIR%\mkl_sequential.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\natives_blob.bin
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\natives_blob.bin
   Destination=%MAINDIR%\natives_blob.bin
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Newtonsoft.Json.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Newtonsoft.Json.dll
   Destination=%MAINDIR%\Newtonsoft.Json.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NLog.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NLog.config
   Destination=%MAINDIR%\NLog.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NLog.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NLog.dll
   Destination=%MAINDIR%\NLog.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NLog.Windows.Forms.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NLog.Windows.Forms.dll
   Destination=%MAINDIR%\NLog.Windows.Forms.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NLog1.config
+  Destination=%MAINDIR%\NLog1.config
+  Flags=0000000010000010
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.dll
   Destination=%MAINDIR%\NPOI.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.OOXML.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.OOXML.dll
   Destination=%MAINDIR%\NPOI.OOXML.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.OOXML.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.OOXML.pdb
   Destination=%MAINDIR%\NPOI.OOXML.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.OOXML.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.OOXML.xml
   Destination=%MAINDIR%\NPOI.OOXML.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.OpenXml4Net.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.OpenXml4Net.dll
   Destination=%MAINDIR%\NPOI.OpenXml4Net.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.OpenXml4Net.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.OpenXml4Net.pdb
   Destination=%MAINDIR%\NPOI.OpenXml4Net.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.OpenXml4Net.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.OpenXml4Net.xml
   Destination=%MAINDIR%\NPOI.OpenXml4Net.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.OpenXmlFormats.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.OpenXmlFormats.dll
   Destination=%MAINDIR%\NPOI.OpenXmlFormats.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.OpenXmlFormats.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.OpenXmlFormats.pdb
   Destination=%MAINDIR%\NPOI.OpenXmlFormats.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.pdb
   Destination=%MAINDIR%\NPOI.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\NPOI.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\NPOI.xml
   Destination=%MAINDIR%\NPOI.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Acquisition.CommonData.E2H.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Acquisition.CommonData.E2H.dll
   Destination=%MAINDIR%\OINA.Acquisition.CommonData.E2H.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Acquisition.CommonData.Management.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Acquisition.CommonData.Management.dll
   Destination=%MAINDIR%\OINA.Acquisition.CommonData.Management.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Acquisition.CommonData.Saturn.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Acquisition.CommonData.Saturn.dll
   Destination=%MAINDIR%\OINA.Acquisition.CommonData.Saturn.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Acquisition.Interfaces.E2H.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Acquisition.Interfaces.E2H.dll
   Destination=%MAINDIR%\OINA.Acquisition.Interfaces.E2H.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Acquisition.Interfaces.Management.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Acquisition.Interfaces.Management.dll
   Destination=%MAINDIR%\OINA.Acquisition.Interfaces.Management.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Acquisition.Interfaces.Saturn.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Acquisition.Interfaces.Saturn.dll
   Destination=%MAINDIR%\OINA.Acquisition.Interfaces.Saturn.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Calibration.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Calibration.dll
   Destination=%MAINDIR%\OINA.Calibration.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Common.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Common.dll
   Destination=%MAINDIR%\OINA.Common.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Controls.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Controls.dll
   Destination=%MAINDIR%\OINA.Controls.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Controls.Em.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Controls.Em.dll
   Destination=%MAINDIR%\OINA.Controls.Em.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Core.dll
   Destination=%MAINDIR%\OINA.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Core.Em.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Core.Em.dll
   Destination=%MAINDIR%\OINA.Core.Em.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Core.SqlCe.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Core.SqlCe.dll
   Destination=%MAINDIR%\OINA.Core.SqlCe.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Core.Sqlite.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Core.Sqlite.dll
   Destination=%MAINDIR%\OINA.Core.Sqlite.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Extender.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Extender.dll
   Destination=%MAINDIR%\OINA.Extender.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Extender.Server.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Extender.Server.dll
   Destination=%MAINDIR%\OINA.Extender.Server.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Extender.Server.Interfaces.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Extender.Server.Interfaces.dll
   Destination=%MAINDIR%\OINA.Extender.Server.Interfaces.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Extender.Service.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Extender.Service.exe
   Destination=%MAINDIR%\OINA.Extender.Service.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Extender.Service.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Extender.Service.exe.config
   Destination=%MAINDIR%\OINA.Extender.Service.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Extender.Testharness.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Extender.Testharness.exe
   Destination=%MAINDIR%\OINA.Extender.Testharness.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Extender.WPF.Testharness.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Extender.WPF.Testharness.exe
   Destination=%MAINDIR%\OINA.Extender.WPF.Testharness.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Extender.WPF.Testharness.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Extender.WPF.Testharness.exe.config
   Destination=%MAINDIR%\OINA.Extender.WPF.Testharness.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.FeatureReporting.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.FeatureReporting.dll
   Destination=%MAINDIR%\OINA.FeatureReporting.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Intel.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Intel.dll
   Destination=%MAINDIR%\OINA.Intel.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Interlocking.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Interlocking.dll
   Destination=%MAINDIR%\OINA.Interlocking.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Interop.Ipp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Interop.Ipp.dll
   Destination=%MAINDIR%\OINA.Interop.Ipp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.MicroscopeControl.Drivers.Interfaces.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.MicroscopeControl.Drivers.Interfaces.dll
   Destination=%MAINDIR%\OINA.MicroscopeControl.Drivers.Interfaces.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.MicroscopeControl.Interfaces.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.MicroscopeControl.Interfaces.dll
   Destination=%MAINDIR%\OINA.MicroscopeControl.Interfaces.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.MicroscopeControl.Proxy.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.MicroscopeControl.Proxy.dll
   Destination=%MAINDIR%\OINA.MicroscopeControl.Proxy.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Notification.Interfaces.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Notification.Interfaces.dll
   Destination=%MAINDIR%\OINA.Notification.Interfaces.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.Notification.Proxy.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.Notification.Proxy.dll
   Destination=%MAINDIR%\OINA.Notification.Proxy.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.PubSub.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.PubSub.dll
   Destination=%MAINDIR%\OINA.PubSub.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.SNSLicenseProvider.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.SNSLicenseProvider.dll
   Destination=%MAINDIR%\OINA.SNSLicenseProvider.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.XSyncAcquisition.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.XSyncAcquisition.dll
   Destination=%MAINDIR%\OINA.XSyncAcquisition.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OINA.XSyncAcquisition.tlb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OINA.XSyncAcquisition.tlb
   Destination=%MAINDIR%\OINA.XSyncAcquisition.tlb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.Blob.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.Blob.dll
   Destination=%MAINDIR%\OpenCvSharp.Blob.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.Blob.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.Blob.pdb
   Destination=%MAINDIR%\OpenCvSharp.Blob.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.Blob.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.Blob.xml
   Destination=%MAINDIR%\OpenCvSharp.Blob.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.dll
   Destination=%MAINDIR%\OpenCvSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.Extensions.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.Extensions.dll
   Destination=%MAINDIR%\OpenCvSharp.Extensions.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.Extensions.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.Extensions.pdb
   Destination=%MAINDIR%\OpenCvSharp.Extensions.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.Extensions.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.Extensions.xml
   Destination=%MAINDIR%\OpenCvSharp.Extensions.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.pdb
   Destination=%MAINDIR%\OpenCvSharp.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.UserInterface.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.UserInterface.dll
   Destination=%MAINDIR%\OpenCvSharp.UserInterface.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.UserInterface.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.UserInterface.pdb
   Destination=%MAINDIR%\OpenCvSharp.UserInterface.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.UserInterface.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.UserInterface.xml
   Destination=%MAINDIR%\OpenCvSharp.UserInterface.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.WpfExtensions.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.WpfExtensions.dll
   Destination=%MAINDIR%\OpenCvSharp.WpfExtensions.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.WpfExtensions.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.WpfExtensions.xml
   Destination=%MAINDIR%\OpenCvSharp.WpfExtensions.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharp.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharp.xml
   Destination=%MAINDIR%\OpenCvSharp.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OpenCvSharpExtern.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OpenCvSharpExtern.dll
   Destination=%MAINDIR%\OpenCvSharpExtern.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\opencv_world341.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\opencv_world341.dll
   Destination=%MAINDIR%\opencv_world341.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\opencv_world341d.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\opencv_world341d.dll
   Destination=%MAINDIR%\opencv_world341d.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTS.WinFormsUI.Docking.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTS.WinFormsUI.Docking.dll
   Destination=%MAINDIR%\OTS.WinFormsUI.Docking.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClassifyEngine.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClassifyEngine.dll
   Destination=%MAINDIR%\OTSClassifyEngine.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClassifyEngine.dll.metagen
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClassifyEngine.dll.metagen
   Destination=%MAINDIR%\OTSClassifyEngine.dll.metagen
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClassifyEngine.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClassifyEngine.exp
   Destination=%MAINDIR%\OTSClassifyEngine.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClassifyEngine.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClassifyEngine.lib
   Destination=%MAINDIR%\OTSClassifyEngine.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClassifyEngine.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClassifyEngine.pdb
   Destination=%MAINDIR%\OTSClassifyEngine.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClrInterface.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClrInterface.dll
   Destination=%MAINDIR%\OTSClrInterface.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClrInterface.dll.metagen
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClrInterface.dll.metagen
   Destination=%MAINDIR%\OTSClrInterface.dll.metagen
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClrInterface.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClrInterface.exp
   Destination=%MAINDIR%\OTSClrInterface.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClrInterface.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClrInterface.lib
   Destination=%MAINDIR%\OTSClrInterface.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSClrInterface.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSClrInterface.pdb
   Destination=%MAINDIR%\OTSClrInterface.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSCommon.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSCommon.dll
   Destination=%MAINDIR%\OTSCommon.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSCommon.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSCommon.pdb
   Destination=%MAINDIR%\OTSCommon.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSControl.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSControl.dll
   Destination=%MAINDIR%\OTSControl.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSControl.dll.lastcodeanalysissucceeded
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSControl.dll.lastcodeanalysissucceeded
   Destination=%MAINDIR%\OTSControl.dll.lastcodeanalysissucceeded
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSControl.dll.metagen
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSControl.dll.metagen
   Destination=%MAINDIR%\OTSControl.dll.metagen
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSControl.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSControl.exp
   Destination=%MAINDIR%\OTSControl.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSControl.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSControl.lib
   Destination=%MAINDIR%\OTSControl.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSControl.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSControl.pdb
   Destination=%MAINDIR%\OTSControl.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSData.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSData.dll
   Destination=%MAINDIR%\OTSData.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSData.dll.lastcodeanalysissucceeded
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSData.dll.lastcodeanalysissucceeded
   Destination=%MAINDIR%\OTSData.dll.lastcodeanalysissucceeded
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSData.dll.metagen
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSData.dll.metagen
   Destination=%MAINDIR%\OTSData.dll.metagen
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSData.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSData.exp
   Destination=%MAINDIR%\OTSData.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSData.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSData.lib
   Destination=%MAINDIR%\OTSData.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSData.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSData.pdb
   Destination=%MAINDIR%\OTSData.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSExtremum.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSExtremum.exe
   Destination=%MAINDIR%\OTSExtremum.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSExtremum.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSExtremum.exe.config
   Destination=%MAINDIR%\OTSExtremum.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSExtremum.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSExtremum.pdb
   Destination=%MAINDIR%\OTSExtremum.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSImagePro.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSImagePro.dll
   Destination=%MAINDIR%\OTSImagePro.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSImagePro.dll.metagen
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSImagePro.dll.metagen
   Destination=%MAINDIR%\OTSImagePro.dll.metagen
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSImagePro.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSImagePro.exp
   Destination=%MAINDIR%\OTSImagePro.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSImagePro.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSImagePro.lib
   Destination=%MAINDIR%\OTSImagePro.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSImagePro.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSImagePro.pdb
   Destination=%MAINDIR%\OTSImagePro.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSIncAReportApp.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSIncAReportApp.exe
   Destination=%MAINDIR%\OTSIncAReportApp.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSIncAReportApp.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSIncAReportApp.exe.config
   Destination=%MAINDIR%\OTSIncAReportApp.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSIncAReportApp.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSIncAReportApp.pdb
   Destination=%MAINDIR%\OTSIncAReportApp.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSIncAReportGraph.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSIncAReportGraph.dll
   Destination=%MAINDIR%\OTSIncAReportGraph.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSIncAReportGrids.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSIncAReportGrids.dll
   Destination=%MAINDIR%\OTSIncAReportGrids.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSIncAReportMailInterface.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSIncAReportMailInterface.dll
   Destination=%MAINDIR%\OTSIncAReportMailInterface.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSIncAReportTemplate.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSIncAReportTemplate.exe
   Destination=%MAINDIR%\OTSIncAReportTemplate.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSIncAReportTemplate.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSIncAReportTemplate.exe.config
   Destination=%MAINDIR%\OTSIncAReportTemplate.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSIncAReprotCharts.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSIncAReprotCharts.dll
   Destination=%MAINDIR%\OTSIncAReprotCharts.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSInclusionsTraceability.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSInclusionsTraceability.exe
   Destination=%MAINDIR%\OTSInclusionsTraceability.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSInclusionsTraceability.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSInclusionsTraceability.exe.config
   Destination=%MAINDIR%\OTSInclusionsTraceability.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSInclusionsTraceability.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSInclusionsTraceability.pdb
   Destination=%MAINDIR%\OTSInclusionsTraceability.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSLog.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSLog.dll
   Destination=%MAINDIR%\OTSLog.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSLog.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSLog.exp
   Destination=%MAINDIR%\OTSLog.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSLog.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSLog.lib
   Destination=%MAINDIR%\OTSLog.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSLog.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSLog.pdb
   Destination=%MAINDIR%\OTSLog.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSMeasureApp.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSMeasureApp.exe
   Destination=%MAINDIR%\OTSMeasureApp.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSMeasureApp.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSMeasureApp.exe.config
   Destination=%MAINDIR%\OTSMeasureApp.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSModel.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSModel.dll
   Destination=%MAINDIR%\OTSModel.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSModel.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSModel.exp
   Destination=%MAINDIR%\OTSModel.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSModel.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSModel.lib
   Destination=%MAINDIR%\OTSModel.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSModelSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSModelSharp.dll
   Destination=%MAINDIR%\OTSModelSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSModelSharp.dll.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSModelSharp.dll.config
   Destination=%MAINDIR%\OTSModelSharp.dll.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSPartA_STDEditor.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSPartA_STDEditor.exe
   Destination=%MAINDIR%\OTSPartA_STDEditor.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSPartA_STDEditor.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSPartA_STDEditor.exe.config
   Destination=%MAINDIR%\OTSPartA_STDEditor.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSPartA_STDEditor.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSPartA_STDEditor.pdb
   Destination=%MAINDIR%\OTSPartA_STDEditor.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSPeriodicTable.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSPeriodicTable.dll
   Destination=%MAINDIR%\OTSPeriodicTable.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSPeriodicTableApp.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSPeriodicTableApp.exe
   Destination=%MAINDIR%\OTSPeriodicTableApp.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSPeriodicTableApp.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSPeriodicTableApp.exe.config
   Destination=%MAINDIR%\OTSPeriodicTableApp.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSProgMgrInfo.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSProgMgrInfo.dll
   Destination=%MAINDIR%\OTSProgMgrInfo.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSRegister.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSRegister.exe
   Destination=%MAINDIR%\OTSRegister.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSRegister.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSRegister.exe.config
   Destination=%MAINDIR%\OTSRegister.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSRegister.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSRegister.pdb
   Destination=%MAINDIR%\OTSRegister.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSRptCalculate.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSRptCalculate.dll
   Destination=%MAINDIR%\OTSRptCalculate.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSRptCalculate.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSRptCalculate.exp
   Destination=%MAINDIR%\OTSRptCalculate.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSRptCalculate.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSRptCalculate.lib
   Destination=%MAINDIR%\OTSRptCalculate.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSRptCalculate.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSRptCalculate.pdb
   Destination=%MAINDIR%\OTSRptCalculate.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSSQLiteDll.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSSQLiteDll.dll
   Destination=%MAINDIR%\OTSSQLiteDll.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSSQLiteDll.dll.metagen
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSSQLiteDll.dll.metagen
   Destination=%MAINDIR%\OTSSQLiteDll.dll.metagen
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSSQLiteDll.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSSQLiteDll.exp
   Destination=%MAINDIR%\OTSSQLiteDll.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSSQLiteDll.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSSQLiteDll.lib
   Destination=%MAINDIR%\OTSSQLiteDll.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSSQLiteDll.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSSQLiteDll.pdb
   Destination=%MAINDIR%\OTSSQLiteDll.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSSysMgrApp.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSSysMgrApp.exe
   Destination=%MAINDIR%\OTSSysMgrApp.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSSysMgrApp.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSSysMgrApp.exe.config
   Destination=%MAINDIR%\OTSSysMgrApp.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSSysMgrApp.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSSysMgrApp.pdb
   Destination=%MAINDIR%\OTSSysMgrApp.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\OTSSysMgrTools.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\OTSSysMgrTools.dll
   Destination=%MAINDIR%\OTSSysMgrTools.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\ParallelExtensionsExtras.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ParallelExtensionsExtras.dll
   Destination=%MAINDIR%\ParallelExtensionsExtras.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\ProfilerOBJ.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ProfilerOBJ.dll
   Destination=%MAINDIR%\ProfilerOBJ.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\RegistrationAuthorization.exe
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\RegistrationAuthorization.exe
   Destination=%MAINDIR%\RegistrationAuthorization.exe
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\RegistrationAuthorization.exe.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\RegistrationAuthorization.exe.config
   Destination=%MAINDIR%\RegistrationAuthorization.exe.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\RegistrationAuthorization.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\RegistrationAuthorization.pdb
   Destination=%MAINDIR%\RegistrationAuthorization.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\ReportTemplateExe\ReportTemplate\language.db
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ReportTemplateExe\ReportTemplate\language.db
   Destination=%MAINDIR%\ReportTemplateExe\ReportTemplate\language.db
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\ReportTemplateExe\ReportTemplate\ReportTemplateConfig.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ReportTemplateExe\ReportTemplate\ReportTemplateConfig.xml
   Destination=%MAINDIR%\ReportTemplateExe\ReportTemplate\ReportTemplateConfig.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Add Sample321.png
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Add Sample321.png
   Destination=%MAINDIR%\Resources\Add Sample321.png
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\charts.html
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\charts.html
   Destination=%MAINDIR%\Resources\Html\charts.html
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\chartsMore.html
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\chartsMore.html
   Destination=%MAINDIR%\Resources\Html\chartsMore.html
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\chartsTest.html
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\chartsTest.html
   Destination=%MAINDIR%\Resources\Html\chartsTest.html
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\css\jquery-labelauty.css
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\css\jquery-labelauty.css
   Destination=%MAINDIR%\Resources\Html\css\jquery-labelauty.css
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\images\input-checked.png
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\images\input-checked.png
   Destination=%MAINDIR%\Resources\Html\images\input-checked.png
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\images\input-unchecked.png
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\images\input-unchecked.png
   Destination=%MAINDIR%\Resources\Html\images\input-unchecked.png
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\js\echarts.js
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\js\echarts.js
   Destination=%MAINDIR%\Resources\Html\js\echarts.js
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\js\echartsgl.js
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\js\echartsgl.js
   Destination=%MAINDIR%\Resources\Html\js\echartsgl.js
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\js\jquery-3.4.1.js
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\js\jquery-3.4.1.js
   Destination=%MAINDIR%\Resources\Html\js\jquery-3.4.1.js
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\js\jquery-labelauty.js
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\js\jquery-labelauty.js
   Destination=%MAINDIR%\Resources\Html\js\jquery-labelauty.js
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611114471.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611114471.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611114471.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611124975.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611124975.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611124975.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611192241.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611192241.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611192241.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611193779.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611193779.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611193779.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611204910.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611204910.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611204910.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611214745.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611214745.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611214745.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611222014.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611222014.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611222014.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611255526.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611255526.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611255526.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611353267.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611353267.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611353267.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611393084.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611393084.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611393084.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611502312.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611502312.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611502312.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611504413.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611504413.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611504413.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611524440.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611524440.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611524440.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611525059.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611525059.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611525059.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611530361.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611530361.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611530361.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611531019.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611531019.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611531019.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611531648.jpg
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\Html\pic\headdemo2019082611531648.jpg
   Destination=%MAINDIR%\Resources\Html\pic\headdemo2019082611531648.jpg
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\ReportTemplate\VDA19.rmf
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\ReportTemplate\VDA19.rmf
   Destination=%MAINDIR%\Resources\ReportTemplate\VDA19.rmf
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\XMLData\AppResource_EN.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\XMLData\AppResource_EN.xml
   Destination=%MAINDIR%\Resources\XMLData\AppResource_EN.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\XMLData\AppResource_ZH.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\XMLData\AppResource_ZH.xml
   Destination=%MAINDIR%\Resources\XMLData\AppResource_ZH.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\XMLData\LanguageDefine.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\XMLData\LanguageDefine.xml
   Destination=%MAINDIR%\Resources\XMLData\LanguageDefine.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\XMLData\ResourceForMeasureSourceGrid-EN.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\XMLData\ResourceForMeasureSourceGrid-EN.xml
   Destination=%MAINDIR%\Resources\XMLData\ResourceForMeasureSourceGrid-EN.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\XMLData\ResourceForMeasureSourceGrid-ZH.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\XMLData\ResourceForMeasureSourceGrid-ZH.xml
   Destination=%MAINDIR%\Resources\XMLData\ResourceForMeasureSourceGrid-ZH.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\XMLData\ResourceForSTDManage-EN.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\XMLData\ResourceForSTDManage-EN.xml
   Destination=%MAINDIR%\Resources\XMLData\ResourceForSTDManage-EN.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\XMLData\ResourceForSTDManage-ZH.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\XMLData\ResourceForSTDManage-ZH.xml
   Destination=%MAINDIR%\Resources\XMLData\ResourceForSTDManage-ZH.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Resources\文档输出图标.png
-  Destination=%MAINDIR%\Resources\文档输出图标.png
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Resources\文档输出图标.PNG
+  Destination=%MAINDIR%\Resources\文档输出图标.PNG
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\runtimes\win-x64\native\e_sqlite3.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.Data.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.Data.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.DataAccess.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.DataAccess.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.DataAccess.v21.2.UI.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.DataAccess.v21.2.UI.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.Diagram.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.Diagram.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.Office.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.Office.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.Pdf.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.Pdf.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.PivotGrid.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.PivotGrid.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.Printing.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.Printing.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.RichEdit.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.RichEdit.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.Sparkline.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.Sparkline.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.Utils.v21.2.UI.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.Utils.v21.2.UI.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.Xpo.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.Xpo.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraBars.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraBars.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraCharts.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraCharts.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraCharts.v21.2.Wizard.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraCharts.v21.2.Wizard.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraEditors.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraEditors.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraGauges.v21.2.Core.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraGauges.v21.2.Core.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraLayout.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraLayout.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraNavBar.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraNavBar.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraPivotGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraPivotGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraPrinting.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraPrinting.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraReports.v21.2.Extensions.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraReports.v21.2.Extensions.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraReports.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraReports.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraRichEdit.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraRichEdit.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraTreeList.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraTreeList.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ru\DevExpress.XtraVerticalGrid.v21.2.resources.dll
+  Destination=%MAINDIR%\ru\DevExpress.XtraVerticalGrid.v21.2.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\runtimes\win-x64\native\e_sqlite3.dll
   Destination=%MAINDIR%\runtimes\win-x64\native\e_sqlite3.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\runtimes\win-x86\native\e_sqlite3.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\runtimes\win-x86\native\e_sqlite3.dll
   Destination=%MAINDIR%\runtimes\win-x86\native\e_sqlite3.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SlmRuntimeCSharp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SlmRuntimeCSharp.dll
   Destination=%MAINDIR%\SlmRuntimeCSharp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SlmRuntimeCSharp.dll.config
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SlmRuntimeCSharp.dll.config
   Destination=%MAINDIR%\SlmRuntimeCSharp.dll.config
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SmartAssembly.ReportUsage.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SmartAssembly.ReportUsage.dll
   Destination=%MAINDIR%\SmartAssembly.ReportUsage.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SmartUsageCore.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SmartUsageCore.dll
   Destination=%MAINDIR%\SmartUsageCore.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\snapshot_blob.bin
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\snapshot_blob.bin
   Destination=%MAINDIR%\snapshot_blob.bin
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SourceGrid.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SourceGrid.dll
   Destination=%MAINDIR%\SourceGrid.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLite.Interop.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLite.Interop.dll
   Destination=%MAINDIR%\SQLite.Interop.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLite3Dll.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLite3Dll.dll
   Destination=%MAINDIR%\SQLite3Dll.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLite3Dll.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLite3Dll.exp
   Destination=%MAINDIR%\SQLite3Dll.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLite3Dll.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLite3Dll.lib
   Destination=%MAINDIR%\SQLite3Dll.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLite3Win64Dll.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLite3Win64Dll.dll
   Destination=%MAINDIR%\SQLite3Win64Dll.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLite3Win64Dll.exp
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLite3Win64Dll.exp
   Destination=%MAINDIR%\SQLite3Win64Dll.exp
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLite3Win64Dll.lib
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLite3Win64Dll.lib
   Destination=%MAINDIR%\SQLite3Win64Dll.lib
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLite3Win64Dll.pdb
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLite3Win64Dll.pdb
   Destination=%MAINDIR%\SQLite3Win64Dll.pdb
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLitePCLRaw.batteries_v2.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLitePCLRaw.batteries_v2.dll
   Destination=%MAINDIR%\SQLitePCLRaw.batteries_v2.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLitePCLRaw.core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLitePCLRaw.core.dll
   Destination=%MAINDIR%\SQLitePCLRaw.core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLitePCLRaw.nativelibrary.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLitePCLRaw.nativelibrary.dll
   Destination=%MAINDIR%\SQLitePCLRaw.nativelibrary.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\SQLitePCLRaw.provider.dynamic_cdecl.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\SQLitePCLRaw.provider.dynamic_cdecl.dll
   Destination=%MAINDIR%\SQLitePCLRaw.provider.dynamic_cdecl.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\stdole.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\stdole.dll
   Destination=%MAINDIR%\stdole.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Buffers.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Buffers.dll
   Destination=%MAINDIR%\System.Buffers.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Buffers.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Buffers.xml
   Destination=%MAINDIR%\System.Buffers.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Collections.Immutable.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Collections.Immutable.dll
   Destination=%MAINDIR%\System.Collections.Immutable.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.configuration.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.configuration.dll
   Destination=%MAINDIR%\System.configuration.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Core.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Core.dll
   Destination=%MAINDIR%\System.Core.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Data.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Data.dll
   Destination=%MAINDIR%\System.Data.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Data.Linq.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Data.Linq.dll
   Destination=%MAINDIR%\System.Data.Linq.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Data.SQLite.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Data.SQLite.dll
   Destination=%MAINDIR%\System.Data.SQLite.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Data.SQLite.EF6.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Data.SQLite.EF6.dll
   Destination=%MAINDIR%\System.Data.SQLite.EF6.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Data.SQLite.Linq.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Data.SQLite.Linq.dll
   Destination=%MAINDIR%\System.Data.SQLite.Linq.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Data.SQLite.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Data.SQLite.xml
   Destination=%MAINDIR%\System.Data.SQLite.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.dll
   Destination=%MAINDIR%\System.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Drawing.Common.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Drawing.Common.dll
   Destination=%MAINDIR%\System.Drawing.Common.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Drawing.Common.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Drawing.Common.xml
   Destination=%MAINDIR%\System.Drawing.Common.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Drawing.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Drawing.dll
   Destination=%MAINDIR%\System.Drawing.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Memory.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Memory.dll
   Destination=%MAINDIR%\System.Memory.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Memory.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Memory.xml
   Destination=%MAINDIR%\System.Memory.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Numerics.Vectors.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Numerics.Vectors.dll
   Destination=%MAINDIR%\System.Numerics.Vectors.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Numerics.Vectors.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Numerics.Vectors.xml
   Destination=%MAINDIR%\System.Numerics.Vectors.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Reactive.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Reactive.dll
   Destination=%MAINDIR%\System.Reactive.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Runtime.CompilerServices.Unsafe.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Runtime.CompilerServices.Unsafe.dll
   Destination=%MAINDIR%\System.Runtime.CompilerServices.Unsafe.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Runtime.CompilerServices.Unsafe.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Runtime.CompilerServices.Unsafe.xml
   Destination=%MAINDIR%\System.Runtime.CompilerServices.Unsafe.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Threading.Tasks.Extensions.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Threading.Tasks.Extensions.dll
   Destination=%MAINDIR%\System.Threading.Tasks.Extensions.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.ValueTuple.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.ValueTuple.dll
   Destination=%MAINDIR%\System.ValueTuple.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.ValueTuple.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.ValueTuple.xml
   Destination=%MAINDIR%\System.ValueTuple.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Windows.Forms.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Windows.Forms.dll
   Destination=%MAINDIR%\System.Windows.Forms.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.Windows.Forms.Ribbon.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.Windows.Forms.Ribbon.dll
   Destination=%MAINDIR%\System.Windows.Forms.Ribbon.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.xml
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.xml
   Destination=%MAINDIR%\System.xml
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\System.XML.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\System.XML.dll
   Destination=%MAINDIR%\System.XML.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\ThermoScientific.File.Emsa.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ThermoScientific.File.Emsa.dll
   Destination=%MAINDIR%\ThermoScientific.File.Emsa.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\ThermoScientific.Quant.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\ThermoScientific.Quant.dll
   Destination=%MAINDIR%\ThermoScientific.Quant.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\UserAllocators.NLB
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\UserAllocators.NLB
   Destination=%MAINDIR%\UserAllocators.NLB
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\Version.txt
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\Version.txt
   Destination=%MAINDIR%\Version.txt
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\widevinecdmadapter.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\widevinecdmadapter.dll
   Destination=%MAINDIR%\widevinecdmadapter.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\WindowsBase.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\WindowsBase.dll
   Destination=%MAINDIR%\WindowsBase.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x64\OINA.Ipp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x64\OINA.Ipp.dll
   Destination=%MAINDIR%\x64\OINA.Ipp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x64\OINA.Ipp.Native.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x64\OINA.Ipp.Native.dll
   Destination=%MAINDIR%\x64\OINA.Ipp.Native.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x64\OINA.Ipp.Native.Legacy.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x64\OINA.Ipp.Native.Legacy.dll
   Destination=%MAINDIR%\x64\OINA.Ipp.Native.Legacy.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x64\OINA.Native.Ipp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x64\OINA.Native.Ipp.dll
   Destination=%MAINDIR%\x64\OINA.Native.Ipp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x64\OINA.Native.Mkl.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x64\OINA.Native.Mkl.dll
   Destination=%MAINDIR%\x64\OINA.Native.Mkl.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x64\slm_runtime.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x64\slm_runtime.dll
   Destination=%MAINDIR%\x64\slm_runtime.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x64\slm_runtime_dev.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x64\slm_runtime_dev.dll
   Destination=%MAINDIR%\x64\slm_runtime_dev.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x64\SQLite.Interop.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x64\SQLite.Interop.dll
   Destination=%MAINDIR%\x64\SQLite.Interop.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x64\System.Data.SQLite.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x64\System.Data.SQLite.dll
   Destination=%MAINDIR%\x64\System.Data.SQLite.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x86\OINA.Ipp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x86\OINA.Ipp.dll
   Destination=%MAINDIR%\x86\OINA.Ipp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x86\OINA.Ipp.Native.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x86\OINA.Ipp.Native.dll
   Destination=%MAINDIR%\x86\OINA.Ipp.Native.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x86\OINA.Ipp.Native.Legacy.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x86\OINA.Ipp.Native.Legacy.dll
   Destination=%MAINDIR%\x86\OINA.Ipp.Native.Legacy.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x86\OINA.Native.Ipp.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x86\OINA.Native.Ipp.dll
   Destination=%MAINDIR%\x86\OINA.Native.Ipp.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x86\OINA.Native.Mkl.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x86\OINA.Native.Mkl.dll
   Destination=%MAINDIR%\x86\OINA.Native.Mkl.dll
   Flags=0001000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x86\slm_runtime.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x86\slm_runtime.dll
   Destination=%MAINDIR%\x86\slm_runtime.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x86\slm_runtime_dev.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x86\slm_runtime_dev.dll
   Destination=%MAINDIR%\x86\slm_runtime_dev.dll
   Flags=0000000010000010
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x86\SQLite.Interop.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x86\SQLite.Interop.dll
   Destination=%MAINDIR%\x86\SQLite.Interop.dll
   Flags=0000000010000011
 end
 item: Install File
-  Source=j:\Ots\OTSsrc\Bin\x64\Release_oxford61\x86\System.Data.SQLite.dll
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\x86\System.Data.SQLite.dll
   Destination=%MAINDIR%\x86\System.Data.SQLite.dll
   Flags=0001000010000011
 end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\zh-Hans\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll
+  Destination=%MAINDIR%\zh-Hans\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\zh-Hans\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll
+  Destination=%MAINDIR%\zh-Hans\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.resources.dll
+  Flags=0001000010000011
+end
+item: Install File
+  Source=j:\Ots\OTSReleaseSrc\Bin\x64\Release_oxford61\zh-Hans\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+  Destination=%MAINDIR%\zh-Hans\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+  Flags=0001000010000011
+end
 item: Remark
 end
 item: Remark

+ 720 - 0
OTSCPP/OTSControl/Oxford/OTSOxfordImpl.cpp

@@ -0,0 +1,720 @@
+#include "stdafx.h"
+#include "OTSOxfordImpl.h"
+#include "ControllerHelper.h"
+#include "COTSUtilityDllFunExport.h"
+#include "OxfordImplConst.h"
+
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+#include <Oxford/OxfordWrapper/OxfordControllerWrapper.h>
+
+ namespace OTSController
+{
+
+
+    OxfordImpl::OxfordImpl(void)
+    {
+		if (ManagedGlobals::oxfordController == nullptr)
+		{
+			ManagedGlobals::oxfordController = gcnew OxfordControllerWrapper();
+			m_bInit = false;
+		}
+    }
+
+    OxfordImpl::~OxfordImpl(void)
+    {
+		CloseClient();
+		
+    }
+
+	void OxfordImpl::CloseClient(void)
+	{
+
+		ManagedGlobals::oxfordController->CloseClient();
+		
+	}
+
+    bool OxfordImpl::Connect()
+    {
+
+		if (!m_bInit)
+		{
+		
+			
+			if (!ManagedGlobals::oxfordController->Init())
+			{
+			
+				 return false;
+			}
+
+			if (!ManagedGlobals::oxfordController->IsConnected())
+			{
+			
+				return false;
+			}
+
+			
+			m_bInit = true;
+		}
+          
+		
+
+        return m_bInit;
+    }
+
+	bool OxfordImpl::DisConnect()
+	{
+		if (m_bInit)
+		{
+			CloseClient();
+			m_bInit = false;
+		}
+		
+		return true;
+	}
+
+    bool OxfordImpl::IsConnected()
+    {
+        if (m_bInit)
+        {
+
+
+			if (!ManagedGlobals::oxfordController->IsConnected())
+			{
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+
+
+
+    }
+
+    bool OxfordImpl::GetPositionXY(double& a_dPosX, double& a_dPosY)
+    {
+        if (m_bInit)
+        {
+			
+
+			if (!ManagedGlobals::oxfordController->GetPositionXY(a_dPosX, a_dPosY))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("GetPositionXY command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::SetPositionXY(double a_dPosX, double a_dPosY)
+    {
+        if (m_bInit)
+        {
+			
+
+			if (!ManagedGlobals::oxfordController->SetPositionXY(a_dPosX, a_dPosY))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetPositionXY command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::GetWorkingDistance(double& a_dWorkingDistance)
+    {
+        if ( m_bInit)
+        {
+			
+			if (!ManagedGlobals::oxfordController->GetWorkingDistance(a_dWorkingDistance))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("GetWorkingDistance command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::SetWorkingDistance(double a_dWorkingDistance)
+    {
+        if (m_bInit)
+        {
+			
+
+			if (!ManagedGlobals::oxfordController->SetWorkingDistance(a_dWorkingDistance))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetWorkingDistance command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::GetMagnification(double& a_dMagnification)
+    {
+        if (m_bInit)
+        {
+		
+
+			if (!ManagedGlobals::oxfordController->GetMagnification(a_dMagnification))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("GetMagnification command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::SetMagnification(double a_dMagnification)
+    {
+        if (m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->SetMagnification(a_dMagnification))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetMagnification command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::GetHighVoltage(double& a_dHighVoltage)
+    {
+        if ( m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->GetHighVoltage(a_dHighVoltage))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("GetHighVoltage command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::SetHighVoltage(double a_dHighVoltage)
+    {
+        if (m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->SetHighVoltage(a_dHighVoltage))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetHighVoltage command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::GetBeamOn(bool& a_bBeamOn)
+    {
+        if (m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->GetBeamOn(a_bBeamOn))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("GetBeamOn command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::SetBeamOn(bool a_bBeamOn)
+    {
+        if ( m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->SetBeamOn(a_bBeamOn))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetBeamOn command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::GetBeamBlank(bool& a_bBeamBlank)
+    {
+        if ( m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->GetBeamBlank(a_bBeamBlank))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("GetBeamBlank command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::SetBeamBlank(bool a_bBeamBlank)
+    {
+        if (m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->SetBeamBlank(a_bBeamBlank))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetBeamBlank command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::GetExternal(bool& a_bExternal)
+    {
+        if (m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->GetExternalScan(a_bExternal))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("GetExternal command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::SetExternal(bool a_bExternal)
+    {
+        if ( m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->SetExternalScan(a_bExternal))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetExternal command failed."));
+				return false;
+			}
+			CString s = __T("");
+				if (a_bExternal)
+				{
+					s = __T("On");
+				}
+				else
+				{
+					s = __T("Off");
+				}
+			LogWarn(__FILE__, __LINE__, _T("SetExternal: ") +s);
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::CollectXrayData(const long a_nAcTime, long* a_pnCounts, DWORD a_nBufferSize)
+    {
+        if (m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->CollectXrayPoint(a_nAcTime, a_pnCounts, a_nBufferSize))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("CollectXrayData command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::CollectXrayDataAtPos(const double a_dPosX, const double a_dPosY, const long a_nAcTime, long* a_pnCounts, DWORD a_nBufferSize)
+    {
+        if (m_bInit)
+        {
+
+			if (!ManagedGlobals::oxfordController->CollectXrayPoint(a_dPosX, a_dPosY, a_nAcTime, a_pnCounts, a_nBufferSize))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("CollectXrayDataAtPos command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+	bool OxfordImpl::StopCollectXrayData()
+	{
+		if (m_bInit)
+		{
+			if (!ManagedGlobals::oxfordController->StopXrayCollecting())
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("stopxraycollecting command failed."));
+				return false;
+			}
+
+			return true;
+		}
+
+		return false;
+	}
+
+    
+	
+
+
+    bool OxfordImpl::SetBeamPosition(const double a_dPosX, const double a_dPosY)
+    {
+        if ( m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->SetBeamPosition(a_dPosX, a_dPosY))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetBeamPosition command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::SetScanSpeed(const long a_nMilliseconds)
+    {
+        if (m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->SetScanSpeed(a_nMilliseconds))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetScanSpeed command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::GetImageSize(long& a_nWidth, long& a_nHeight)
+    {
+        if ( m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->GetImageSize(a_nWidth, a_nHeight))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("GetImageSize command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::SetImageSize(const long a_nWidth, const long a_nHeight)
+    {
+        if (m_bInit)
+        {
+
+			if (!ManagedGlobals::oxfordController->SetImageSize(a_nWidth, a_nHeight))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("SetImageSize command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+    bool OxfordImpl::CollectImage(BYTE* a_pImageBits)
+    {
+        if (m_bInit)
+        {
+			if (!ManagedGlobals::oxfordController->CollectImage(a_pImageBits))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("CollectImage command failed."));
+				return false;
+			}
+
+			return true;
+        }
+
+        return false;
+    }
+
+	bool OxfordImpl::QuantifySpectrum(unsigned char* cResult)
+	{
+		if ( m_bInit)
+		{
+			if (!ManagedGlobals::oxfordController->QuantifySpectrum(cResult))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("CollectImage command failed."));
+				return false;
+			}
+
+			return true;
+		}
+
+		return false;
+	}
+
+
+	BOOL OxfordImpl::GetXRayByPoints(CPosXraysList& a_listXrayPois, DWORD a_nACTimeMS)
+	{
+			// do nothing if points list is empty
+			if (a_listXrayPois.empty())
+			{
+				// points list is empty
+				LogTrace(__FILE__, __LINE__, _T("COTSOxfordImpl::GetXRayByPoints: poits list is empty."));
+				return TRUE;
+			}
+
+			// create array of BrukerSegment
+			long nCollectCount = (long)a_listXrayPois.size();
+			OxfordXrayData* segmentArray(new OxfordXrayData[nCollectCount]);
+			
+			for (int i = 0; i < nCollectCount; ++i)
+			{
+				CPoint poi = a_listXrayPois[i]->GetPosition();
+				segmentArray[i].m_nPosX = poi.x;
+				segmentArray[i].m_nPosY = poi.y;
+			}
+
+			if (!ManagedGlobals::oxfordController->CollectXrayPoints(a_nACTimeMS, segmentArray, nCollectCount, GENERALXRAYCHANNELS))
+			{
+				LogErrorTrace(__FILE__, __LINE__, _T("CollectXrayList command failed."));
+				return (int)OxfordWrapperErrorCode::COMMAND_FAILED;
+			}
+
+
+
+
+			// get the specs for a_vXPoints
+			for (int i = 0; i < nCollectCount; ++i)
+			{
+				// set spectrum data for the x-ray point
+				a_listXrayPois[i]->SetXrayData((DWORD*)(segmentArray[i].m_pXrayData));
+
+				if (m_bDoQuantification)
+				{
+					// quantify the spectrum
+					CElementChemistriesList vElement = CElement::ExtractElementChemistrys(CControllerHelper::CharToString((const char*)segmentArray[i].m_strElementResult));
+					a_listXrayPois[i]->SetElementQuantifyData(vElement);
+				}
+
+			}
+
+			
+			for (int i = 0; i < nCollectCount; ++i)
+			{
+				// check spectrum
+				DWORD nTatolXrayCount = a_listXrayPois[i]->GetTotalCount();
+				if (nTatolXrayCount < 20)
+				{
+					// captured an empty spectrum 
+					CPoint poi = a_listXrayPois[i]->GetPosition();
+					
+					// try to redo x-ray collection at the position
+					static DWORD nChannelData[GENERALXRAYCHANNELS];
+					memset(nChannelData, 0, sizeof(DWORD) * GENERALXRAYCHANNELS);
+
+				
+
+						if (!ManagedGlobals::oxfordController->CollectXrayPoint(a_nACTimeMS, (long*)nChannelData, GENERALXRAYCHANNELS))
+					{
+						// error
+						CString s;
+						s.Format(_T("Call CollectXRayPoint failed: index = %d(x:%d, y:%d))"), i, poi.x, poi.y);
+						LogErrorTrace(__FILE__,__LINE__,s);
+							
+
+						return false;
+					}
+
+					// set spectrum with new spectrum
+					a_listXrayPois[i]->SetXrayData(nChannelData);
+					nTatolXrayCount = a_listXrayPois[i]->GetTotalCount();
+					if (nTatolXrayCount < 20)
+					{
+						CString s1;
+						s1.Format(_T("Single point spectrum still low count (%d counts), index = %d(x:%d, y:%d.) This could be caused by charging."),
+							nTatolXrayCount, i, poi.x, poi.y);
+						LogTrace(__FILE__, __LINE__, s1);
+					}
+					else
+					{
+						CString s2;
+						s2.Format(_T("Single point spectrum collected successfully (%d counts), index = %d(x:%d, y:%d.)"),
+							nTatolXrayCount, i, poi.x, poi.y);
+						LogTrace(__FILE__, __LINE__, s2);
+					}
+				}
+			}
+			delete segmentArray;
+			// ok return TRUE
+			return TRUE;
+
+
+
+		// error, return false
+		return FALSE;
+	}
+
+
+	BOOL OxfordImpl::GetXRayByFeatures(CPosXraysList&a_listXrayPois, std::vector<BrukerFeature>& a_vFeatures, DWORD a_nXRayAQTime)
+	{
+		
+
+
+			// do nothing if points list is empty
+			if (a_listXrayPois.empty())
+			{
+				// points list is empty
+				LogTrace(__FILE__, __LINE__, _T("COTSOxfordImpl::GetXRayByPoints: poits list is empty."));
+				return TRUE;
+			}
+
+			if (a_listXrayPois.size() != a_vFeatures.size())
+			{
+				return FALSE;
+			}
+
+			// create array of BrukerSegment
+			long nCollectCount = (long)a_listXrayPois.size();
+
+
+			//convert the brukerfeature to oxfordfeature
+		   OxfordXrayData* features(new OxfordXrayData[nCollectCount]);
+
+			
+			int nTotalNum = 0;
+			for (size_t i = 0; i < a_listXrayPois.size(); i++)
+			{
+				long nSegmentCount = (long)a_vFeatures[i].SegmentCount;
+				features[i].m_nChordNum = nSegmentCount;
+				long nPixelCount = 0;
+				if (nSegmentCount > 0)
+				{
+					BrukerSegment* segs = a_vFeatures[i].pSegment;
+					for (int j = 0; j < nSegmentCount; j++)
+					{
+						features[i].m_ChordList[j].m_nX = segs[j].XStart;
+						features[i].m_ChordList[j].m_nY = segs[j].Y;
+						features[i].m_ChordList[j].m_nLength = segs[j].XCount;
+						nPixelCount += segs[j].XCount;
+					}
+
+					features[i].m_nPixelNum = nPixelCount;
+
+				}
+				else
+				{
+					// will generate according to the x-ray position
+					// this shouldn't happen
+									
+				}
+
+				nTotalNum += nPixelCount;
+			}	
+
+			int a_nACTimeMS = a_nXRayAQTime / nTotalNum;
+			
+
+
+			if (!ManagedGlobals::oxfordController->CollectXrayFeatures(a_nXRayAQTime, features, nCollectCount, GENERALXRAYCHANNELS))
+			{
+				LogTrace(__FILE__, __LINE__, _T("COTSOxfordImpl::GetXRayArea failed"));
+				return false;
+			}
+
+			
+
+			// get the specs for a_vXPoints
+			for (int i = 0; i < nCollectCount; ++i)
+			{
+				// set spectrum data for the x-ray point
+				a_listXrayPois[i]->SetXrayData((DWORD*)(features[i].m_pXrayData));
+
+				// set spectrum data for the x-ray point
+				if (m_bDoQuantification)
+				{
+					// quantify the spectrum
+					CElementChemistriesList vElement = CElement::ExtractElementChemistrys(CControllerHelper::CharToString((const char*)features[i].m_strElementResult));
+					a_listXrayPois[i]->SetElementQuantifyData(vElement);
+				}
+
+			}
+
+
+			for (int i = 0; i < nCollectCount; ++i)
+			{
+				// check spectrum
+				DWORD nTatolXrayCount = a_listXrayPois[i]->GetTotalCount();
+				if (nTatolXrayCount < 20)
+				{
+					// captured an empty spectrum 
+					CPoint poi = a_listXrayPois[i]->GetPosition();
+
+					// try to redo x-ray collection at the position
+					static DWORD nChannelData[GENERALXRAYCHANNELS];
+					memset(nChannelData, 0, sizeof(DWORD) * GENERALXRAYCHANNELS);
+
+
+					if (!ManagedGlobals::oxfordController->CollectXrayPoint(a_nXRayAQTime, (long*)nChannelData, GENERALXRAYCHANNELS))
+					{
+						LogErrorTrace(__FILE__, __LINE__, _T("CollectXrayData command failed."));
+						return false;
+					}
+
+
+					// set spectrum with new spectrum
+					a_listXrayPois[i]->SetXrayData(nChannelData);
+
+					nTatolXrayCount = a_listXrayPois[i]->GetTotalCount();
+
+					if (nTatolXrayCount < 20)
+					{
+						/*LogWarn(_T("Single point spectrum still low count (%d counts), index = %d(x:%d, y:%d.) This could be caused by charging."),
+							nTatolXrayCount, i, poi.x, poi.y);*/
+					}
+					else
+					{
+						/*LogWarn(_T("Single point spectrum collected successfully (%d counts), index = %d(x:%d, y:%d.)"),
+							nTatolXrayCount, i, poi.x, poi.y);*/
+					}
+				}
+			}
+			delete features;
+			return TRUE;
+
+	}
+}

+ 2367 - 0
OTSCPP/OTSControl/Oxford/OxfordWrapper/OxfordControllerWrapper.cpp

@@ -0,0 +1,2367 @@
+#include "stdafx.h"
+#include "OxfordControllerWrapper.h"
+#include "tinyxml2.h"
+#include "XMLSerialization.h"
+#include "COTSUtilityDllFunExport.h"
+using namespace System;
+using namespace System::Windows;
+using namespace System::Collections::Generic;
+using namespace System::Collections::ObjectModel;
+using namespace System::Collections::Specialized;
+using namespace System::ComponentModel;
+using namespace System::Windows::Forms;
+using namespace System::Threading;
+/// <summary>
+/// The oxford controller channels.
+/// Always collect xray by this channels.
+/// </summary>
+const int g_nOxfordControllerChannels = 4096;   // use 2k to collect xray spectrum
+const int g_nOxfordControllerProcessTime = 4;
+const int g_nOxfordControllerEnergyRange = 20;
+
+const int g_nOxfordControllerEventWaitTimerInt = 100;
+const int g_nOxfordControllerEventSleepTimerInt = 100;
+
+const long g_nMicrocopeConnectTimeOutMilliSeconds = 2000;
+
+// Oxford single point delay time(ms)
+const long g_nSinglePointCollectDelay = 3000;
+const long g_nSingleFeatureCollectDelay = 5000;
+const long g_nXrayControllerConnectTimeOutMilliSeconds =20000;
+const long g_nImageTimeOutMilliSeconds = 40000;
+const long g_nStageTimeOutMilliSeconds = 40000;
+
+
+
+OxfordControllerWrapper::OxfordControllerWrapper(void)
+	: m_bIsStageUpdated(false)
+	, m_bBeamPositionSet(false)
+{
+	//_dataType = ImageDataType::DataByte;
+
+	m_startControllerEvent = gcnew AutoResetEvent(false);
+	m_endControllerEvent = gcnew AutoResetEvent(false);
+
+}
+
+void OxfordControllerWrapper::CloseClient(void)
+{
+	if (_controllerThread && _controllerThread->IsAlive)
+	{
+		_oxfordControllerData.m_nCommand = OxfordControllerCommand::EXIT;
+		//_controllerThread->Abort();
+	}
+
+	
+	//_controllerThread = nullptr;
+	_microscopeController = nullptr;
+	_edSpectrumController = nullptr;
+	_imageAcqusitionController = nullptr;
+	_edsChordListController = nullptr;
+	_SEMQuantController = nullptr;
+	
+	
+}
+
+OxfordControllerWrapper::~OxfordControllerWrapper(void)
+{	
+	
+
+	CloseClient();
+}
+
+OxfordControllerWrapper::!OxfordControllerWrapper(void)
+{
+	
+	
+	CloseClient();
+}
+
+bool OxfordControllerWrapper::Init()
+{
+	if (_controllerThread != nullptr && _controllerThread->IsAlive)
+	{
+		return true;
+	}
+	_controllerThread = gcnew Thread(gcnew ThreadStart(this, &OxfordControllerWrapper::ControllerThreadFunction));
+	m_startControllerEvent->Reset();
+	m_endControllerEvent->Reset();
+
+	if (_microscopeController == nullptr)
+	{
+		auto ctrl = CreateMicroscopeController();
+		if (ctrl == nullptr) return false;
+	}
+
+	if (_edSpectrumController == nullptr)
+	{
+		auto ctrl1=CreateEdsSpectrumController();
+		if (ctrl1 == nullptr) return false;
+	}
+
+	if (_imageAcqusitionController == nullptr)
+	{
+		auto ctrl2=CreateImageAcqusitionController();
+		if (ctrl2 == nullptr) return false;
+	}
+
+	if (_edsChordListController == nullptr)
+	{
+		auto ctrl3=CreateChordlistController();
+		if (ctrl3 == nullptr) return false;
+	}
+	_controllerThread->Start();
+
+	return true;
+}
+
+void OxfordControllerWrapper::ControllerThreadFunction()
+{
+	
+
+	while (true)
+	{
+		while (true)
+		{
+			if (_oxfordControllerData.m_nCommand == OxfordControllerCommand::EXIT) break;
+				
+			if (m_startControllerEvent->WaitOne(0, true))
+			{
+				m_startControllerEvent->Reset();
+
+				break;
+			}
+
+ 			Application::DoEvents();
+			Thread::Sleep(g_nOxfordControllerEventSleepTimerInt);
+		}
+		if (_oxfordControllerData.m_nCommand == OxfordControllerCommand::EXIT) break;
+		switch (_oxfordControllerData.m_nCommand)
+		{
+
+
+
+		case OxfordControllerCommand::COLLECT_IMAGE:
+		{
+			if (!StartImageCollecting())
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+				m_endControllerEvent->Set();
+			}
+			else
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::WORKING;
+			}
+		}
+			
+		break;
+
+		case OxfordControllerCommand::COLLECT_XRAYPOINT:
+		{
+			auto edsController = CreateEdsSpectrumController();
+		
+			bool bRet = false;
+
+			if (edsController && _oxfordControllerData.m_pSpectrumData)
+			{
+				edsController->BeginMultipleAcquisition();
+				LogTrace(__FILE__,__LINE__,_T("BeginMultipleAcquisition...(single point)"));
+
+				if (SetBeamPosition(_oxfordControllerData.m_dBeamPositionX, _oxfordControllerData.m_dBeamPositionY))
+				{
+					bRet = StartXrayCollecting(_oxfordControllerData.m_nAcTime);
+				}
+			}
+
+			if (!bRet)
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+				m_endControllerEvent->Set();
+			}
+			else
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::WORKING;
+			}
+		}
+
+		break;
+
+		case OxfordControllerCommand::COLLECT_CURRENTXRAYPOINT:
+		{
+			auto edsController = CreateEdsSpectrumController();
+			
+
+			bool bRet = false;
+
+			if (edsController && _oxfordControllerData.m_pSpectrumData)
+			{
+				edsController->BeginMultipleAcquisition();
+				
+
+				if (m_bBeamPositionSet)
+				{
+					m_bBeamPositionSet = false;
+					bRet = true;
+				
+
+					Point pos(_oxfordControllerData.m_dBeamPositionX * _oxfordControllerData.m_dPixelSize, _oxfordControllerData.m_dBeamPositionY * _oxfordControllerData.m_dPixelSize);
+					auto edsSettings = GetEdsSpectrumSettings();
+					edsSettings->ScanSettings->AcquisitionRegion->CreatePointRegion(pos);
+				}
+				else
+				{
+					bRet = SetCurrentBeamPosition();
+					
+				}
+
+				if (bRet)
+				{
+					bRet = StartXrayCollecting(_oxfordControllerData.m_nAcTime);
+				}
+			}
+
+			if (!bRet)
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+				m_endControllerEvent->Set();
+			}
+			else
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::WORKING;
+			}
+		}
+
+		break;
+
+		case OxfordControllerCommand::COLLECT_XRAYPOINTS:
+		{
+			auto edsController = CreateEdsSpectrumController();
+			
+			if (!edsController || !_oxfordControllerData.m_pXrayDataList || _oxfordControllerData.m_nXrayDataCount <= 0)
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+				m_endControllerEvent->Set();
+			}
+			else
+			{
+				auto edsSettings = GetEdsSpectrumSettings();
+
+				_oxfordControllerData.m_nCollectedXrayCounts = 0;
+
+				_oxfordControllerData.m_nState = OxfordControllerState::WORKING;
+
+				edsController->BeginMultipleAcquisition();
+				
+
+				for (int i = 0; i < _oxfordControllerData.m_nXrayDataCount; ++i)
+				{
+					OxfordXrayData* pXrayData = &_oxfordControllerData.m_pXrayDataList[i];
+
+					// <note>Accept pixel position to convert to oxford normalized beam position</note>
+					Point pos(pXrayData->m_nPosX * _oxfordControllerData.m_dPixelSize, pXrayData->m_nPosY * _oxfordControllerData.m_dPixelSize);
+
+					edsSettings->EdSettings->AcquisitionMode = (EdAcquireMode)2;
+					edsSettings->EdSettings->AcquisitionTime = TimeSpan::FromMilliseconds(_oxfordControllerData.m_nAcTime);
+					edsSettings->EdSettings->ProcessTime = 5;
+					/*edsSettings->EdSettings->EnergyRange = 100;
+					edsSettings->EdSettings->NumberOfChannels = 1;*/
+
+					edsSettings->ScanSettings->AcquisitionRegion->CreatePointRegion(pos);
+
+					edsController->StartAcquisition(edsSettings);
+
+					
+				}
+			}
+		}
+
+		break;
+
+		case OxfordControllerCommand::COLLECT_XRAYCHOILDLIST:
+		{
+			auto edsController = CreateEdsSpectrumController();
+			
+			if (!edsController || !_oxfordControllerData.m_pXrayDataList || _oxfordControllerData.m_nXrayDataCount <= 0)
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+				m_endControllerEvent->Set();
+			}
+			else
+			{
+				auto edsSettings = GetEdsSpectrumSettings();
+
+				_oxfordControllerData.m_nCollectedXrayCounts = 0;
+				_oxfordControllerData.m_nState = OxfordControllerState::WORKING;
+
+				edsController->BeginMultipleAcquisition();				
+
+				_oxfordControllerData.m_nCollectedXrayCounts = 0;
+				
+				for (int i = 0; i < _oxfordControllerData.m_nXrayDataCount; i++)
+				{
+					List< OINA::Extender::Data::Chord^>^ chords = gcnew List<OINA::Extender::Data::Chord^>();
+
+					for (int j = 0; j < _oxfordControllerData.m_pXrayDataList[i].m_nChordNum; j++)
+					{
+						int X = _oxfordControllerData.m_pXrayDataList[i].m_ChordList[j].m_nX;
+						int Y = _oxfordControllerData.m_pXrayDataList[i].m_ChordList[j].m_nY;
+						int XLength = _oxfordControllerData.m_pXrayDataList[i].m_ChordList[j].m_nLength;
+						OINA::Extender::Data::Chord^ chord = gcnew OINA::Extender::Data::Chord(X, Y, XLength);
+						chords->Add(chord);						
+					}
+
+					OINA::Extender::Data::ChordList^ chordsList = gcnew OINA::Extender::Data::ChordList(chords, _oxfordControllerData.m_dPixelSize);//1/1024.0
+
+					edsSettings->ScanSettings->AcquisitionRegion->CreateChordListRegion(chordsList);
+					edsSettings->EdSettings->AcquisitionTime = TimeSpan::FromMilliseconds(_oxfordControllerData.m_nAcTime);
+
+					edsController->StartAcquisition(edsSettings);
+					
+
+				}				
+			}
+
+		}
+
+		break;
+
+		case OxfordControllerCommand::COLLECT_QUANTIFYSPECTRUM:
+
+			if (!StartImageCollecting())
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+				m_endControllerEvent->Set();
+			}
+			else
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::WORKING;
+			}
+
+			break;
+		case OxfordControllerCommand::SET_POSITIONXY:
+		{
+			if (SetPositionXYToController(_oxfordControllerData.m_dPositionX, _oxfordControllerData.m_dPositionY))
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+			}
+			else
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+			}
+			
+			
+
+			long nCollectedTime = 0;
+			while (!m_bIsStageUpdated)
+			{
+				Application::DoEvents();
+				
+				Thread::Sleep(g_nOxfordControllerEventSleepTimerInt);
+
+
+				
+				nCollectedTime += g_nOxfordControllerEventSleepTimerInt;
+				if (nCollectedTime > g_nStageTimeOutMilliSeconds)
+				{
+
+
+					_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+
+				
+
+					break;
+				}
+			}
+			Thread::Sleep(500);
+
+			m_endControllerEvent->Set();
+		}
+
+		break;
+		case OxfordControllerCommand::STOP_ACQUISITION:
+		{
+			auto edsController = CreateEdsSpectrumController();
+
+
+			while (edsController->IsAcquiring)
+			{
+				edsController->StopAcquisition();
+			}
+
+		}
+			break;
+		case OxfordControllerCommand::END_MULTIPLEACQUISITION:
+			{
+				auto edsController = CreateEdsSpectrumController();
+
+				while (edsController->IsAcquiring)
+				{
+					edsController->StopAcquisition();
+				}
+
+				edsController->EndMultipleAcquisition();
+
+			}
+
+		  break;
+		
+		}
+	}
+
+}
+
+bool OxfordControllerWrapper::IsConnected()
+{
+	if (IsMicroscopeColumnConnected()
+		&& IsMicroscopeStageConnected())
+	{
+		return true;
+	}
+	else
+	{
+		return false;
+	}
+
+	
+}
+
+bool OxfordControllerWrapper::IsMicroscopeColumnConnected()
+{
+	//auto microscopeController = this->CreateMicroscopeController();
+	if (_microscopeController != nullptr)
+	{
+		return _microscopeController->ColumnConnectionStatus->IsConnected;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::IsMicroscopeStageConnected()
+{
+	//auto microscopeController = this->CreateMicroscopeController();
+	if (_microscopeController != nullptr)
+	{
+		return _microscopeController->StageConnectionStatus->IsConnected;
+	}
+
+	return false;
+}
+
+IStageConditions^ OxfordControllerWrapper::GetStageConditions()
+{
+	if (!IsMicroscopeStageConnected())
+	{
+		return nullptr;
+	}
+
+	return _microscopeController->StageConditions;
+}
+
+bool OxfordControllerWrapper::GetPositionXY(double& a_dPosX, double& a_dPosY)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::GET_POSITIONXY;
+
+
+	double dX, dY;
+
+	if (GetPositionXYFromController(dX, dY))
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+		_oxfordControllerData.m_dPositionX = dX;
+		_oxfordControllerData.m_dPositionY = dY;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		a_dPosX = _oxfordControllerData.m_dPositionX;
+		a_dPosY = _oxfordControllerData.m_dPositionY;
+
+		return true;
+	}
+
+	return false;
+}
+
+/// <summary>
+/// Get position xy from controller
+/// </summary>
+/// <param name="a_dPosX">The double of position x.</param>
+/// <param name="a_dPosY">The double of position y.</param>
+/// <returns>
+/// Return the position xy from controller
+/// </returns>
+bool OxfordControllerWrapper::GetPositionXYFromController(double& a_dPosX, double& a_dPosY)
+{
+	if (!IsMicroscopeStageConnected())
+	{
+		return false;
+	}
+
+	while(!_microscopeController->StageCapabilities->StageX->CanRead)
+	{
+		Sleep(100);
+	}
+	a_dPosX = _microscopeController->StageConditions->StageX * 1000.0;
+
+	while(!_microscopeController->StageCapabilities->StageY->CanRead)
+	{
+		Sleep(100);
+	}
+	a_dPosY = _microscopeController->StageConditions->StageY * 1000.0;
+
+	return true;
+}
+
+/// <summary>
+/// Set the position xy
+/// </summary>
+/// <param name="a_dPosX">The double of position x.</param>
+/// <param name="a_dPosY">The double of position y.</param>
+/// <returns>TRUE if success, otherwise FALSE</returns>
+bool OxfordControllerWrapper::SetPositionXY(const double a_dPosX, const double a_dPosY)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::SET_POSITIONXY;
+
+	_oxfordControllerData.m_dPositionX = a_dPosX;
+	_oxfordControllerData.m_dPositionY = a_dPosY;
+	m_bIsStageUpdated = false;
+	m_startControllerEvent->Set();
+	long nCollectedTime = 0;
+	while (true)
+	{
+		
+			if (m_endControllerEvent->WaitOne(0, true))
+			{
+				m_endControllerEvent->Reset();
+				break;
+			}
+		
+
+
+		Application::DoEvents();
+		
+	}
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+	else
+	{
+
+		return false;
+	}
+
+
+	
+
+	
+}
+
+bool OxfordControllerWrapper::SetPositionXYToController(const double a_dPosX, const double a_dPosY)
+{
+	if (!IsMicroscopeStageConnected())
+	{
+		return false;
+	}
+
+	Dictionary<Stage, double>^ stageDictionary = gcnew Dictionary<Stage, double>;
+	stageDictionary->Add(Stage::StageX, a_dPosX / 1000.0);
+	stageDictionary->Add(Stage::StageY, a_dPosY / 1000.0);
+
+	_microscopeController->SetStageConditions(stageDictionary);
+
+	return true;
+}
+
+bool OxfordControllerWrapper::GetWorkingDistance(double& a_dWorkingDistance)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::GET_WORKINGDISTANCE;
+
+
+	double dWD = 0;
+
+	if (GetWorkingDistanceFromController(dWD))
+	{
+		_oxfordControllerData.m_dWorkingDistance = dWD;
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+	
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		a_dWorkingDistance = _oxfordControllerData.m_dWorkingDistance;
+
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::GetWorkingDistanceFromController(double& a_dWorkingDistance)
+{
+	if (!IsMicroscopeColumnConnected())
+	{
+		return false;
+	}
+
+	a_dWorkingDistance = _microscopeController->ColumnConditions->WorkingDistance;
+
+	return true;
+}
+
+bool OxfordControllerWrapper::SetWorkingDistance(double a_dWorkingDistance)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::SET_WORKINGDISTANCE;
+
+	_oxfordControllerData.m_dWorkingDistance = a_dWorkingDistance;
+
+
+	if (SetWorkingDistanceToController(_oxfordControllerData.m_dWorkingDistance))
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::SetWorkingDistanceToController(double a_dWorkingDistance)
+{
+	if (!IsMicroscopeColumnConnected())
+	{
+		return false;
+	}
+
+	Dictionary<Column, double>^ columnDictionary = gcnew Dictionary<Column, double>;
+	columnDictionary->Add(Column::WorkingDistance, a_dWorkingDistance);
+
+	_microscopeController->SetColumnConditions(columnDictionary);
+
+	return true;
+}
+
+bool OxfordControllerWrapper::GetMagnification(double& a_dMagnification)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::GET_MAGNIFICATION;
+
+
+	double dMag = 0;
+
+	if (GetMagnificationFromController(dMag))
+	{
+		_oxfordControllerData.m_dMagnification = dMag;
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+	
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		a_dMagnification = _oxfordControllerData.m_dMagnification;
+
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::GetMagnificationFromController(double& a_dMagnification)
+{
+	if (!IsMicroscopeColumnConnected())
+	{
+		return false;
+	}
+
+	a_dMagnification = _microscopeController->ColumnConditions->Magnification;
+	return true;
+}
+
+bool OxfordControllerWrapper::SetMagnification(double a_dMagnification)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::SET_MAGNIFICATION;
+
+	_oxfordControllerData.m_dMagnification = a_dMagnification;
+
+
+	if (SetMagnificationToController(_oxfordControllerData.m_dMagnification))
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+	
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::SetMagnificationToController(double a_dMagnification)
+{
+	if (!IsMicroscopeColumnConnected())
+	{
+		return false;
+	}
+
+	Dictionary<Column, double>^ columnDictionary = gcnew Dictionary<Column, double>;
+	columnDictionary->Add(Column::Magnification, a_dMagnification);
+
+	_microscopeController->SetColumnConditions(columnDictionary);
+
+	return true;
+}
+
+bool OxfordControllerWrapper::GetHighVoltage(double& a_dHighVoltage)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::GET_HIGHVOTAGE;
+
+
+	double dValue = 0;
+
+	if (GetHighVoltageFromController(dValue))
+	{
+		_oxfordControllerData.m_dHighVotage = dValue;
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+	
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		a_dHighVoltage = _oxfordControllerData.m_dHighVotage;
+
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::GetHighVoltageFromController(double& a_dHighVoltage)
+{
+	if (!IsMicroscopeColumnConnected())
+	{
+		return false;
+	}
+
+	a_dHighVoltage = _microscopeController->ColumnConditions->HighVoltage;
+	return true;
+}
+
+bool OxfordControllerWrapper::SetHighVoltage(double a_dHighVoltage)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::SET_HIGHVOTAGE;
+
+	_oxfordControllerData.m_dHighVotage = a_dHighVoltage;
+
+
+	if (SetHighVoltageToController(_oxfordControllerData.m_dHighVotage))
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::SetHighVoltageToController(double a_dHighVoltage)
+{
+	if (!IsMicroscopeColumnConnected())
+	{
+		return false;
+	}
+
+	Dictionary<Column, double>^ columnDictionary = gcnew Dictionary<Column, double>;
+	columnDictionary->Add(Column::HighVoltage, a_dHighVoltage);
+
+	_microscopeController->SetColumnConditions(columnDictionary);
+
+	return true;
+}
+
+bool OxfordControllerWrapper::GetBeamOn(bool& a_bBeamOn)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::GET_BEAMON;
+
+	//m_startControllerEvent->Set();
+
+	bool bValue;
+
+	if (GetBeamOnFromController(bValue))
+	{
+		_oxfordControllerData.m_bBeamOn = bValue;
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+	
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		a_bBeamOn = _oxfordControllerData.m_bBeamOn;
+
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::GetBeamOnFromController(bool& a_bBeamOn)
+{
+	if (!IsMicroscopeColumnConnected())
+	{
+		return false;
+	}
+
+	double dValue = _microscopeController->ColumnConditions->BeamOn;
+
+	// notice: false: 0.0 and true: 1.0
+	a_bBeamOn = dValue > 0.1;
+
+	return true;
+}
+
+bool OxfordControllerWrapper::SetBeamOn(bool a_bBeamOn)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::SET_BEAMON;
+
+	_oxfordControllerData.m_bBeamOn = a_bBeamOn;
+
+
+	if (SetBeamOnToController(_oxfordControllerData.m_bBeamOn))
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::SetBeamOnToController(bool a_bBeamOn)
+{
+	if (!IsConnected())
+	{
+		return false;
+	}
+
+	(void)a_bBeamOn;
+
+	return true;
+}
+
+bool OxfordControllerWrapper::GetBeamBlank(bool& a_bBeamBlank)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::GET_BEAMBLANK;
+
+
+	bool bValue;
+
+	if (GetBeamBlankFromController(bValue))
+	{
+		_oxfordControllerData.m_bBeamBlank = bValue;
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		a_bBeamBlank = _oxfordControllerData.m_bBeamBlank;
+
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::GetBeamBlankFromController(bool& a_bBeamBlank)
+{
+	if (!IsConnected())
+	{
+		return false;
+	}
+
+	// todo: get beam blank
+	a_bBeamBlank = true;
+
+	return true;
+}
+
+bool OxfordControllerWrapper::SetBeamBlank(bool a_bBeamBlank)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::SET_BEAMBLANK;
+
+	_oxfordControllerData.m_bBeamBlank = a_bBeamBlank;
+
+
+
+
+	if (SetBeamBlankToController(_oxfordControllerData.m_bBeamBlank))
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+	
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::SetBeamBlankToController(bool a_bBeamBlank)
+{
+	if (!IsConnected())
+	{
+		return false;
+	}
+
+	// todo: set beam blank
+	(void)a_bBeamBlank;
+	//try
+	//{
+	    //_microscopeController->ColumnConditions->BeamOn = a_bBeamBlank;
+	//}
+	//catch(...)
+	//{
+	//}
+
+	return true;
+}
+
+bool OxfordControllerWrapper::GetExternalScan(bool& a_bExternal)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::GET_EXTERNAL;
+
+
+
+	bool bValue;
+
+	if (GetExternalScanFromController(bValue))
+	{
+		_oxfordControllerData.m_bExternal = bValue;
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		a_bExternal = _oxfordControllerData.m_bExternal;
+
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::GetExternalScanFromController(bool& a_bExternal)
+{
+	if (!IsConnected())
+	{
+		return false;
+	}
+
+	a_bExternal = _microscopeController->IsInExternalScan;
+
+	return true;
+}
+
+bool OxfordControllerWrapper::SetExternalScan(bool a_bExternal)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::SET_EXTERNAL;
+
+	_oxfordControllerData.m_bExternal = a_bExternal;
+
+	
+	if (SetExternalScanToController(_oxfordControllerData.m_bExternal))
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	}
+	else
+	{
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	}
+
+	
+
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::SetExternalScanToController(bool a_bExternal)
+{
+	if (!IsConnected())
+	{
+		return false;
+	}
+
+	_microscopeController->SetExternalScan(a_bExternal);
+
+	return true;
+}
+
+/// <summary>
+/// Set the beam position
+/// </summary>
+/// <param name="a_dPosX">The double of position x.</param>
+/// <param name="a_dPosY">The double of position y.</param>
+/// <note>Accept pixel position to convert to oxford normalized beam position</note>
+/// <returns>TRUE if success, otherwise FALSE</returns>
+bool OxfordControllerWrapper::SetBeamPosition(const double a_dPosX, const double a_dPosY)
+{
+	auto edsSettings = GetEdsSpectrumSettings();
+	if (!edsSettings)
+	{
+		return false;
+	}
+
+	m_bBeamPositionSet = true;
+	_oxfordControllerData.m_dBeamPositionX = a_dPosX;
+	_oxfordControllerData.m_dBeamPositionY = a_dPosY;
+
+
+
+	return true;
+}
+
+bool OxfordControllerWrapper::SetCurrentBeamPosition()
+{
+	auto edsSettings = GetEdsSpectrumSettings();
+	if (!edsSettings)
+	{
+		return false;
+	}
+
+	auto ret = edsSettings->ScanSettings->AcquisitionRegion->CreateMicroscopeRegion();
+
+	return ret != nullptr;
+}
+
+bool OxfordControllerWrapper::StartXrayCollecting(const long a_nAcTimeMilliseconds)
+{
+	auto edsController = CreateEdsSpectrumController();
+	if (!edsController)
+	{
+		return false;
+	}
+
+	auto edsSettings = GetEdsSpectrumSettings();
+
+	/*edsSettings->EdSettings->AcquisitionTime = TimeSpan::FromMilliseconds(a_nAcTimeMilliseconds);
+	edsSettings->EdSettings->ProcessTime = 4;*/
+	edsSettings->EdSettings->AcquisitionMode = (EdAcquireMode)2;
+	edsSettings->EdSettings->AcquisitionTime = TimeSpan::FromMilliseconds(_oxfordControllerData.m_nAcTime);
+	edsSettings->EdSettings->ProcessTime = 5;
+
+	auto spectrum = edsController->StartAcquisition(edsSettings);
+
+	return spectrum != nullptr;
+}
+
+bool OxfordControllerWrapper::StopXrayCollecting()
+{
+	auto edsController = CreateEdsSpectrumController();
+	if (!edsController)
+	{
+		return false;
+	}
+
+	if (edsController->IsAcquiring)
+	{
+		edsController->StopAcquisition();
+	}
+
+	return !edsController->IsAcquiring;
+}
+void  OxfordControllerWrapper::XraySpectrumProcess(OINA::Extender::Data::Ed::IEdSpectrum^ spectrum)
+{
+	try
+	{
+
+		//Quantify processing
+		IEdSpectrumProcessing^ EdSpectrumProcessing = ProcessingFactory::CreateSpectrumProcessing();
+
+		// Use the autoIdSettings to define elements that are known or elements that you want to exclude. They also list elements that cannot be identified
+		IAutoIdSettings^ autoIdSettings = ProcessingFactory::CreateAutoIdSettings();
+
+		
+		EdSpectrumProcessing->IdentifyElements(spectrum, autoIdSettings);
+
+		ISEMQuantSettings^ settings = ProcessingFactory::CreateSEMQuantSettings();
+
+		// While it is possible to choose other elements, Oxygen is the only supported element by stoichiometry.
+		settings->CombinedElement = 8;
+		settings->Normalised = true;
+
+		ISEMQuantStatus^ quantStatus = EdSpectrumProcessing->SEMQuantifySpectrum(spectrum, settings);//(a_nChannelData, OIHelper::SEMQuantSettings);
+
+		IEnumerable<ISEMQuantResult^>^ Results = quantStatus->Results;
+
+		if (_oxfordControllerData.m_nCommand == OxfordControllerCommand::COLLECT_XRAYPOINT
+			|| _oxfordControllerData.m_nCommand == OxfordControllerCommand::COLLECT_CURRENTXRAYPOINT)
+		{
+			//Get element result for single point
+			auto ie = Results->GetEnumerator();
+
+			String^ Quant = gcnew String("");
+
+			while (ie->MoveNext())
+			{
+				ISEMQuantResult^ result = ie->Current;
+
+				if (result->WeightPercent != 0)
+				{
+					Quant += "Quant=";
+					Quant += ElementProperties::GetElementSymbol(result->AtomicNumber);
+					Quant += ",";
+					Quant += result->LineType.ToString();
+					Quant += ",";
+					Quant += result->WeightPercent.ToString();
+				}
+			}
+
+			_oxfordControllerData.m_sElementResult = Quant;
+			ConvertSpectrumData(spectrum, _oxfordControllerData.m_pSpectrumData, _oxfordControllerData.m_nBufferSize);
+
+			_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+
+			auto edsController = CreateEdsSpectrumController();
+			if (edsController)
+			{
+				edsController->EndMultipleAcquisition();
+				m_endControllerEvent->Set();
+
+			}
+		}
+		else
+		{
+
+			//Get element result for single point
+			auto ie = Results->GetEnumerator();
+
+			String^ Quant = gcnew String("");
+			while (ie->MoveNext())
+			{
+				ISEMQuantResult^ result = ie->Current;
+
+				if (result->WeightPercent != 0)
+				{
+					Quant += "Quant=";
+					Quant += ElementProperties::GetElementSymbol(result->AtomicNumber);
+					Quant += ",";
+					Quant += result->LineType.ToString();
+					Quant += ",";
+					Quant += result->WeightPercent.ToString();
+					Quant += "\n";
+				}
+			}
+
+			CString msg = Quant;
+			unsigned char* dst = _oxfordControllerData.m_pXrayDataList[_oxfordControllerData.m_nCollectedXrayCounts].m_strElementResult;
+			for (int i = 0; i < msg.GetLength(); i++)
+			{
+				dst[i] = (unsigned char)msg.GetAt(i);
+			}
+
+			ConvertSpectrumData(spectrum, _oxfordControllerData.m_pXrayDataList[_oxfordControllerData.m_nCollectedXrayCounts].m_pXrayData, _oxfordControllerData.m_nBufferSize);
+
+
+
+			_oxfordControllerData.m_nCollectedXrayCounts++;
+			if (_oxfordControllerData.m_nCollectedXrayCounts == _oxfordControllerData.m_nXrayDataCount)
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+
+				auto edsController = CreateEdsSpectrumController();
+				if (edsController)
+				{
+					edsController->EndMultipleAcquisition();
+					m_endControllerEvent->Set();
+
+				}
+			}
+		}
+	}
+	catch (Exception^ ex)
+	{
+		CString sMessage(_T("OnXrayAcquisitionFinished failed") + ex->ToString());
+
+		LogErrorTrace(__FILE__, __LINE__, sMessage);
+	}
+
+}
+void OxfordControllerWrapper::OnXrayAcquisitionFinished(Object^ sender, OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<OINA::Extender::Data::Ed::IEdSpectrum^>^ e)
+{
+	try
+	{
+
+		//Quantify processing
+		IEdSpectrumProcessing^ EdSpectrumProcessing = ProcessingFactory::CreateSpectrumProcessing();
+
+		// Use the autoIdSettings to define elements that are known or elements that you want to exclude. They also list elements that cannot be identified
+		IAutoIdSettings^ autoIdSettings = ProcessingFactory::CreateAutoIdSettings();
+		 
+		
+
+		EdSpectrumProcessing->IdentifyElements(e->Value, autoIdSettings);
+
+		ISEMQuantSettings^ settings = ProcessingFactory::CreateSEMQuantSettings();
+
+		// While it is possible to choose other elements, Oxygen is the only supported element by stoichiometry.
+		settings->CombinedElement = 8;
+		settings->Normalised = true;
+
+		ISEMQuantStatus^ quantStatus = EdSpectrumProcessing->SEMQuantifySpectrum(e->Value, settings);//(a_nChannelData, OIHelper::SEMQuantSettings);
+
+		IEnumerable<ISEMQuantResult^>^ Results = quantStatus->Results;
+
+		if (_oxfordControllerData.m_nCommand == OxfordControllerCommand::COLLECT_XRAYPOINT
+			|| _oxfordControllerData.m_nCommand == OxfordControllerCommand::COLLECT_CURRENTXRAYPOINT)
+		{
+			//Get element result for single point
+			auto ie = Results->GetEnumerator();
+
+			String^ Quant = gcnew String("");
+
+			while (ie->MoveNext())
+			{
+				ISEMQuantResult^ result = ie->Current;
+
+				if (result->WeightPercent != 0)
+				{
+					Quant += "Quant=";
+					Quant += ElementProperties::GetElementSymbol(result->AtomicNumber);
+					Quant += ",";
+					Quant += result->LineType.ToString();
+					Quant += ",";
+					Quant += result->WeightPercent.ToString();
+				}
+			}
+
+			_oxfordControllerData.m_sElementResult = Quant;
+			ConvertSpectrumData(e->Value, _oxfordControllerData.m_pSpectrumData, _oxfordControllerData.m_nBufferSize);
+
+			_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+
+			auto edsController = CreateEdsSpectrumController();
+			if (edsController)
+			{
+				edsController->EndMultipleAcquisition();
+				m_endControllerEvent->Set();
+
+			}
+		}
+		else
+		{
+
+			//Get element result for single point
+			auto ie = Results->GetEnumerator();
+
+			String^ Quant = gcnew String("");
+			while (ie->MoveNext())
+			{
+				ISEMQuantResult^ result = ie->Current;
+
+				if (result->WeightPercent != 0)
+				{
+					Quant += "Quant=";
+					Quant += ElementProperties::GetElementSymbol(result->AtomicNumber);
+					Quant += ",";
+					Quant += result->LineType.ToString();
+					Quant += ",";
+					Quant += result->WeightPercent.ToString();
+					Quant += "\n";
+				}
+			}
+
+			CString msg = Quant;
+			if (_oxfordControllerData.m_pXrayDataList == NULL)
+			{
+				return;
+			}
+			unsigned char* dst = _oxfordControllerData.m_pXrayDataList[_oxfordControllerData.m_nCollectedXrayCounts].m_strElementResult;
+			
+			for (int i = 0; i < msg.GetLength(); i++)
+			{
+				dst[i] = (unsigned char)msg.GetAt(i);
+			}
+
+			ConvertSpectrumData(e->Value, _oxfordControllerData.m_pXrayDataList[_oxfordControllerData.m_nCollectedXrayCounts].m_pXrayData, _oxfordControllerData.m_nBufferSize);
+
+
+
+			_oxfordControllerData.m_nCollectedXrayCounts++;
+			if (_oxfordControllerData.m_nCollectedXrayCounts == _oxfordControllerData.m_nXrayDataCount)
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+
+				auto edsController = CreateEdsSpectrumController();
+				if (edsController)
+				{
+					edsController->EndMultipleAcquisition();
+					m_endControllerEvent->Set();
+
+				}
+			}
+		}
+	}
+	catch (Exception^ ex)
+	{
+		CString sMessage(_T("OnXrayAcquisitionFinished failed") + ex->ToString());
+
+		LogErrorTrace(__FILE__, __LINE__, sMessage);
+
+		auto edsController = CreateEdsSpectrumController();
+		if (edsController)
+		{
+			edsController->EndMultipleAcquisition();
+			m_endControllerEvent->Set();
+
+		}
+	}
+}
+
+void OxfordControllerWrapper::OnXrayChordlistFinished(Object^, OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<OINA::Extender::Data::Ed::IEdMap^>^ e)
+{
+}
+
+bool OxfordControllerWrapper::CollectXrayPoint(const double a_dPosX, const double a_dPosY, const long a_nAcTimeMilliseconds, long* a_pSpectrumData, DWORD a_nBufferSize)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::COLLECT_XRAYPOINT;
+	_oxfordControllerData.m_dBeamPositionX = a_dPosX;
+	_oxfordControllerData.m_dBeamPositionY = a_dPosY;
+	_oxfordControllerData.m_nAcTime = a_nAcTimeMilliseconds;
+	_oxfordControllerData.m_pSpectrumData = a_pSpectrumData;
+	_oxfordControllerData.m_nBufferSize = a_nBufferSize;
+
+	m_startControllerEvent->Set();
+
+	Thread::Sleep(a_nAcTimeMilliseconds);
+	long nCollectedTime = a_nAcTimeMilliseconds;
+	long nCollectedTimeLimit = nCollectedTime + g_nSinglePointCollectDelay + g_nXrayControllerConnectTimeOutMilliSeconds;
+
+	while (true)
+	{
+		if (m_endControllerEvent->WaitOne(0, true))
+		{
+			m_endControllerEvent->Reset();
+			break;
+		}
+
+		Application::DoEvents();
+		Thread::Sleep(g_nOxfordControllerEventSleepTimerInt);
+
+		nCollectedTime += g_nOxfordControllerEventSleepTimerInt;
+		if (nCollectedTime > nCollectedTimeLimit)
+		{
+
+
+			_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+			_oxfordControllerData.m_nCommand = OxfordControllerCommand::END_MULTIPLEACQUISITION;
+			m_startControllerEvent->Set();
+			
+			m_endControllerEvent->Reset();
+
+			break;
+		}
+	}
+
+	_oxfordControllerData.m_pSpectrumData = nullptr;
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+
+
+	return false;
+}
+
+bool OxfordControllerWrapper::CollectXrayPoint(const long a_nAcTimeMilliseconds, long* a_pSpectrumData, DWORD a_nBufferSize)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::COLLECT_CURRENTXRAYPOINT;
+	_oxfordControllerData.m_nAcTime = a_nAcTimeMilliseconds;
+	_oxfordControllerData.m_pSpectrumData = a_pSpectrumData;
+	_oxfordControllerData.m_nBufferSize = a_nBufferSize;
+
+	m_startControllerEvent->Set();
+
+	Thread::Sleep(a_nAcTimeMilliseconds);
+	long nCollectedTime = a_nAcTimeMilliseconds;
+	long nCollectedTimeLimit = nCollectedTime + g_nSinglePointCollectDelay + g_nXrayControllerConnectTimeOutMilliSeconds;
+
+	while (true)
+	{
+		if (m_endControllerEvent->WaitOne(0, true))
+		{
+			m_endControllerEvent->Reset();
+			break;
+		}
+
+		Application::DoEvents();
+		Thread::Sleep(g_nOxfordControllerEventSleepTimerInt);
+
+		nCollectedTime += g_nOxfordControllerEventSleepTimerInt;
+		if (nCollectedTime > nCollectedTimeLimit)
+		{
+
+
+			_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+
+			_oxfordControllerData.m_nCommand = OxfordControllerCommand::END_MULTIPLEACQUISITION;
+			m_startControllerEvent->Set();
+
+			m_endControllerEvent->Reset();
+
+			break;
+		}
+	}
+
+	_oxfordControllerData.m_pSpectrumData = nullptr;
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+
+	return false;
+}
+
+bool OxfordControllerWrapper::CollectXrayPoints(const long a_nAcTimeMilliseconds, OxfordXrayData* a_pXrayDataList, const long a_nXrayDataCount, DWORD a_nBufferSize)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::COLLECT_XRAYPOINTS;
+	_oxfordControllerData.m_nAcTime = a_nAcTimeMilliseconds;
+	_oxfordControllerData.m_pXrayDataList = a_pXrayDataList;
+	_oxfordControllerData.m_nXrayDataCount = a_nXrayDataCount;
+	_oxfordControllerData.m_nBufferSize = a_nBufferSize;
+
+	
+
+	Thread::Sleep(300);
+
+	m_startControllerEvent->Set();
+	long nCollectedTime = 1000;
+	long nCollectedTimeLimit = nCollectedTime + a_nXrayDataCount * g_nSinglePointCollectDelay + g_nXrayControllerConnectTimeOutMilliSeconds;
+
+	while (true)
+	{
+		if (m_endControllerEvent->WaitOne(0, true))
+		{
+			m_endControllerEvent->Reset();
+			break;
+		}
+
+		Application::DoEvents();
+		Thread::Sleep(g_nOxfordControllerEventSleepTimerInt);
+
+		nCollectedTime += g_nOxfordControllerEventSleepTimerInt;
+		if (nCollectedTime > nCollectedTimeLimit)
+		{
+
+
+			_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+
+			_oxfordControllerData.m_nCommand = OxfordControllerCommand::END_MULTIPLEACQUISITION;
+			m_startControllerEvent->Set();
+
+			m_endControllerEvent->Reset();
+
+			break;
+		}
+	}
+
+	_oxfordControllerData.m_pXrayDataList = nullptr;
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+
+	return false;
+}
+
+bool OxfordControllerWrapper::CollectXrayFeatures(const long a_nAcTimeMilliseconds, OxfordXrayData* a_pXrayDataList, const long a_nXrayDataCount, DWORD a_nBufferSize)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::COLLECT_XRAYCHOILDLIST;
+	_oxfordControllerData.m_nAcTime = a_nAcTimeMilliseconds;
+	_oxfordControllerData.m_pXrayDataList = a_pXrayDataList;
+
+	_oxfordControllerData.m_nXrayDataCount = a_nXrayDataCount;//要采集的feature个数
+	_oxfordControllerData.m_nCollectedXrayCounts = 0;
+
+	_oxfordControllerData.m_nChordsNum = a_pXrayDataList[_oxfordControllerData.m_nCollectedXrayCounts].m_nChordNum;
+	_oxfordControllerData.m_nCollectedChordsCount = 0;
+
+	_oxfordControllerData.m_nBufferSize = a_nBufferSize;
+	
+	//当前采集的feature包含的像素的个数
+	_oxfordControllerData.m_nPixelNum = a_pXrayDataList[_oxfordControllerData.m_nCollectedXrayCounts].m_nPixelNum;
+	_oxfordControllerData.m_nCollectedPixelCounts = 0;
+
+	Thread::Sleep(300);
+
+	m_startControllerEvent->Set();
+
+	//Thread::Sleep(a_nAcTimeMilliseconds * a_nXrayDataCount);
+	long nCollectedTime =1000;
+	long nCollectedTimeLimit = nCollectedTime + a_nXrayDataCount * g_nSingleFeatureCollectDelay + g_nXrayControllerConnectTimeOutMilliSeconds;
+
+	while (true)
+	{
+		if (m_endControllerEvent->WaitOne(0, true))
+		{
+			m_endControllerEvent->Reset();
+			break;
+		}
+
+		Application::DoEvents();
+		Thread::Sleep(g_nOxfordControllerEventSleepTimerInt);
+
+		nCollectedTime += g_nOxfordControllerEventSleepTimerInt;
+		if (nCollectedTime > nCollectedTimeLimit)
+		{
+			CString sMessage;
+			sMessage.Format(_T("Error: Total collected time(%d) over limit(%d)"), nCollectedTime, nCollectedTimeLimit);
+			
+			LogErrorTrace(__FILE__,__LINE__,sMessage);
+			sMessage.Format(_T("1Total collected xray %d / %d"), _oxfordControllerData.m_nCollectedXrayCounts, _oxfordControllerData.m_nXrayDataCount);
+		
+			LogErrorTrace(__FILE__, __LINE__, sMessage);
+
+			_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+
+			m_endControllerEvent->Reset();
+
+			break;
+		}
+	}
+
+	_oxfordControllerData.m_pXrayDataList = nullptr;
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+	CString sMessage;
+	sMessage.Format(_T("CollectXrayArea failed."));
+	LogErrorTrace(__FILE__, __LINE__, sMessage);
+	
+
+	return false;
+}
+
+
+bool OxfordControllerWrapper::ConvertSpectrumData(IEdSpectrum^ a_spectrum, long* a_pSpectrumData, int a_nBufferSize)
+{
+	if (!a_spectrum || !a_pSpectrumData)
+	{
+		return false;
+	}
+	memset(a_pSpectrumData, 0, sizeof(long) * a_nBufferSize);
+	array<int>^ xrayData = gcnew array<int>(a_spectrum->NumberOfChannels);
+
+	a_spectrum->GetChannelData(xrayData);
+
+	double dZeroChannelValue = a_spectrum->ZeroChannelValue;
+
+	int nChannelStart = 0;
+	if (dZeroChannelValue < 0)  // zero channel value should less than zero
+	{
+		nChannelStart = (int)(-dZeroChannelValue / a_spectrum->ChannelWidth + 0.5);
+	}
+
+	int nDataLength = (int)(a_spectrum->EnergyRange * 1000 / a_spectrum->ChannelWidth + 0.5);
+
+	double dStep1 = 1.0 / nDataLength;
+	double dStep2 = 1.0 / a_nBufferSize;
+
+	for (int i = 0; i < nDataLength; ++i)
+	{
+		int nValue = xrayData[i + nChannelStart] > 0 ? xrayData[i + nChannelStart] : 0;
+
+		double dBinPos = i * dStep1;
+
+		long nLeftBin = (long)(dBinPos / dStep2);
+
+		// calculate % into left bin
+		double dLeft_Percent = double(nLeftBin + 1) - dBinPos / dStep2;	// ((nLeftBin + 1)*dStep2 - dBinPos)/dStep2
+
+		// calculate data into the left bin
+		long nValueToLeftBin = (long)((double)nValue * dLeft_Percent + 0.5);
+
+		// put data into bins
+		a_pSpectrumData[nLeftBin] += nValueToLeftBin;
+		if ((nLeftBin + 1) < (long)a_nBufferSize)
+		{
+			a_pSpectrumData[nLeftBin + 1] += (nValue - nValueToLeftBin);
+		}
+	}
+
+
+
+	return true;
+}
+
+bool OxfordControllerWrapper::IsXrayCollecting()
+{
+	if (_edSpectrumController)
+	{
+		return _edSpectrumController->IsAcquiring;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::IsImageCollecting()
+{
+	if (_imageAcqusitionController)
+	{
+		return _imageAcqusitionController->IsAcquiring;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::IsQuantifySpectrumCollecting()
+{
+	if (_edSpectrumController)
+	{
+		return _edSpectrumController->IsAcquiring;
+	}
+	return false;
+}
+
+bool OxfordControllerWrapper::SetScanSpeed(const long a_nMilliseconds)
+{
+	auto imageAcqusitionSettings = GetImageAcqusitionSettings();
+
+	imageAcqusitionSettings->ImageSettings->DwellTimeMicroSeconds = a_nMilliseconds;
+
+	return true;
+}
+
+bool OxfordControllerWrapper::GetImageSize(long& a_nWidth, long& a_nHeight)
+{
+	a_nWidth = _oxfordControllerData.m_nImageWidth;
+	a_nHeight = _oxfordControllerData.m_nImageHeight;
+
+	return true;
+}
+
+bool OxfordControllerWrapper::SetImageSize(const long a_nWidth, const long a_nHeight)
+{
+	
+
+	_oxfordControllerData.m_nImageWidth = a_nWidth;
+	_oxfordControllerData.m_nImageHeight = a_nHeight;
+
+	auto imageAcqusitionSettings = GetImageAcqusitionSettings();
+
+	imageAcqusitionSettings->ScanSettings->AcquisitionRegion->CreateFullFieldRegion(1.0 / a_nWidth);
+
+	return true;
+}
+
+bool OxfordControllerWrapper::CollectImage(int a)
+{
+	return true;
+}
+
+bool OxfordControllerWrapper::QuantifySpectrum(unsigned char* cResult)
+{
+	CString result = _oxfordControllerData.m_sElementResult;
+	cResult = (unsigned char*)result.GetBuffer();
+	return true;
+}
+
+bool OxfordControllerWrapper::CollectImage(BYTE* a_pImageBits)
+{
+	_oxfordControllerData.m_nCommand = OxfordControllerCommand::COLLECT_IMAGE;
+	_oxfordControllerData.m_pImageBits = a_pImageBits;
+
+	m_startControllerEvent->Set();
+	long nCollectedTime = 0;
+	long nCollectedTimeLimit = g_nImageTimeOutMilliSeconds;
+	
+	while (true)
+	{
+		if (m_endControllerEvent->WaitOne(0, true))
+		{
+			m_endControllerEvent->Reset();
+			break;
+		}
+
+		Application::DoEvents();
+		Thread::Sleep(g_nOxfordControllerEventWaitTimerInt);
+
+		
+		
+		nCollectedTime += g_nOxfordControllerEventWaitTimerInt;
+		if (nCollectedTime > nCollectedTimeLimit)
+		{
+			//this->CreateImageAcqusitionController();
+
+			
+			_oxfordControllerData.m_nCommand = OxfordControllerCommand::STOP_ACQUISITION;
+			m_startControllerEvent->Set();
+
+
+			_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+
+			
+			m_endControllerEvent->Reset();
+
+			break;
+		}
+
+
+	}
+
+	_oxfordControllerData.m_pImageBits = nullptr;
+	if (_oxfordControllerData.m_nState == OxfordControllerState::SUCCEEDED)
+	{
+		return true;
+	}
+
+	return false;
+}
+
+bool OxfordControllerWrapper::ReadImageData(IElectronImage^ a_electronImage, BYTE* a_pImageBits)
+{
+	if (a_electronImage == nullptr)
+	{
+
+
+		return false;
+	}
+
+	if (a_pImageBits == NULL)
+	{
+
+
+		return false;
+	}
+
+	_oxfordControllerData.m_nImageWidth = a_electronImage->Width;
+	_oxfordControllerData.m_nImageHeight = a_electronImage->Height;
+	_oxfordControllerData.m_dPixelSize = a_electronImage->PixelSize;
+
+
+
+
+	int nBytesPerPixel = a_electronImage->BytesPerPixel;
+	int nImageSize = _oxfordControllerData.m_nImageWidth * _oxfordControllerData.m_nImageHeight;
+	int nBufferSize = _oxfordControllerData.m_nImageWidth * _oxfordControllerData.m_nImageHeight * nBytesPerPixel;
+
+	array<byte>^ imageData = gcnew array<byte>(nBufferSize);
+	a_electronImage->GetData(imageData);
+
+	// default, oxford will return short image, we need to convert to byte
+	if (nBytesPerPixel == 2)
+	{
+		int nBSEValue = 0;
+		for (int i = 0; i < nImageSize; ++i)
+		{
+			nBSEValue = imageData[0 + i * nBytesPerPixel] + imageData[1 + i * nBytesPerPixel] * 255;
+			a_pImageBits[i] = (BYTE)(nBSEValue / 128.0 + 0.5);
+		}
+	}
+	else
+	{
+
+
+		int nOffset = nBytesPerPixel - 1;
+		for (int i = 0; i < nImageSize; ++i)
+		{
+			#ifdef _DEBUG
+			        byte nValue = imageData[nBytesPerPixel - 1 + i * nBytesPerPixel];
+			        a_pImageBits[i] = nValue;
+			#else
+			a_pImageBits[i] = imageData[nOffset + i * nBytesPerPixel];
+			#endif
+		}
+	}
+
+	return true;
+}
+
+bool OxfordControllerWrapper::StartImageCollecting()
+{
+	auto imageAcqusitionController = CreateImageAcqusitionController();
+	auto imageAcqusitionSettings = GetImageAcqusitionSettings();
+
+	if (imageAcqusitionController == nullptr)
+	{
+		return false;
+	}
+
+	if (imageAcqusitionSettings == nullptr)
+	{
+		return false;
+	}
+
+	try
+	{
+		List<IElectronImage^>^ electronImageList = gcnew List<IElectronImage^>();
+
+		auto images = imageAcqusitionController->StartAcquisition(imageAcqusitionSettings);
+
+
+
+		return images != nullptr;
+	}
+	catch (Exception^ /*ex*/)
+	{
+		CString sMessage(_T("StartImageCollecting: Start Acquisition failed"));
+		
+		LogErrorTrace(__FILE__,__LINE__,sMessage);
+	}
+
+	return false;
+}
+
+void OxfordControllerWrapper::OnImageAcquisitionFinished(Object^ /*sender*/, OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<array<OINA::Extender::Data::Image::IElectronImage^ >^ >^ e)
+{
+	List<IElectronImage^>^ electronImageList = gcnew List<IElectronImage^>();
+	try
+	{
+		if ((bool)e->Success)
+		{
+			for each (auto eleImage in e->Value)
+			{
+				electronImageList->Add(eleImage);
+			}
+
+			if (electronImageList->Count == 0)
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+			}
+			else if (!ReadImageData(electronImageList[0], _oxfordControllerData.m_pImageBits))
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+			}
+			else
+			{
+				_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+			}
+		}
+		else
+		{
+			CString sMessage(_T("OnImageAcquisitionFinished failed") );
+			LogErrorTrace(__FILE__, __LINE__, sMessage);
+		}
+		
+	}
+	catch (Exception^ ex)
+	{
+		CString sMessage(_T("OnImageAcquisitionFinished failed")+ex->ToString());
+
+		LogErrorTrace(__FILE__, __LINE__, sMessage);
+	}
+	m_endControllerEvent->Set();
+}
+
+void OxfordControllerWrapper::OnController_PixelProcessed(Object^ /*sender*/, OINA::Extender::EventArgs<OINA::Extender::Processing::Quant::IPixelSEMQuantStatus^ >^ e)
+{
+	_oxfordControllerData.m_nCollectedPixelCounts++;
+	//更新当前feature的元素成分
+
+	//Get element result for single point
+	auto ie = e->Value->QuantStatus->Results->GetEnumerator();
+	
+	while (ie->MoveNext())
+	{
+		ISEMQuantResult^ result = ie->Current;
+
+		if (result->WeightPercent != 0)
+		{
+			Element^ Quant = gcnew Element();
+
+			Quant->m_nAotomaticNo = result->AtomicNumber;
+			Quant->m_dWeight = result->WeightPercent;
+
+
+			if (_oxfordControllerData.m_listElementResult == nullptr)
+			{
+				_oxfordControllerData.m_listElementResult = gcnew List<Element^ >();
+				_oxfordControllerData.m_listElementResult->Add(Quant);
+			}
+			else
+			{
+				bool bFind = false;
+				for (int i = 0; i < _oxfordControllerData.m_listElementResult->Count; i++)
+				{
+					Element^ result = _oxfordControllerData.m_listElementResult[i];
+
+					if (Quant->m_nAotomaticNo == result->m_nAotomaticNo)
+					{
+						result->m_dWeight += Quant->m_dWeight;
+						bFind = true;
+					}
+				}
+
+				if (!bFind)
+				{
+					_oxfordControllerData.m_listElementResult->Add(Quant);
+				}
+			}
+		}
+	}
+
+	//当前的chord数据中pixel没有采集完整
+	if (_oxfordControllerData.m_nCollectedPixelCounts == _oxfordControllerData.m_nPixelNum)
+	{
+		//形成quant数据
+
+		CString Quant = _T("");
+		for (int i = 0; i < _oxfordControllerData.m_listElementResult->Count; i++)
+		{
+
+			Element^ result = _oxfordControllerData.m_listElementResult[i];
+
+			Quant += "Quant=";			
+			CString strAoto(ElementProperties::GetElementSymbol(result->m_nAotomaticNo));
+			Quant += strAoto;
+			Quant += ",";
+			Quant += _T("K-serials");
+			Quant += ",";
+			CString strWeight = (result->m_dWeight / (double)_oxfordControllerData.m_nPixelNum).ToString();
+			Quant += strWeight ;
+			Quant += "\n";			
+		}
+
+		CString msg = Quant;
+		unsigned char* dst = _oxfordControllerData.m_pXrayDataList[_oxfordControllerData.m_nCollectedXrayCounts].m_strElementResult;
+		for (int i = 0; i < msg.GetLength(); i++)
+		{
+			dst[i] = (unsigned char)msg.GetAt(i);
+		}
+
+		_oxfordControllerData.m_nCollectedXrayCounts++;
+		if (_oxfordControllerData.m_nCollectedXrayCounts < _oxfordControllerData.m_nXrayDataCount)
+		{
+			_oxfordControllerData.m_nPixelNum = _oxfordControllerData.m_pXrayDataList[_oxfordControllerData.m_nCollectedXrayCounts].m_nPixelNum;
+			_oxfordControllerData.m_nCollectedPixelCounts = 0;
+			_oxfordControllerData.m_listElementResult->Clear();
+		}
+		
+	}
+
+}
+void OxfordControllerWrapper::OnController_ExperimentFinished(Object^ /*sender*/, OINA::Extender::Acquisition::AcquisitionFinishedEventArgs^ e)
+{
+	if (_oxfordControllerData.m_nCollectedXrayCounts == _oxfordControllerData.m_nXrayDataCount)
+		_oxfordControllerData.m_nState = OxfordControllerState::SUCCEEDED;
+	else
+		_oxfordControllerData.m_nState = OxfordControllerState::FAILED;
+	m_endControllerEvent->Set();
+}
+bool OxfordControllerWrapper::StopImageCollecting()
+{
+	auto imageAcqusitionController = CreateImageAcqusitionController();;
+
+	try
+	{
+		if (imageAcqusitionController->IsAcquiring)
+		{
+			imageAcqusitionController->StopAcquisition();
+		}
+	}
+	catch (Exception^ ex)
+	{
+		CString sMessage = ex->Message;
+		CString sErrorMessage;
+		     sErrorMessage.Format(_T("StopImageCollecting: Stop Acquisition caught(%s)"), sMessage);
+	
+		LogErrorTrace(__FILE__, __LINE__, sErrorMessage);
+	}
+
+	return !imageAcqusitionController->IsAcquiring;
+}
+
+
+IMicroscopeController^ OxfordControllerWrapper::CreateMicroscopeController()
+{
+	if (_microscopeController != nullptr)
+	{
+		return _microscopeController;
+	}
+
+	try
+	{
+		//LogTrace(__FILE__, __LINE__, _T("CreateMicroscopeControl..."));
+		_microscopeController = AcquireFactory::CreateMicroscopeControl();
+	}
+	catch(Exception^ ex)
+	{
+		CString sErrorMessage = ex->Message;
+		AfxMessageBox(_T("oxford eds cann't work,you can change work mode to offline in the sysMgrApp to run offline mode!\nerror:")+ sErrorMessage);	
+		LogErrorTrace(__FILE__, __LINE__, sErrorMessage);
+		return nullptr;
+	}
+
+	if (_microscopeController == nullptr)
+	{
+		CString sErrorMessage ="";
+		AfxMessageBox(_T("oxford eds cann't work,you can change work mode to offline in the sysMgrApp to run offline mode!\nerror:") + sErrorMessage);
+		LogErrorTrace(__FILE__, __LINE__, sErrorMessage);
+		return nullptr;
+	}
+
+	_microscopeController->ColumnChange += gcnew EventHandler<OINA::Extender::MicroscopeControl::ColumnEventArgs^>(this, &OxfordControllerWrapper::OnMicroscopeColumnUpdated);
+	//_microscopeController->StageChange += gcnew EventHandler<OINA::Extender::MicroscopeControl::StageEventArgs^>(this, &OxfordControllerWrapper::OnMicroscopeStageUpdated);
+	_microscopeController->ChangeCompleted += gcnew EventHandler<OINA::Extender::MicroscopeControl::CompletedEventArgs^>(this, &OxfordControllerWrapper::OnMicroscopeCompleted);
+
+	m_bIsStageUpdated = false;
+
+	auto nStart = GetTickCount64();
+	auto nEnd = nStart;
+	do
+	{
+		if (IsMicroscopeColumnConnected()
+			&& IsMicroscopeStageConnected())
+		{
+			break;
+		}
+
+		nEnd = GetTickCount64();
+	} while (nEnd >= nStart && nEnd <= (nStart + g_nMicrocopeConnectTimeOutMilliSeconds));
+	return _microscopeController;
+}
+
+IEdSpectrumAcquisitionController^ OxfordControllerWrapper::CreateEdsSpectrumController()
+{
+	
+	if (_edSpectrumController == nullptr)
+	{
+		LogTrace(__FILE__, __LINE__, _T("CreateEdSpectrumServer..."));
+		try
+		{
+			_edSpectrumController = AcquireFactory::CreateEdSpectrumServer();
+
+			_edSpectrumController->ExperimentFinished += gcnew EventHandler<OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<OINA::Extender::Data::Ed::IEdSpectrum^>^>(this, &OxfordControllerWrapper::OnXrayAcquisitionFinished);
+
+			auto edsSpectrumSettings = GetEdsSpectrumSettings();
+			while (true)
+			{
+				/*if (_edSpectrumController->IsEdHardwareReady(edsSpectrumSettings))
+				{*/
+					if (edsSpectrumSettings->EdCapabilities->HasHardwareConnection)
+					{
+						break;
+					}
+				//}
+			}
+
+		}
+		catch (const std::exception& e)
+		{
+			CString msg(e.what());
+			LogTrace(__FILE__, __LINE__,msg);
+			return nullptr;
+		}
+		
+	}
+
+	return _edSpectrumController;
+}
+
+
+IEdSpectrumSettings^ OxfordControllerWrapper::GetEdsSpectrumSettings()
+{
+	if (_edsSpectrumSettings == nullptr)
+	{
+		_edsSpectrumSettings = AcquireFactory::CreateEdSpectrumSettings();
+
+		if (_edsSpectrumSettings == nullptr)
+		{
+			CString sMessage(_T("Create EDS Spectrum setting failed."));		
+			LogErrorTrace(__FILE__, __LINE__, sMessage);
+			ASSERT(FALSE);
+		}
+		else
+		{
+			_edsSpectrumSettings->EdSettings->AcquisitionMode = EdAcquireMode::LiveTime;
+			//_edsSpectrumSettings->EdSettings->AcquisitionTime = TimeSpan::FromSeconds(1);
+			_edsSpectrumSettings->EdSettings->NumberOfChannels = g_nOxfordControllerChannels;
+			_edsSpectrumSettings->EdSettings->ProcessTime = g_nOxfordControllerProcessTime;
+			_edsSpectrumSettings->EdSettings->EnergyRange = g_nOxfordControllerEnergyRange;
+		}
+	}
+
+	return _edsSpectrumSettings;
+}
+
+IImageAcquisitionController^ OxfordControllerWrapper::CreateImageAcqusitionController()
+{
+	if (_imageAcqusitionController == nullptr)
+	{
+		LogTrace(__FILE__, __LINE__, _T("CreateImageAcqusitionController..."));
+		try
+		{
+			_imageAcqusitionController = AcquireFactory::CreateImageServer();
+			
+			//_imageAcqusitionController->ExperimentStarted += gcnew EventHandler<OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<array<OINA::Extender::Data::Image::IElectronImage^ >^ >^>(this, &OxfordControllerWrapper::OnImageAcquisitioStarted);
+			_imageAcqusitionController->ExperimentFinished += gcnew EventHandler<OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<array<OINA::Extender::Data::Image::IElectronImage^ >^ >^>(this, &OxfordControllerWrapper::OnImageAcquisitionFinished);
+
+			auto imageAcqusitionSettings = GetImageAcqusitionSettings();
+			while (true)
+			{
+				/*if (_imageAcqusitionController->IsImageHardwareReady(imageAcqusitionSettings))
+				{*/
+					if (imageAcqusitionSettings->ImageCapabilities->HasHardwareConnection)
+					{
+						break;
+					}
+				//}
+			}
+		}
+		catch (Exception^ ex)
+		{
+			CString sMessage = ex->Message;
+			
+		
+			LogErrorTrace(__FILE__, __LINE__, sMessage);
+			return nullptr;
+		}
+	}
+
+	return _imageAcqusitionController;
+}
+
+
+
+
+
+IImageAcquisitionSettings^ OxfordControllerWrapper::GetImageAcqusitionSettings()
+{
+	if (_imageAcqusitionSettings == nullptr)
+	{
+		_imageAcqusitionSettings = AcquireFactory::CreateImageSettings();
+		_imageAcqusitionSettings->ScanSettings->FrameCount = 1;
+
+		IImageSettings^ imageSettings = _imageAcqusitionSettings->ImageSettings;
+
+		for each (KeyValuePair<OINA::Extender::Data::Image::ImageInputSources, bool>^ imputSource in imageSettings->InputSources)
+		{
+			imageSettings->EnableInputSource(imputSource->Key, false);
+		}
+		CString szXMLFileName = "./Config/ProData/HardwareConfig.xml";
+		tinyxml2::XMLDocument doc;
+		doc.LoadFile(szXMLFileName);//载入xml文件
+
+		xmls::Slo subClass;
+		xmls::xString sImageInputSources;
+		subClass.Register("ImageInputSources", &sImageInputSources);
+		subClass.Register("SemControllerName", &subClass);
+
+		tinyxml2::XMLElement* rootNode;
+		rootNode = doc.FirstChildElement(RootClassName);
+		subClass.Serialize(false, &doc, rootNode);
+		CString cImageInputSources = sImageInputSources.value().c_str();
+		if (cImageInputSources == "BSE")
+		{
+			imageSettings->EnableInputSource(OINA::Extender::Data::Image::ImageInputSources::Bse, true);
+		}
+		else if (cImageInputSources == "SE")
+		{
+			imageSettings->EnableInputSource(OINA::Extender::Data::Image::ImageInputSources::SE, true);
+		}
+		else
+		{
+			imageSettings->EnableInputSource(OINA::Extender::Data::Image::ImageInputSources::None, true);
+		}
+
+		_imageAcqusitionSettings->ImageSettings->DwellTimeMicroSeconds = 20;
+		_imageAcqusitionSettings->ScanSettings->AcquisitionRegion->CreateFullFieldRegion(1.0 / 1024.0);
+
+
+
+
+
+
+	}
+
+	return _imageAcqusitionSettings;
+}
+
+IEdChordListAcquisitionController^ OxfordControllerWrapper::CreateChordlistController()
+{
+	if (_edsChordListController == nullptr)
+	{
+		try
+		{
+			LogTrace(__FILE__, __LINE__, _T("CreateEdChordListServer..."));
+			_edsChordListController = AcquireFactory::CreateEdChordListServer();
+
+			_edsChordListController->PixelProcessed += gcnew EventHandler<OINA::Extender::EventArgs<OINA::Extender::Processing::Quant::IPixelSEMQuantStatus^>^>(this, &OxfordControllerWrapper::OnController_PixelProcessed);
+			_edsChordListController->ExperimentFinished += gcnew EventHandler<OINA::Extender::Acquisition::AcquisitionFinishedEventArgs^>(this, &OxfordControllerWrapper::OnController_ExperimentFinished);
+
+			auto edsChordListSettings = GetChordlistSettings();
+			while (true)
+			{
+				/*if (_edsChordListController->IsEdHardwareReady(edsChordListSettings))
+				{*/
+					if (edsChordListSettings->EdCapabilities->HasHardwareConnection)
+					{
+						break;
+					}
+				//}
+			}
+		}catch(Exception^ ex)
+		{
+
+			CString sMessage = ex->Message;
+
+
+			LogErrorTrace(__FILE__, __LINE__, sMessage);
+			return nullptr;
+		}
+		
+	}
+
+	return _edsChordListController;
+}
+
+/// <summary>
+/// Get some chordlists to acquire.
+/// </summary>
+/// <returns>The chordlists to acquire.</returns>
+System::Collections::Generic::IReadOnlyList<ChordList^>^ GetChordLists()
+{
+	OINA::Extender::Data::Chord^ chord1 = gcnew OINA::Extender::Data::Chord(3, 0, 5);
+	OINA::Extender::Data::Chord^ chord2 = gcnew OINA::Extender::Data::Chord(0, 0, 3);
+	OINA::Extender::Data::Chord^ chord3 = gcnew OINA::Extender::Data::Chord(10, 0, 20);
+	OINA::Extender::Data::Chord^ chord4 = gcnew OINA::Extender::Data::Chord(550, 44, 30);
+	OINA::Extender::Data::Chord^ chord5 = gcnew OINA::Extender::Data::Chord(0, 270, 10);
+	OINA::Extender::Data::Chord^ chord6 = gcnew OINA::Extender::Data::Chord(898, 634, 15);
+	OINA::Extender::Data::Chord^ chord7 = gcnew OINA::Extender::Data::Chord(266, 768, 40);
+
+	List< OINA::Extender::Data::Chord^>^ chords = gcnew List<OINA::Extender::Data::Chord^>();
+	chords->Add(chord1);
+	chords->Add(chord2);
+	chords->Add(chord3);
+	chords->Add(chord4);
+	chords->Add(chord5);
+	chords->Add(chord6);
+	chords->Add(chord7);
+	
+	OINA::Extender::Data::ChordList^ chordsList = gcnew OINA::Extender::Data::ChordList(chords, 1/1024.0);
+		
+	List<ChordList^>^ ListchordsList = gcnew List<ChordList^>();
+	ListchordsList->Add(chordsList);
+	
+	return ListchordsList;
+}
+
+IEdChordListSettings^ OxfordControllerWrapper::GetChordlistSettings()
+{
+
+	if (_edsChordListSetting == nullptr)
+	{
+		_edsChordListSetting = AcquireFactory::CreateEdChordListSettings();
+
+		if (_edsChordListSetting == nullptr)
+		{
+			CString sMessage(_T("Create EDS chordlist setting failed."));
+			LogErrorTrace(__FILE__, __LINE__, sMessage);
+			
+			ASSERT(FALSE);
+		}
+		else
+		{
+			_edsChordListSetting->EdSettings->AcquisitionMode = EdAcquireMode::LiveTime;
+			//_edsChordListSetting->EdSettings->AcquisitionTime = TimeSpan::FromMilliseconds(100);// :FromSeconds(1);
+			_edsChordListSetting->EdSettings->NumberOfChannels =4096;
+			_edsChordListSetting->EdSettings->ProcessTime = g_nOxfordControllerProcessTime;
+			_edsChordListSetting->EdSettings->EnergyRange = g_nOxfordControllerEnergyRange;
+			
+			/*_edsChordListSetting->AutoIdSettings->SetKnownElement(79, true);
+			_edsChordListSetting->NumberOfProcessingThreads = 1;*/
+
+			//_edsChordListSetting->ChordLists = GetChordLists();
+		}
+	}
+
+	return _edsChordListSetting;
+}
+
+void OxfordControllerWrapper::LogMessage(CString a_sMessage)
+{
+	LogTrace(__FILE__, __LINE__, a_sMessage);
+	
+}

+ 325 - 0
OTSCPP/OTSControl/Oxford/OxfordWrapper/OxfordControllerWrapper.h

@@ -0,0 +1,325 @@
+#pragma once
+
+#include "../OTSControl/Oxford/OxfordImplConst.h"
+
+
+using namespace System::Collections::Generic;
+
+using namespace System::Threading;
+
+using namespace OINA::Extender;
+using namespace OINA::Extender::Data;
+using namespace OINA::Extender::Data::Ed;
+using namespace OINA::Extender::Data::Image;
+using namespace OINA::Extender::MicroscopeControl;
+using namespace OINA::Extender::Acquisition;
+using namespace OINA::Extender::Acquisition::Ed;
+using namespace OINA::Extender::Acquisition::Image;
+
+using namespace OINA::Extender::Acquisition::Quant;
+
+
+using namespace OINA::Extender::Controls;
+using namespace OINA::Extender::Controls::Common;
+using namespace OINA::Extender::Controls::Image;
+using namespace OINA::Extender::Controls::Spectrum;
+using namespace OINA::Extender::Processing;
+using namespace OINA::Extender::Processing::Ed;
+using namespace OINA::Extender::Processing::Quant;
+
+
+using namespace OTSController;
+ref class OxfordControllerWrapper
+{
+	enum class OxfordControllerCommand
+	{
+		WAITING = 0,
+		GET_WORKINGDISTANCE = 1,
+		SET_WORKINGDISTANCE = 2,
+		GET_POSITIONXY = 3,
+		SET_POSITIONXY = 4,
+		GET_MAGNIFICATION = 5,
+		SET_MAGNIFICATION = 6,
+		GET_HIGHVOTAGE = 7,
+		SET_HIGHVOTAGE = 8,
+		GET_BEAMON = 9,
+		SET_BEAMON = 10,
+		GET_BEAMBLANK = 11,
+		SET_BEAMBLANK = 12,
+		GET_EXTERNAL = 13,
+		SET_EXTERNAL = 14,
+		COLLECT_IMAGE = 15,
+		COLLECT_XRAYPOINT = 16,
+		COLLECT_CURRENTXRAYPOINT = 17,
+		COLLECT_XRAYPOINTS = 18,
+		COLLECT_QUANTIFYSPECTRUM = 19,
+		COLLECT_XRAYCHOILDLIST = 20,
+		STOP_ACQUISITION=21,
+		END_MULTIPLEACQUISITION = 22,
+		EXIT = 100,
+	};
+
+	enum class OxfordControllerState
+	{
+		READY = 0,
+		WORKING = 1,
+		SUCCEEDED = 2,
+		FAILED = 3,
+		ABORT = 4
+	};
+
+	ref struct Element 
+	{
+		int m_nAotomaticNo;
+		double m_dWeight;
+	};
+
+	//interface input/output
+	ref struct OxfordControllerData
+	{
+		OxfordControllerData()
+			: m_nState(OxfordControllerState::READY)
+			, m_nCommand(OxfordControllerCommand::WAITING)
+			, m_pImageBits(nullptr)
+			, m_pXrayDataList(nullptr)
+			, m_pSpectrumData(nullptr)
+		{
+			
+			m_nCollectedPixelCounts = 0;
+			m_nCollectedChordsCount = 0;
+		}
+		
+		OxfordControllerState m_nState;
+		OxfordControllerCommand m_nCommand;
+
+		double m_dPositionX;
+		double m_dPositionY;
+		double m_dWorkingDistance;
+		double m_dMagnification;
+
+		double m_dHighVotage;
+
+		bool m_bBeamOn;
+		bool m_bBeamBlank;
+		bool m_bExternal;
+
+		long m_nImageWidth;
+		long m_nImageHeight;
+		double m_dPixelSize;
+		BYTE* m_pImageBits;
+
+		double m_dBeamPositionX;
+		double m_dBeamPositionY;
+		long* m_pSpectrumData;
+
+		OxfordXrayData* m_pXrayDataList; //multi points
+		long m_nAcTime; // xray collect time
+		DWORD m_nBufferSize;
+		
+		// feature计数控制
+		long m_nXrayDataCount;
+		long m_nCollectedXrayCounts;
+
+		// 当前feature的chords数控制
+		long m_nChordsNum;
+		long m_nCollectedChordsCount;
+
+		// 当前feature的pixel数控制 
+		long m_nCollectedPixelCounts;
+		long m_nPixelNum;
+		
+		List<Element^ >^ m_listElementResult;		
+
+		System::String^ m_sElementResult; //one point
+
+	};
+
+public:
+	OxfordControllerWrapper(void);
+	~OxfordControllerWrapper();	
+	!OxfordControllerWrapper();
+
+	void CloseClient();
+
+	bool Init();
+
+	bool IsConnected();
+
+	bool GetPositionXY(double& a_dPosX, double& a_dPosY);
+	bool SetPositionXY(const double a_dPosX, const double a_dPosY);
+
+	bool GetWorkingDistance(double& a_dWorkingDistance);
+	bool SetWorkingDistance(double a_dWorkingDistance);
+
+	bool GetMagnification(double& a_dMagnification);
+	bool SetMagnification(double a_dMagnification);
+
+	bool GetHighVoltage(double& a_dHighVoltage);
+	bool SetHighVoltage(double a_dHighVoltage);
+
+	bool GetBeamOn(bool& a_bBeamOn);
+	bool SetBeamOn(bool a_bBeamOn);
+
+	bool GetBeamBlank(bool& a_bBeamBlank);
+	bool SetBeamBlank(bool a_bBeamBlank);
+
+	bool GetExternalScan(bool& a_bExternal);
+	bool SetExternalScan(bool a_bExternal);
+
+	bool SetBeamPosition(const double a_dPosX, const double a_dPosY);
+	bool CollectXrayPoint(const double a_dPosX, const double a_dPosY, const long a_nAcTime, long* a_pSpectrumData, DWORD a_nBufferSize);
+	bool CollectXrayPoint(const long a_nAcTime, long* a_pSpectrumData, DWORD a_nBufferSize);
+
+	bool CollectXrayPoints(const long a_nAcTime, OxfordXrayData* a_pXrayDataList, const long a_nXrayDataCount, DWORD a_nBufferSize);
+	bool CollectXrayFeatures(const long a_nAcTimeMilliseconds, OxfordXrayData* a_pXrayDataList, const long a_nXrayDataCount, DWORD a_nBufferSize);
+	bool SetScanSpeed(const long a_nMilliseconds);
+	bool GetImageSize(long& a_nWidth, long& a_nHeight);
+	bool SetImageSize(const long a_nWidth, const long a_nHeight);
+
+	bool CollectImage(BYTE* a_pImageBits);
+	bool CollectImage(int a);
+
+	bool QuantifySpectrum(unsigned char* cResult);
+	bool IsStageUpdate()
+	{
+		return m_bIsStageUpdated;
+	}
+	bool StopXrayCollecting();
+
+protected:
+
+	bool GetPositionXYFromController(double& a_dPosX, double& a_dPosY);
+	bool SetPositionXYToController(const double a_dPosX, const double a_dPosY);
+
+	bool GetWorkingDistanceFromController(double& a_dWorkingDistance);
+	bool SetWorkingDistanceToController(double a_dWorkingDistance);
+
+	bool GetMagnificationFromController(double& a_dMagnification);
+	bool SetMagnificationToController(double a_dMagnification);
+
+	bool GetHighVoltageFromController(double& a_dHighVoltage);
+	bool SetHighVoltageToController(double a_dHighVoltage);
+
+	bool GetBeamOnFromController(bool& a_bBeamOn);
+	bool SetBeamOnToController(bool a_bBeamOn);
+
+	bool GetBeamBlankFromController(bool& a_bBeamBlank);
+	bool SetBeamBlankToController(bool a_bBeamBlank);
+
+	bool GetExternalScanFromController(bool& a_bExternal);
+	bool SetExternalScanToController(bool a_bExternal);
+
+	bool SetCurrentBeamPosition();
+
+	bool IsXrayCollecting();
+	bool IsImageCollecting();
+
+	bool IsQuantifySpectrumCollecting();
+
+	IStageConditions^ GetStageConditions();
+
+	void OnMicroscopeColumnUpdated(Object^ sender, OINA::Extender::MicroscopeControl::ColumnEventArgs^ e)
+	{
+		
+		m_bIsColumnUpdated = true;
+	}
+	void OnMicroscopeStageUpdated(Object^ sender, OINA::Extender::MicroscopeControl::StageEventArgs^ e)
+	{
+		
+		m_bIsStageUpdated = true;
+		//LogTrace(__FILE__, __LINE__, _T("StageUpdated!"));
+	}
+	void OnMicroscopeCompleted(Object^ sender, OINA::Extender::MicroscopeControl::CompletedEventArgs^ e)
+	{
+		if ((int)e->Control == (int)MicroscopeControl::MicroscopeControlType::Stage)
+		{
+			if (e->Success)
+			{
+				LogTrace(__FILE__, __LINE__, _T("StageUpdated!"));
+				m_bIsStageUpdated = true;
+
+			}
+			
+		}
+	
+		
+	}
+	bool m_bIsStageUpdated;
+	bool m_bIsColumnUpdated;
+	bool IsMicroscopeColumnConnected();
+	bool IsMicroscopeStageConnected();
+
+	bool StartXrayCollecting(const long a_nAcTime);
+	
+	void OnXrayAcquisitionFinished(Object^ sender, OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<OINA::Extender::Data::Ed::IEdSpectrum^>^ e);
+	void OnXrayChordlistFinished(Object^ sender, OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<OINA::Extender::Data::Ed::IEdMap^>^ e);
+	bool ConvertSpectrumData(IEdSpectrum^ a_spectrum, long* a_pSpectrumData, int a_nBufferSize);
+
+	bool StartImageCollecting();
+	bool StopImageCollecting();
+	void OnImageAcquisitionFinished(Object^ /*sender*/, OINA::Extender::Acquisition::AcquisitionFinishedEventArgs<array<OINA::Extender::Data::Image::IElectronImage^ >^ >^ e);
+	void OnController_PixelProcessed(Object^ /*sender*/, OINA::Extender::EventArgs<OINA::Extender::Processing::Quant::IPixelSEMQuantStatus^ >^ e);
+	void OnController_ExperimentFinished(Object^ /*sender*/, OINA::Extender::Acquisition::AcquisitionFinishedEventArgs^ e);
+	bool ReadImageData(IElectronImage^ a_electronImage, BYTE* a_pImageBits);
+	void XraySpectrumProcess(OINA::Extender::Data::Ed::IEdSpectrum^ spectrum);
+	void LogMessage(CString a_sMessage);
+
+	IMicroscopeController^ CreateMicroscopeController();
+
+	IEdSpectrumAcquisitionController^ CreateEdsSpectrumController();
+	IEdSpectrumSettings^ GetEdsSpectrumSettings();
+
+	IImageAcquisitionController^ CreateImageAcqusitionController();
+	IImageAcquisitionSettings^ GetImageAcqusitionSettings();
+
+//	IQuantCalibrationController^ CreateQuantCalibrationController();
+//	IQuantCalibrationSettings^ GetQuantCalibrationSettings();
+
+	IEdChordListAcquisitionController^ CreateChordlistController();
+	IEdChordListSettings^ GetChordlistSettings();
+																																																																	
+	IMicroscopeController^ _microscopeController;
+	IEdSpectrumAcquisitionController^ _edSpectrumController;
+	IEdSpectrumSettings^ _edsSpectrumSettings;
+
+	IEdChordListSettings^ _edsChordListSetting;
+	IEdChordListAcquisitionController^ _edsChordListController;
+	IEdChordListScanCapabilities^ _edsChordListScanCapablities;
+
+	IImageAcquisitionController^ _imageAcqusitionController;
+	IImageAcquisitionSettings^ _imageAcqusitionSettings;
+
+	IQuantCalibrationController^ _SEMQuantController;
+	IQuantCalibrationSettings^ _SEMQuantSettings;
+
+	ISEMQuantCapabilities^ _SEMQuantCapabilities;
+
+	static Object^ GetSpectrumLockObject()
+	{
+		if (spectrumSyncLock == nullptr)
+		{
+			spectrumSyncLock = gcnew Object();
+		}
+
+		return spectrumSyncLock;
+	}
+	static Object^ spectrumSyncLock;
+
+	void ControllerThreadFunction();
+	Thread^ _controllerThread;
+
+	AutoResetEvent^ m_startControllerEvent;
+	AutoResetEvent^ m_endControllerEvent;
+
+	OxfordControllerData _oxfordControllerData;
+
+	bool m_bBeamPositionSet;
+
+	
+};
+
+ref class ManagedGlobals
+{
+public:
+	static OxfordControllerWrapper^ oxfordController = nullptr;
+};

+ 4 - 1
OTSCPP/OTSData/OTSParticle.h

@@ -68,7 +68,10 @@ const double Pi = 3.14159;
 		// rectangle
 		CRect GetParticleRect() 
 		{
-			
+			if (m_rectParticle.Width() == 0)
+			{
+				CalCoverRect();
+			}
 			return m_rectParticle;
 		
 		}

+ 4 - 0
OTSIncAMeasureApp/7-OTSProgMgrInfo/Stage/StageDisplayHelp.cs

@@ -72,6 +72,10 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
                 SolidBrush solidBrush = new SolidBrush(Color.FromArgb(50, Color.Black));
                 //字体大小 根据样品孔Rectangle大小
                 float fontSize = PixRect.Width / 4;
+                if(fontSize==0)
+                {
+                    fontSize = 1;
+                }
                 Font font = new Font("宋体", fontSize, FontStyle.Regular);
                 if (fontSize == 0)
                 {

+ 7 - 3
OTSIncAReportApp/OTSIncAReportApp.csproj

@@ -284,7 +284,9 @@
     <Reference Include="DevExpress.Sparkline.v21.2.Core, Version=21.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
       <Private>False</Private>
     </Reference>
-    <Reference Include="DevExpress.Utils.v21.2, Version=21.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
+    <Reference Include="DevExpress.Utils.v21.2, Version=21.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a">
+      <Private>True</Private>
+    </Reference>
     <Reference Include="DevExpress.Utils.v21.2.UI, Version=21.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a">
       <Private>False</Private>
     </Reference>
@@ -371,7 +373,7 @@
     <Reference Include="SourceGrid, Version=4.40.7083.30975, Culture=neutral, PublicKeyToken=df6f5e538749e85d, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\OpenDll\WordApiDll\SourceGrid.dll</HintPath>
-      <Private>False</Private>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System">
       <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.dll</HintPath>
@@ -380,7 +382,9 @@
       <HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="System.ComponentModel.DataAnnotations" />
+    <Reference Include="System.ComponentModel.DataAnnotations">
+      <Private>False</Private>
+    </Reference>
     <Reference Include="System.Core" />
     <Reference Include="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
     <Reference Include="System.Data.SQLite, Version=1.0.115.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=AMD64">

+ 86 - 86
OTSSysMgrApp/ControllerSettingForm.Designer.cs

@@ -104,7 +104,7 @@
             this.tabSetting.Margin = new System.Windows.Forms.Padding(2);
             this.tabSetting.Name = "tabSetting";
             this.tabSetting.SelectedIndex = 0;
-            this.tabSetting.Size = new System.Drawing.Size(835, 736);
+            this.tabSetting.Size = new System.Drawing.Size(835, 797);
             this.tabSetting.TabIndex = 2;
             // 
             // tabXRay
@@ -124,7 +124,7 @@
             this.tabXRay.Margin = new System.Windows.Forms.Padding(2);
             this.tabXRay.Name = "tabXRay";
             this.tabXRay.Padding = new System.Windows.Forms.Padding(2);
-            this.tabXRay.Size = new System.Drawing.Size(827, 710);
+            this.tabXRay.Size = new System.Drawing.Size(827, 771);
             this.tabXRay.TabIndex = 0;
             this.tabXRay.Text = "X-Ray设置";
             this.tabXRay.UseVisualStyleBackColor = true;
@@ -136,11 +136,11 @@
             | System.Windows.Forms.AnchorStyles.Right)));
             this.groupBox1.BackColor = System.Drawing.Color.White;
             this.groupBox1.Controls.Add(this.chartXRay);
-            this.groupBox1.Location = new System.Drawing.Point(6, 45);
+            this.groupBox1.Location = new System.Drawing.Point(6, 49);
             this.groupBox1.Margin = new System.Windows.Forms.Padding(2);
             this.groupBox1.Name = "groupBox1";
             this.groupBox1.Padding = new System.Windows.Forms.Padding(2);
-            this.groupBox1.Size = new System.Drawing.Size(819, 665);
+            this.groupBox1.Size = new System.Drawing.Size(819, 720);
             this.groupBox1.TabIndex = 16;
             this.groupBox1.TabStop = false;
             this.groupBox1.Text = "图像显示";
@@ -151,7 +151,7 @@
             chartArea1.Name = "ChartArea1";
             this.chartXRay.ChartAreas.Add(chartArea1);
             this.chartXRay.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.chartXRay.Location = new System.Drawing.Point(2, 16);
+            this.chartXRay.Location = new System.Drawing.Point(2, 15);
             this.chartXRay.Margin = new System.Windows.Forms.Padding(2);
             this.chartXRay.Name = "chartXRay";
             series1.ChartArea = "ChartArea1";
@@ -164,7 +164,7 @@
             series1.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int64;
             series1.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int64;
             this.chartXRay.Series.Add(series1);
-            this.chartXRay.Size = new System.Drawing.Size(815, 647);
+            this.chartXRay.Size = new System.Drawing.Size(815, 703);
             this.chartXRay.SuppressExceptions = true;
             this.chartXRay.TabIndex = 2;
             this.chartXRay.Text = "chart2";
@@ -172,10 +172,10 @@
             // btnClearData
             // 
             this.btnClearData.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnClearData.Location = new System.Drawing.Point(688, 9);
+            this.btnClearData.Location = new System.Drawing.Point(688, 10);
             this.btnClearData.Margin = new System.Windows.Forms.Padding(2);
             this.btnClearData.Name = "btnClearData";
-            this.btnClearData.Size = new System.Drawing.Size(39, 33);
+            this.btnClearData.Size = new System.Drawing.Size(39, 36);
             this.btnClearData.TabIndex = 5;
             this.btnClearData.Text = "清空";
             this.btnClearData.UseVisualStyleBackColor = true;
@@ -184,10 +184,10 @@
             // btnAreaRay
             // 
             this.btnAreaRay.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnAreaRay.Location = new System.Drawing.Point(476, 9);
+            this.btnAreaRay.Location = new System.Drawing.Point(458, 10);
             this.btnAreaRay.Margin = new System.Windows.Forms.Padding(2);
             this.btnAreaRay.Name = "btnAreaRay";
-            this.btnAreaRay.Size = new System.Drawing.Size(67, 33);
+            this.btnAreaRay.Size = new System.Drawing.Size(67, 36);
             this.btnAreaRay.TabIndex = 4;
             this.btnAreaRay.Text = "面积采集";
             this.btnAreaRay.UseVisualStyleBackColor = true;
@@ -196,10 +196,10 @@
             // btnPointXRay
             // 
             this.btnPointXRay.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnPointXRay.Location = new System.Drawing.Point(617, 9);
+            this.btnPointXRay.Location = new System.Drawing.Point(617, 10);
             this.btnPointXRay.Margin = new System.Windows.Forms.Padding(2);
             this.btnPointXRay.Name = "btnPointXRay";
-            this.btnPointXRay.Size = new System.Drawing.Size(67, 33);
+            this.btnPointXRay.Size = new System.Drawing.Size(67, 36);
             this.btnPointXRay.TabIndex = 3;
             this.btnPointXRay.Text = "多点采集";
             this.btnPointXRay.UseVisualStyleBackColor = true;
@@ -208,10 +208,10 @@
             // btnEanalysis
             // 
             this.btnEanalysis.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnEanalysis.Location = new System.Drawing.Point(756, 9);
+            this.btnEanalysis.Location = new System.Drawing.Point(756, 10);
             this.btnEanalysis.Margin = new System.Windows.Forms.Padding(2);
             this.btnEanalysis.Name = "btnEanalysis";
-            this.btnEanalysis.Size = new System.Drawing.Size(67, 33);
+            this.btnEanalysis.Size = new System.Drawing.Size(67, 36);
             this.btnEanalysis.TabIndex = 6;
             this.btnEanalysis.Text = "元素分析";
             this.btnEanalysis.UseVisualStyleBackColor = true;
@@ -220,32 +220,32 @@
             // btnDisplayXRay
             // 
             this.btnDisplayXRay.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnDisplayXRay.Location = new System.Drawing.Point(547, 9);
+            this.btnDisplayXRay.Location = new System.Drawing.Point(538, 10);
             this.btnDisplayXRay.Margin = new System.Windows.Forms.Padding(2);
             this.btnDisplayXRay.Name = "btnDisplayXRay";
-            this.btnDisplayXRay.Size = new System.Drawing.Size(67, 33);
+            this.btnDisplayXRay.Size = new System.Drawing.Size(76, 36);
             this.btnDisplayXRay.TabIndex = 2;
-            this.btnDisplayXRay.Text = "点采集";
+            this.btnDisplayXRay.Text = "默认点采集";
             this.btnDisplayXRay.UseVisualStyleBackColor = true;
             this.btnDisplayXRay.Click += new System.EventHandler(this.btnDisplayXRay_Click);
             // 
             // lbXrayCount
             // 
             this.lbXrayCount.AutoSize = true;
-            this.lbXrayCount.Location = new System.Drawing.Point(260, 19);
+            this.lbXrayCount.Location = new System.Drawing.Point(260, 21);
             this.lbXrayCount.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.lbXrayCount.Name = "lbXrayCount";
-            this.lbXrayCount.Size = new System.Drawing.Size(59, 12);
+            this.lbXrayCount.Size = new System.Drawing.Size(58, 13);
             this.lbXrayCount.TabIndex = 13;
             this.lbXrayCount.Text = "DropCount";
             // 
             // btnCollectionTime
             // 
             this.btnCollectionTime.Enabled = false;
-            this.btnCollectionTime.Location = new System.Drawing.Point(167, 15);
+            this.btnCollectionTime.Location = new System.Drawing.Point(167, 16);
             this.btnCollectionTime.Margin = new System.Windows.Forms.Padding(2);
             this.btnCollectionTime.Name = "btnCollectionTime";
-            this.btnCollectionTime.Size = new System.Drawing.Size(40, 21);
+            this.btnCollectionTime.Size = new System.Drawing.Size(40, 23);
             this.btnCollectionTime.TabIndex = 8;
             this.btnCollectionTime.Text = "Test";
             this.btnCollectionTime.UseVisualStyleBackColor = true;
@@ -254,30 +254,30 @@
             // 
             // tbCollectionTime
             // 
-            this.tbCollectionTime.Location = new System.Drawing.Point(76, 16);
+            this.tbCollectionTime.Location = new System.Drawing.Point(76, 17);
             this.tbCollectionTime.Margin = new System.Windows.Forms.Padding(2);
             this.tbCollectionTime.Name = "tbCollectionTime";
-            this.tbCollectionTime.Size = new System.Drawing.Size(63, 21);
+            this.tbCollectionTime.Size = new System.Drawing.Size(63, 20);
             this.tbCollectionTime.TabIndex = 1;
             this.tbCollectionTime.Text = "120";
             // 
             // label2
             // 
             this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(143, 19);
+            this.label2.Location = new System.Drawing.Point(143, 21);
             this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(17, 12);
+            this.label2.Size = new System.Drawing.Size(20, 13);
             this.label2.TabIndex = 0;
             this.label2.Text = "ms";
             // 
             // lblCollectionTime
             // 
             this.lblCollectionTime.AutoSize = true;
-            this.lblCollectionTime.Location = new System.Drawing.Point(1, 19);
+            this.lblCollectionTime.Location = new System.Drawing.Point(1, 21);
             this.lblCollectionTime.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.lblCollectionTime.Name = "lblCollectionTime";
-            this.lblCollectionTime.Size = new System.Drawing.Size(53, 12);
+            this.lblCollectionTime.Size = new System.Drawing.Size(55, 13);
             this.lblCollectionTime.TabIndex = 0;
             this.lblCollectionTime.Text = "采集时间";
             // 
@@ -295,7 +295,7 @@
             this.tabImage.Margin = new System.Windows.Forms.Padding(2);
             this.tabImage.Name = "tabImage";
             this.tabImage.Padding = new System.Windows.Forms.Padding(2);
-            this.tabImage.Size = new System.Drawing.Size(827, 710);
+            this.tabImage.Size = new System.Drawing.Size(827, 771);
             this.tabImage.TabIndex = 1;
             this.tabImage.Text = "BSE设置";
             this.tabImage.UseVisualStyleBackColor = true;
@@ -312,10 +312,10 @@
             "64",
             "128",
             "256"});
-            this.ddlDwellTime.Location = new System.Drawing.Point(266, 16);
+            this.ddlDwellTime.Location = new System.Drawing.Point(266, 17);
             this.ddlDwellTime.Margin = new System.Windows.Forms.Padding(2);
             this.ddlDwellTime.Name = "ddlDwellTime";
-            this.ddlDwellTime.Size = new System.Drawing.Size(82, 20);
+            this.ddlDwellTime.Size = new System.Drawing.Size(82, 21);
             this.ddlDwellTime.TabIndex = 3;
             // 
             // groupBox2
@@ -326,11 +326,11 @@
             this.groupBox2.BackColor = System.Drawing.Color.White;
             this.groupBox2.Controls.Add(this.panel1);
             this.groupBox2.Controls.Add(this.btnClear);
-            this.groupBox2.Location = new System.Drawing.Point(6, 45);
+            this.groupBox2.Location = new System.Drawing.Point(6, 49);
             this.groupBox2.Margin = new System.Windows.Forms.Padding(2);
             this.groupBox2.Name = "groupBox2";
             this.groupBox2.Padding = new System.Windows.Forms.Padding(2);
-            this.groupBox2.Size = new System.Drawing.Size(822, 665);
+            this.groupBox2.Size = new System.Drawing.Size(822, 720);
             this.groupBox2.TabIndex = 13;
             this.groupBox2.TabStop = false;
             this.groupBox2.Text = "图像显示";
@@ -340,10 +340,10 @@
             this.panel1.AutoScroll = true;
             this.panel1.Controls.Add(this.pbImage);
             this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.panel1.Location = new System.Drawing.Point(2, 16);
+            this.panel1.Location = new System.Drawing.Point(2, 15);
             this.panel1.Margin = new System.Windows.Forms.Padding(2);
             this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(818, 647);
+            this.panel1.Size = new System.Drawing.Size(818, 703);
             this.panel1.TabIndex = 2;
             // 
             // pbImage
@@ -353,7 +353,7 @@
             this.pbImage.Location = new System.Drawing.Point(0, 0);
             this.pbImage.Margin = new System.Windows.Forms.Padding(2);
             this.pbImage.Name = "pbImage";
-            this.pbImage.Size = new System.Drawing.Size(818, 647);
+            this.pbImage.Size = new System.Drawing.Size(818, 703);
             this.pbImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
             this.pbImage.TabIndex = 0;
             this.pbImage.TabStop = false;
@@ -361,10 +361,10 @@
             // btnClear
             // 
             this.btnClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnClear.Location = new System.Drawing.Point(750, 77);
+            this.btnClear.Location = new System.Drawing.Point(750, 83);
             this.btnClear.Margin = new System.Windows.Forms.Padding(2);
             this.btnClear.Name = "btnClear";
-            this.btnClear.Size = new System.Drawing.Size(67, 50);
+            this.btnClear.Size = new System.Drawing.Size(67, 54);
             this.btnClear.TabIndex = 1;
             this.btnClear.Text = "Clear";
             this.btnClear.UseVisualStyleBackColor = true;
@@ -374,10 +374,10 @@
             // btnSaveImage
             // 
             this.btnSaveImage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnSaveImage.Location = new System.Drawing.Point(550, 8);
+            this.btnSaveImage.Location = new System.Drawing.Point(550, 9);
             this.btnSaveImage.Margin = new System.Windows.Forms.Padding(2);
             this.btnSaveImage.Name = "btnSaveImage";
-            this.btnSaveImage.Size = new System.Drawing.Size(67, 33);
+            this.btnSaveImage.Size = new System.Drawing.Size(67, 36);
             this.btnSaveImage.TabIndex = 4;
             this.btnSaveImage.Text = "保存图片";
             this.btnSaveImage.UseVisualStyleBackColor = true;
@@ -387,10 +387,10 @@
             // btnDisplay
             // 
             this.btnDisplay.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnDisplay.Location = new System.Drawing.Point(756, 8);
+            this.btnDisplay.Location = new System.Drawing.Point(756, 9);
             this.btnDisplay.Margin = new System.Windows.Forms.Padding(2);
             this.btnDisplay.Name = "btnDisplay";
-            this.btnDisplay.Size = new System.Drawing.Size(67, 33);
+            this.btnDisplay.Size = new System.Drawing.Size(67, 36);
             this.btnDisplay.TabIndex = 5;
             this.btnDisplay.Text = "图像采集";
             this.btnDisplay.UseVisualStyleBackColor = true;
@@ -398,39 +398,39 @@
             // 
             // tbRHeight
             // 
-            this.tbRHeight.Location = new System.Drawing.Point(119, 15);
+            this.tbRHeight.Location = new System.Drawing.Point(119, 16);
             this.tbRHeight.Margin = new System.Windows.Forms.Padding(2);
             this.tbRHeight.Name = "tbRHeight";
-            this.tbRHeight.Size = new System.Drawing.Size(48, 21);
+            this.tbRHeight.Size = new System.Drawing.Size(48, 20);
             this.tbRHeight.TabIndex = 2;
             this.tbRHeight.Text = "768";
             // 
             // tbRWidth
             // 
-            this.tbRWidth.Location = new System.Drawing.Point(66, 15);
+            this.tbRWidth.Location = new System.Drawing.Point(66, 16);
             this.tbRWidth.Margin = new System.Windows.Forms.Padding(2);
             this.tbRWidth.Name = "tbRWidth";
-            this.tbRWidth.Size = new System.Drawing.Size(48, 21);
+            this.tbRWidth.Size = new System.Drawing.Size(48, 20);
             this.tbRWidth.TabIndex = 1;
             this.tbRWidth.Text = "1024";
             // 
             // lblDwellTime
             // 
             this.lblDwellTime.AutoSize = true;
-            this.lblDwellTime.Location = new System.Drawing.Point(189, 19);
+            this.lblDwellTime.Location = new System.Drawing.Point(189, 21);
             this.lblDwellTime.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.lblDwellTime.Name = "lblDwellTime";
-            this.lblDwellTime.Size = new System.Drawing.Size(53, 12);
+            this.lblDwellTime.Size = new System.Drawing.Size(55, 13);
             this.lblDwellTime.TabIndex = 10;
             this.lblDwellTime.Text = "采集时间";
             // 
             // lblResolution
             // 
             this.lblResolution.AutoSize = true;
-            this.lblResolution.Location = new System.Drawing.Point(-3, 19);
+            this.lblResolution.Location = new System.Drawing.Point(-3, 21);
             this.lblResolution.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.lblResolution.Name = "lblResolution";
-            this.lblResolution.Size = new System.Drawing.Size(41, 12);
+            this.lblResolution.Size = new System.Drawing.Size(43, 13);
             this.lblResolution.TabIndex = 10;
             this.lblResolution.Text = "分辨率";
             // 
@@ -440,14 +440,14 @@
             this.tabImage2.Location = new System.Drawing.Point(4, 22);
             this.tabImage2.Name = "tabImage2";
             this.tabImage2.Padding = new System.Windows.Forms.Padding(3);
-            this.tabImage2.Size = new System.Drawing.Size(827, 710);
+            this.tabImage2.Size = new System.Drawing.Size(827, 771);
             this.tabImage2.TabIndex = 2;
             this.tabImage2.Text = "轴方向测试";
             this.tabImage2.UseVisualStyleBackColor = true;
             // 
             // splitContainer1
             // 
-            this.splitContainer1.Location = new System.Drawing.Point(7, 8);
+            this.splitContainer1.Location = new System.Drawing.Point(7, 9);
             this.splitContainer1.Name = "splitContainer1";
             this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
             // 
@@ -472,68 +472,68 @@
             this.splitContainer1.Panel2.Controls.Add(this.pictureBox4);
             this.splitContainer1.Panel2.Controls.Add(this.pictureBox2);
             this.splitContainer1.Panel2.Controls.Add(this.pictureBox1);
-            this.splitContainer1.Size = new System.Drawing.Size(813, 695);
-            this.splitContainer1.SplitterDistance = 83;
+            this.splitContainer1.Size = new System.Drawing.Size(813, 753);
+            this.splitContainer1.SplitterDistance = 89;
             this.splitContainer1.TabIndex = 3;
             // 
             // label5
             // 
             this.label5.AutoSize = true;
-            this.label5.Location = new System.Drawing.Point(512, 53);
+            this.label5.Location = new System.Drawing.Point(512, 57);
             this.label5.Name = "label5";
-            this.label5.Size = new System.Drawing.Size(131, 12);
+            this.label5.Size = new System.Drawing.Size(127, 13);
             this.label5.TabIndex = 15;
             this.label5.Text = "请在 100 放大倍数调试";
             // 
             // cb_imageresolution
             // 
             this.cb_imageresolution.FormattingEnabled = true;
-            this.cb_imageresolution.Location = new System.Drawing.Point(66, 45);
+            this.cb_imageresolution.Location = new System.Drawing.Point(66, 49);
             this.cb_imageresolution.Name = "cb_imageresolution";
-            this.cb_imageresolution.Size = new System.Drawing.Size(121, 20);
+            this.cb_imageresolution.Size = new System.Drawing.Size(121, 21);
             this.cb_imageresolution.TabIndex = 14;
             // 
             // label4
             // 
             this.label4.AutoSize = true;
-            this.label4.Location = new System.Drawing.Point(7, 48);
+            this.label4.Location = new System.Drawing.Point(7, 52);
             this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(47, 12);
+            this.label4.Size = new System.Drawing.Size(46, 13);
             this.label4.TabIndex = 13;
             this.label4.Text = "分辨率:";
             // 
             // label3
             // 
             this.label3.AutoSize = true;
-            this.label3.Location = new System.Drawing.Point(597, 11);
+            this.label3.Location = new System.Drawing.Point(597, 12);
             this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(29, 12);
+            this.label3.Size = new System.Drawing.Size(31, 13);
             this.label3.TabIndex = 8;
             this.label3.Text = "微米";
             // 
             // tB_scanFieldSize100
             // 
-            this.tB_scanFieldSize100.Location = new System.Drawing.Point(491, 7);
+            this.tB_scanFieldSize100.Location = new System.Drawing.Point(491, 8);
             this.tB_scanFieldSize100.Name = "tB_scanFieldSize100";
-            this.tB_scanFieldSize100.Size = new System.Drawing.Size(100, 21);
+            this.tB_scanFieldSize100.Size = new System.Drawing.Size(100, 20);
             this.tB_scanFieldSize100.TabIndex = 7;
             this.tB_scanFieldSize100.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
             // 
             // label1
             // 
             this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(391, 11);
+            this.label1.Location = new System.Drawing.Point(391, 12);
             this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(107, 12);
+            this.label1.Size = new System.Drawing.Size(103, 13);
             this.label1.TabIndex = 6;
             this.label1.Text = "100倍下屏幕宽度:";
             // 
             // btn_confirm
             // 
-            this.btn_confirm.Location = new System.Drawing.Point(730, 11);
+            this.btn_confirm.Location = new System.Drawing.Point(730, 12);
             this.btn_confirm.Name = "btn_confirm";
-            this.btn_confirm.Size = new System.Drawing.Size(75, 60);
+            this.btn_confirm.Size = new System.Drawing.Size(75, 65);
             this.btn_confirm.TabIndex = 5;
             this.btn_confirm.Text = "保存";
             this.btn_confirm.UseVisualStyleBackColor = true;
@@ -543,17 +543,17 @@
             // 
             this.cb_Ydirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
             this.cb_Ydirection.FormattingEnabled = true;
-            this.cb_Ydirection.Location = new System.Drawing.Point(259, 7);
+            this.cb_Ydirection.Location = new System.Drawing.Point(259, 8);
             this.cb_Ydirection.Name = "cb_Ydirection";
-            this.cb_Ydirection.Size = new System.Drawing.Size(119, 20);
+            this.cb_Ydirection.Size = new System.Drawing.Size(119, 21);
             this.cb_Ydirection.TabIndex = 4;
             // 
             // label_y
             // 
             this.label_y.AutoSize = true;
-            this.label_y.Location = new System.Drawing.Point(193, 11);
+            this.label_y.Location = new System.Drawing.Point(193, 12);
             this.label_y.Name = "label_y";
-            this.label_y.Size = new System.Drawing.Size(71, 12);
+            this.label_y.Size = new System.Drawing.Size(66, 13);
             this.label_y.TabIndex = 3;
             this.label_y.Text = "y轴正方向:";
             // 
@@ -561,25 +561,25 @@
             // 
             this.cb_Xdirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
             this.cb_Xdirection.FormattingEnabled = true;
-            this.cb_Xdirection.Location = new System.Drawing.Point(68, 8);
+            this.cb_Xdirection.Location = new System.Drawing.Point(68, 9);
             this.cb_Xdirection.Name = "cb_Xdirection";
-            this.cb_Xdirection.Size = new System.Drawing.Size(119, 20);
+            this.cb_Xdirection.Size = new System.Drawing.Size(119, 21);
             this.cb_Xdirection.TabIndex = 2;
             // 
             // label_x
             // 
             this.label_x.AutoSize = true;
-            this.label_x.Location = new System.Drawing.Point(3, 11);
+            this.label_x.Location = new System.Drawing.Point(3, 12);
             this.label_x.Name = "label_x";
-            this.label_x.Size = new System.Drawing.Size(71, 12);
+            this.label_x.Size = new System.Drawing.Size(66, 13);
             this.label_x.TabIndex = 1;
             this.label_x.Text = "x轴正方向:";
             // 
             // btn_continuousshot
             // 
-            this.btn_continuousshot.Location = new System.Drawing.Point(649, 11);
+            this.btn_continuousshot.Location = new System.Drawing.Point(649, 12);
             this.btn_continuousshot.Name = "btn_continuousshot";
-            this.btn_continuousshot.Size = new System.Drawing.Size(75, 61);
+            this.btn_continuousshot.Size = new System.Drawing.Size(75, 66);
             this.btn_continuousshot.TabIndex = 0;
             this.btn_continuousshot.Text = "轴方向验证";
             this.btn_continuousshot.UseVisualStyleBackColor = true;
@@ -589,10 +589,10 @@
             // 
             this.pictureBox3.BackColor = System.Drawing.Color.White;
             this.pictureBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.pictureBox3.Location = new System.Drawing.Point(405, 305);
+            this.pictureBox3.Location = new System.Drawing.Point(405, 330);
             this.pictureBox3.Margin = new System.Windows.Forms.Padding(2);
             this.pictureBox3.Name = "pictureBox3";
-            this.pictureBox3.Size = new System.Drawing.Size(400, 300);
+            this.pictureBox3.Size = new System.Drawing.Size(400, 325);
             this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
             this.pictureBox3.TabIndex = 4;
             this.pictureBox3.TabStop = false;
@@ -601,10 +601,10 @@
             // 
             this.pictureBox4.BackColor = System.Drawing.Color.White;
             this.pictureBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.pictureBox4.Location = new System.Drawing.Point(5, 305);
+            this.pictureBox4.Location = new System.Drawing.Point(5, 330);
             this.pictureBox4.Margin = new System.Windows.Forms.Padding(2);
             this.pictureBox4.Name = "pictureBox4";
-            this.pictureBox4.Size = new System.Drawing.Size(400, 300);
+            this.pictureBox4.Size = new System.Drawing.Size(400, 325);
             this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
             this.pictureBox4.TabIndex = 3;
             this.pictureBox4.TabStop = false;
@@ -616,7 +616,7 @@
             this.pictureBox2.Location = new System.Drawing.Point(405, 5);
             this.pictureBox2.Margin = new System.Windows.Forms.Padding(2);
             this.pictureBox2.Name = "pictureBox2";
-            this.pictureBox2.Size = new System.Drawing.Size(400, 300);
+            this.pictureBox2.Size = new System.Drawing.Size(400, 325);
             this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
             this.pictureBox2.TabIndex = 2;
             this.pictureBox2.TabStop = false;
@@ -628,21 +628,21 @@
             this.pictureBox1.Location = new System.Drawing.Point(5, 5);
             this.pictureBox1.Margin = new System.Windows.Forms.Padding(2);
             this.pictureBox1.Name = "pictureBox1";
-            this.pictureBox1.Size = new System.Drawing.Size(400, 300);
+            this.pictureBox1.Size = new System.Drawing.Size(400, 325);
             this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
             this.pictureBox1.TabIndex = 1;
             this.pictureBox1.TabStop = false;
             // 
             // ControllerSettingForm
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.BackColor = System.Drawing.Color.White;
-            this.ClientSize = new System.Drawing.Size(835, 736);
+            this.ClientSize = new System.Drawing.Size(835, 797);
             this.Controls.Add(this.tabSetting);
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
             this.Margin = new System.Windows.Forms.Padding(2);
-            this.MinimumSize = new System.Drawing.Size(639, 403);
+            this.MinimumSize = new System.Drawing.Size(639, 433);
             this.Name = "ControllerSettingForm";
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
             this.Text = "BSEAndXrayTest";

+ 2 - 2
OTSSysMgrApp/ControllerSettingForm.cs

@@ -885,7 +885,7 @@ namespace OTSSysMgrApp
                             cOTSParticleClrs.Add(cOTSParticle);
                         }
 
-                        //m_EDSHardwareMgr.SetResolution(int.Parse(tbRWidth.Text), int.Parse(tbRHeight.Text));
+                        m_EDSHardwareMgr.SetResolution(int.Parse(tbRWidth.Text), int.Parse(tbRHeight.Text));
                         bool result=m_EDSHardwareMgr.GetXRayByParts(cOTSParticleClrs, a_Milliseconds, false);
                         if(!result)
                         {
@@ -1307,7 +1307,7 @@ namespace OTSSysMgrApp
             finally
             {
                 m_Sem.SetScanExternal(false);
-                m_Sem.DisConnect();
+              
                 btn_continuousshot.Enabled = true;
                 btn_confirm.Enabled = true;
                 btn_continuousshot.Refresh();