Ejemplo n.º 1
0
 public bool GetSingleBeam(int spectrometerIndex, ref Spectrometer.SpecInfo SpInfo, bool isBKGrdFlag)
 {
     if (isBKGrdFlag)
     {
         this.SetParameters(Spectrometer.spectrometerIndex, Spectrometer.IntegrationTimeBK);
     }
     else
     {
         this.SetParameters(Spectrometer.spectrometerIndex, Spectrometer.IntegrationTime);
     }
     SpInfo.numPixls = this.wrapper.getNumberOfPixels(spectrometerIndex);
     try
     {
         SpInfo.WavelengthArray = this.wrapper.getWavelengths(spectrometerIndex);
     }
     catch (Exception ex)
     {
         int num = (int)MessageBox.Show(ex.ToString());
     }
     DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss-fff");
     SpInfo.DataA = this.wrapper.getSpectrum(spectrometerIndex);
     DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss-fff");
     if (SpInfo.WavelengthArray.Length <= 10 || SpInfo.DataA.Length <= 10)
     {
         return(false);
     }
     SpInfo.DataX = SpInfo.WavelengthArray;
     return(true);
 }
Ejemplo n.º 2
0
 private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     if (this.timer1.Enabled)
     {
         SpInfo = (Spectrometer.SpecInfo)e.Result;
         this.DrawEnergyValue();
     }
 }
Ejemplo n.º 3
0
 public void GetSingleBeamOnly(int spectrometerIndex, ref Spectrometer.SpecInfo SpInfo)
 {
     for (int index = 0; index < SpInfo.DataA.Length; ++index)
     {
         SpInfo.DataA[index] = 0.0;
     }
     this.wrapper.setIntegrationTime(spectrometerIndex, Spectrometer.IntegrationTime);
     SpInfo.DataA = this.wrapper.getSpectrum(spectrometerIndex);
 }
Ejemplo n.º 4
0
 public void ReadDK(ref Spectrometer.SpecInfo SpInfo)
 {
     if (File.Exists(Environment.CurrentDirectory.ToString() + "\\dark"))
     {
         int length = this.DataIOmy.TXTReadData(Environment.CurrentDirectory.ToString() + "\\dark", ref SpInfo.DataX, ref SpInfo.DataAD, true);
         SpInfo.DataAD = new double[length];
         this.DataIOmy.TXTReadData(Environment.CurrentDirectory.ToString() + "\\dark", ref SpInfo.DataX, ref SpInfo.DataAD, false);
     }
     else
     {
         int num = (int)MessageBox.Show("背景文件不存在,请先采集背景!");
     }
 }
Ejemplo n.º 5
0
 public bool GetSpec(int spectrometerIndex, ref Spectrometer.SpecInfo SpInfo, int WaitTime, BackgroundWorker bk)
 {
     this.SetParameters(Spectrometer.spectrometerIndex, Spectrometer.IntegrationTime);
     SpInfo.numPixls        = this.wrapper.getNumberOfPixels(spectrometerIndex);
     SpInfo.WavelengthArray = this.wrapper.getWavelengths(spectrometerIndex);
     this.wrapper.setScansToAverage(spectrometerIndex, Spectrometer.ScanTimes);
     for (int percentProgress = 0; percentProgress < 5; ++percentProgress)
     {
         Thread.Sleep(1000);
         bk.ReportProgress(percentProgress);
     }
     SpInfo.DataA = this.wrapper.getSpectrum(spectrometerIndex);
     bk.ReportProgress(5);
     if (SpInfo.WavelengthArray.Length <= 10 || SpInfo.DataA.Length <= 10)
     {
         return(false);
     }
     SpInfo.DataX = SpInfo.WavelengthArray;
     if (SpInfo.DataAB.Length != SpInfo.DataA.Length)
     {
         return(false);
     }
     SpInfo.DataY = new double[SpInfo.numPixls];
     for (int index = 0; index < SpInfo.DataA.Length; ++index)
     {
         try
         {
             SpInfo.DataY[index] = !Spectrometer.isClearDarks ? Convert.ToDouble(Math.Log10(Math.Abs(SpInfo.DataAB[index] / SpInfo.DataA[index]))) : Convert.ToDouble(Math.Log10(Math.Abs((SpInfo.DataAB[index] - SpInfo.DataAD[index]) / (SpInfo.DataA[index] - SpInfo.DataAD[index]))));
         }
         catch
         {
             SpInfo.DataY[index] = index <= 0 ? 0.0 : SpInfo.DataY[index - 1];
         }
     }
     return(true);
 }
Ejemplo n.º 6
0
 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
 {
     Spectrometer.SpecInfo argument = (Spectrometer.SpecInfo)e.Argument;
     this.MySpectrometer.GetSingleBeam(Spectrometer.spectrometerIndex, ref argument, false);
     e.Result = argument;
 }