/// <summary> /// ON/OFF曲线 /// </summary> private void refreshChart() { try { if (_udcChart == null) { _udcChart = new udcChartOnOff(); _udcChart.Dock = DockStyle.Fill; panel1.Controls.Add(_udcChart, 0, 2); } int maxAC = 0; for (int i = 0; i < ONOFF_MAX; i++) { if (maxAC < _udcOnOff[i].acv) { maxAC = _udcOnOff[i].acv; } } _udcChart.maxVolt = maxAC; _udcChart.biTime = System.Convert.ToDouble(txtTotalTime.Text) / 60; List <udcChartOnOff.COnOff> itemList = new List <udcChartOnOff.COnOff>(); for (int i = 0; i < ONOFF_MAX; i++) { udcChartOnOff.COnOff item = new udcChartOnOff.COnOff(); item.curVolt = _udcOnOff[i].acv; item.onTimes = System.Convert.ToInt32(_udcOnOff[i].onTime); item.offTimes = System.Convert.ToInt32(_udcOnOff[i].offTime); item.onoffTimes = System.Convert.ToInt32(_udcOnOff[i].onoffTime) * (item.onTimes + item.offTimes); item.outPutType = _udcOnOff[i].outPutType; itemList.Add(item); } _udcChart.onoff = itemList; _udcChart.Refresh(); } catch (Exception) { throw; } }
private void FrmACVolt_Load(object sender, EventArgs e) { labStartTime.Text = _CtrlAC.StartTime; TimeSpan ts = new TimeSpan(0, 0, _CtrlAC.RunTime); labRunTime.Text = ts.Days.ToString("D2") + ":" + ts.Hours.ToString("D2") + ":" + ts.Minutes.ToString("D2") + ":" + ts.Seconds.ToString("D2"); labCurVolt.Text = _CtrlAC.CurVolt.ToString(); labWaveVolt.Text = _CtrlAC.CurVolt.ToString(); uiOnOff = new udcChartOnOff(); uiOnOff.Dock = DockStyle.Fill; panel1.Controls.Add(uiOnOff, 0, 1); int maxAC = 0; uiOnOff.biTime = _CtrlAC.TotalTime; List <udcChartOnOff.COnOff> itemList = new List <udcChartOnOff.COnOff>(); for (int i = 0; i < _CtrlAC.Time.OnOff.Count; i++) { udcChartOnOff.COnOff onoff = new udcChartOnOff.COnOff(); onoff.curVolt = _CtrlAC.Time.OnOff[i].ACV; onoff.onoffTimes = _CtrlAC.Time.OnOff[i].OnOffTime; onoff.onTimes = _CtrlAC.Time.OnOff[i].OnTime; onoff.offTimes = _CtrlAC.Time.OnOff[i].OffTime; itemList.Add(onoff); if (_CtrlAC.Time.OnOff[i].ACV > maxAC) { maxAC = _CtrlAC.Time.OnOff[i].ACV; } } uiOnOff.maxVolt = maxAC; uiOnOff.onoff = itemList; uiOnOff.Refresh(); uiOnOff.startRun(_CtrlAC.RunTime); timer1.Enabled = true; }
private void refreshOnOff() { int acv = 0; _udcChart.biTime = ((double)runUUT.Para.BurnTime) / 3600; List <udcChartOnOff.COnOff> itemList = new List <udcChartOnOff.COnOff>(); for (int i = 0; i < runUUT.OnOff.OnOff.Count; i++) { udcChartOnOff.COnOff onoff = new udcChartOnOff.COnOff(); onoff.curVolt = runUUT.OnOff.OnOff[i].ACV; onoff.onoffTimes = runUUT.OnOff.OnOff[i].OnOffTime; onoff.onTimes = runUUT.OnOff.OnOff[i].OnTime; onoff.offTimes = runUUT.OnOff.OnOff[i].OffTime; itemList.Add(onoff); if (acv < onoff.curVolt) { acv = onoff.curVolt; } } _udcChart.maxVolt = acv; _udcChart.onoff = itemList; _udcChart.Refresh(); if (CGlobalPara.C_RUNNING) { if (runUUT.Para.DoRun == EDoRun.正在老化 || runUUT.Para.DoRun == EDoRun.老化结束) { _udcChart.startRun(runUUT.Para.RunTime, runUUT.Para.IniRunTime); } } }
/// <summary> /// 计算总时序时间段参数 /// </summary> private List <udcChartOnOff.COnOff> calOnOffItem() { try { List <udcChartOnOff.COnOff> itemList = new List <udcChartOnOff.COnOff>(); int burnTime = (int)(_udcChart.biTime * 3600); int leftTime = burnTime; int sumTime = 0; for (int i = 0; i < _onOffNum; i++) { for (int j = 0; j < 4; j++) { sumTime += _onOff[i].Item[j].OnOffTime * (_onOff[i].Item[j].OnTime + _onOff[i].Item[j].OffTime); } } if (sumTime == 0) { return(itemList); } while (leftTime > 0) { for (int i = 0; i < _onOffNum; i++) { int itemTime = (int)(_onOff[i].TotalTime); if (leftTime < itemTime) //剩余时间<ON/OFF组时间 { itemTime = leftTime; leftTime = 0; } else { leftTime -= itemTime; } //4小段ON/OFF时间 int itemLeftTime = itemTime; while (itemLeftTime > 0) { for (int j = 0; j < 4; j++) { if (itemLeftTime == 0) { break; } int onoffTime = _onOff[i].Item[j].OnOffTime * (_onOff[i].Item[j].OnTime + _onOff[i].Item[j].OffTime); if (onoffTime == 0) { continue; } //单个ON/OFF时序 for (int z = 0; z < _onOff[i].Item[j].OnOffTime; z++) { udcChartOnOff.COnOff onoffItem = new udcChartOnOff.COnOff(); onoffItem.curVolt = _onOff[i].Item[j].ACV; onoffItem.outPutType = _onOff[i].Item[j].OutPutType; //ON段 if (itemLeftTime >= _onOff[i].Item[j].OnTime) { onoffItem.onTimes = _onOff[i].Item[j].OnTime; onoffItem.onoffTimes += onoffItem.onTimes; itemLeftTime -= _onOff[i].Item[j].OnTime; } else { onoffItem.onTimes = itemLeftTime; onoffItem.onoffTimes += onoffItem.onTimes; itemLeftTime = 0;; } //OFF段 if (itemLeftTime >= _onOff[i].Item[j].OnOffTime) { onoffItem.offTimes = _onOff[i].Item[j].OffTime; onoffItem.onoffTimes += onoffItem.offTimes; itemLeftTime -= _onOff[i].Item[j].OffTime; } else { onoffItem.offTimes = itemLeftTime; onoffItem.onoffTimes += onoffItem.offTimes; itemLeftTime = 0;; } if (onoffItem.onoffTimes > 0) { itemList.Add(onoffItem); } } } } } } return(itemList); } catch (Exception) { throw; } }