Beispiel #1
0
 void statusBar1_StartStopClick(object sender, EventArgs e)
 {
     if (task.bRunning)
     {
         statusBar1.pause  = false;
         statusBar1.status = RUN_STATE.STOPPING;
         task.Stop();
     }
     else
     {
         RsInfo rs = Program.lst_rsinfo[Program.mainwnd.selectedRs];
         RxInfo rx = Program.lst_rxinfo[Program.mainwnd.selectedRx];
         statusBar1.total  = syscfg.iMeasTimes;
         statusBar1.count  = 1;
         statusBar1.status = RUN_STATE.INITIALIZING;
         DeviceMgr.Log(String.Format(@"==== New Measurement Paramter========
                                     Measure times = {0}\r\nRs ID = {1}\r\nRs Value = {2}\r\nRs Temp. Alpha = {3}\r\nRs Temp. Beta = {4}\r\n
                                     Temperature = {5}\r\nRx ID = {6}\r\nSample times = {7}\r\nSwitch delay = {8}\r\n
                                     Filter = {9}\r\nFilter Length = {10}\r\nMeasure delay = {12}\r\n
                                     AutoFilter = {13}\r\nRx curr. = {14}\r\n
                                     New Measurement Started...", syscfg.iMeasTimes.ToString(), rs.sSerial, rs.dValue.ToString("F8"), rs.dAlpha.ToString("F3"), rs.dBeta.ToString("F3"),
                                     syscfg.dTemp.ToString("F3"), rx.sSerial, syscfg.iSampleTimes, syscfg.iKTT,
                                     syscfg.sFilterType, syscfg.iFilter, syscfg.iMeasDelay, syscfg.bThrow, rx.iIx
                                     ));
         task.Start();
         Program.data.ClearAll();
         foreach (RxDisplay rxdisp in Enumerable.Range(1, 4).Select(x => findrx(x)))
         {
             rxdisp.ReDraw();
         }
     }
 }
Beispiel #2
0
 public void LogComplete()
 {
     DeviceMgr.Log("...... Summary Begin ......");
     DeviceMgr.Log(String.Format("Rx(mean):{0}\nMax:{1}\nMin:{2}\nRx/Rs:{3}\nStdev:{4}", GetData(RXDATA_MODE.AVERAGE),
                                 GetData(RXDATA_MODE.MAX),
                                 GetData(RXDATA_MODE.MIN),
                                 GetData(RXDATA_MODE.RATIO),
                                 GetData(RXDATA_MODE.VARIANCE)));
     DeviceMgr.Log("...... Summary End ...... ");
 }
Beispiel #3
0
 public void LogComplete()
 {
     DeviceMgr.Log(String.Format(@"...... 数据汇总 开始 ......
     Rx(平均值):{0}
     最大值:    {1}
     最小值:    {2}
     Rx/Rs:     {3}
     标准差:    {4}
     不确定度:  {4}", GetData(RXDATA_MODE.AVERAGE),
                                 GetData(RXDATA_MODE.MAX),
                                 GetData(RXDATA_MODE.MIN),
                                 GetData(RXDATA_MODE.RATIO),
                                 GetData(RXDATA_MODE.VARIANCE)));
     DeviceMgr.Log("...... 数据汇总 结束 ...... ");
 }
Beispiel #4
0
 public void LogComplete()
 {
     /*
      * DeviceMgr.Log(String.Format(@"...... 数据汇总 开始 ......
      * Rx(平均值):{0}
      * 最大值:    {1}
      * 最小值:    {2}
      * Rx/Rs:     {3}
      * 标准差:    {4}
      * 不确定度:  {4}", GetData(RXDATA_MODE.AVERAGE),
      *  GetData(RXDATA_MODE.MAX),
      *  GetData(RXDATA_MODE.MIN),
      *  GetData(RXDATA_MODE.RATIO),
      *  GetData(RXDATA_MODE.VARIANCE)));
      */
     DeviceMgr.Log("...... 数据汇总 结束 ...... ");
 }
Beispiel #5
0
        //change the new reading base on history
        public bool AddNewValue(ref double newreading)
        {
            int drop = 2;

            if (valfilter.Count == 0) //1st reading
            {
                SysConfig syscfg = RunWnd.syscfg;
                DeviceMgr.Log(String.Format(@"==== 新测量参数========
    测量次数 = {0}
    标准电阻ID = {1}
    标准电阻阻值 = {2}
    标准电阻温度系数. Alpha = {3}
    标准电阻温度系数. Beta = {4}
    温度 = {5}
    被测电阻ID = {6}
    单次采样次数 = {7}
    换向时间(秒) = {8}
    测量间隔(秒) = {9}
    电流值(A) = {10}
    滤波器 = {11}
    新测量开始...", syscfg.iMeasTimes.ToString(), rs.sSerial, rs.dValue.ToString("F8"), rs.dAlpha.ToString("F3"),
                                            rs.dBeta.ToString("F3"),
                                            syscfg.dTemp.ToString("F3"), rx.sSerial, syscfg.iSampleTimes, syscfg.iKTT,
                                            syscfg.iMeasDelay, rx.var.iSrc, syscfg.iFilter
                                            ));
            }
            valfilter.Add(newreading);
            if (valfilter.Count < 4)
            {
                return(false);
            }

            if ((RunWnd.syscfg.iFilter + drop) >= valfilter.Count)
            {
                newreading = valfilter.Skip(2).Average();
            }
            else
            {
                newreading = valfilter.Skip(valfilter.Count - RunWnd.syscfg.iFilter).Average();
            }
            iMeasCnt++;
            return(true);
        }
Beispiel #6
0
        private void DoNextMeasure()
        {
            RsInfo rs = runstate.selectedRs.Dequeue();
            RxInfo rx = runstate.selectedRx.Dequeue();

            status = RUN_STATE.INITIALIZING;

            if (false)
            {
                SysConfig syscfg = Program.sysinfo;

                DeviceMgr.Log(String.Format(@"==== New Measurement Paramter========
                                            Measure times = {0}\r\nRs ID = {1}\r\nRs Value = {2}\r\nRs Temp. Alpha = {3}\r\nRs Temp. Beta = {4}\r\n
                                            Temperature = {5}\r\nRx ID = {6}\r\nSample times = {7}\r\nSwitch delay = {8}\r\n
                                            Filter = {9}\r\nFilter Length = {10}\r\nMeasure delay = {12}\r\n
                                            AutoFilter = {13}\r\nRx curr. = {14}\r\n
                                            New Measurement Started...", syscfg.iMeasTimes.ToString(), rs.sSerial, rs.dValue.ToString("F8"), rs.dAlpha.ToString("F3"), rs.dBeta.ToString("F3"),
                                            syscfg.dTemp.ToString("F3"), rx.sSerial, syscfg.iSampleTimes, syscfg.iKTT,
                                            syscfg.sFilterType, syscfg.iFilter, syscfg.iMeasDelay, syscfg.bThrow, rx.iIx
                                            ));
            }
            task.Start(rx, rs);
        }
Beispiel #7
0
 private static bool tmlock = false; //lock for timer handler
 void uiTimer_Tick(object sender, EventArgs e)
 {
     if (tmlock)
     {
         return;
     }
     tmlock = true;
     if (DeviceMgr.Loaded && statusBar1.status == RUN_STATE.DISABLED)
     {
         statusBar1.status = RUN_STATE.IDLE;
     }
     if (lastcall != "")
     {
         if (lastcall == "newtime")
         {
             lastcall = "";
             Program.kbd.Init(StringResource.str("enter_newtime"), "newtime", false, KbdData);
         }
         tmlock = false;
         return;
     }
     else
     {
         if (task.bRunning)
         {
             task.Step();
             statusBar1.pause   = task.bPaused;
             statusBar1.waiting = task.waiting;
             if (!task.bRunning)
             {
                 statusBar1.status = RUN_STATE.IDLE;
                 DeviceMgr.Log("测量结束...");
             }
         }
     }
     tmlock = false;
 }
Beispiel #8
0
        private static bool tmlock = false; //lock for timer handler
        void uiTimer_Tick(object sender, EventArgs e)
        {
            if (tmlock)
            {
                return;
            }
            tmlock = true;
            if (DeviceMgr.Loaded && status == RUN_STATE.DISABLED)
            {
                status = RUN_STATE.IDLE;
            }

            if (task.bRunning)
            {
                task.Step();
                if (!task.bRunning)
                {
                    status = RUN_STATE.IDLE;
                    DeviceMgr.Log("Measurement Stopped...");
                }
            }

            tmlock = false;
        }
Beispiel #9
0
 public void LogData(int index, double value)
 {
     DeviceMgr.Log(String.Format("读数 {0} = {1}", index.ToString(), Util.FormatData(value, 8)));
 }