/// <summary> /// 交换峰对象数据 /// </summary> /// <param name="sourcepeak"></param> /// <param name="mode"></param> /// <returns></returns> private PeakFoundEventArgs _excangepeak(PeakFoundEventArgs sourcepeak, Hashtable mode) { PeakFoundEventArgs tarpeak = new PeakFoundEventArgs(); int xkey = Convert.ToInt32(sourcepeak.StartPoint.X); if (mode.Contains(xkey)) { tarpeak.StartPoint = new PointF((float)mode[xkey], sourcepeak.StartPoint.Y); } xkey = Convert.ToInt32(sourcepeak.PeakPoint.X); if (mode.Contains(xkey)) { tarpeak.PeakPoint = new PointF((float)mode[xkey], sourcepeak.PeakPoint.Y); } xkey = Convert.ToInt32(sourcepeak.EndingPoint.X); if (mode.Contains(xkey)) { tarpeak.EndingPoint = new PointF((float)mode[xkey], sourcepeak.EndingPoint.Y); } tarpeak.IsMidPeak = sourcepeak.IsMidPeak; tarpeak.LeftTrendPointNum = sourcepeak.LeftTrendPointNum; tarpeak.BackTrendPointNum = sourcepeak.BackTrendPointNum; return(tarpeak); }
//private void savfile(PointF Da) //{ // StreamWriter sav = new StreamWriter("Peak_Test.txt", true); // sav.WriteLine(Da.Y.ToString ()); // sav.Dispose(); //} /// <summary> /// 重新检查数据窗口长度 /// </summary> /// <param name="peakfounde"></param> /// <returns></returns> private void ReCheckWindowlength(PeakFoundEventArgs peakfounde) { int length = Convert.ToInt32(Convert.ToDouble(peakfounde.PeakPoint.X) - Convert.ToDouble(peakfounde.StartPoint.X)); // length = Convert.ToInt32((WindowLength * Window.Count * 1.0) / ((Window[Window.Count - 1].X - Window[0].X) * 1.0)); WindowLength = length > MaxWndLength ? MaxWndLength:length; WindowLength = WindowLength > 20 ? WindowLength : 20; // return length; }
/// <summary> /// 将峰对象加入列表中 /// </summary> /// <param name="sourcepeak"></param> /// <param name="targetpeak"></param> private void addpeak(PeakFoundEventArgs sourcepeak, PeakFoundEventArgs targetpeak) { if (sourcepeak.StartPoint.X != 0f) { if (targetpeak.StartPoint.X != sourcepeak.EndingPoint.X) { targetpeak.StartPoint = new PointF(sourcepeak.StartPoint.X, sourcepeak.StartPoint.Y); } } }
/// <summary> /// 复制峰对象 /// </summary> /// <param name="e"></param> /// <returns></returns> private PeakFoundEventArgs copypeak(PeakFoundEventArgs e) { PeakFoundEventArgs newpeak = new PeakFoundEventArgs(); newpeak.StartPoint = new PointF(e.StartPoint.X, e.StartPoint.Y); newpeak.PeakPoint = new PointF(e.PeakPoint.X, e.PeakPoint.Y); newpeak.EndingPoint = new PointF(e.EndingPoint.X, e.EndingPoint.Y); newpeak.IsMidPeak = e.IsMidPeak; return(newpeak); }
/// <summary> /// 峰对象格式检查 /// </summary> /// <param name="e"></param> /// <returns></returns> private bool check(PeakFoundEventArgs e) { if (e.StartPoint.X <= e.PeakPoint.X && e.PeakPoint.X <= e.EndingPoint.X) { return(true); } else { return(false); } }
/// <summary> /// 清空历史数据 /// </summary> public void ClearData() { WindowLength = 20; PointX = 0; CheckMidPeak = false; ProgrameStage = CheckStage.StartPointChecke; Window.Clear(); Window = new List <PointF>(); HisEnd = new PointF(0, 0); SorData.Clear(); SorData = new List <PointF>(); pointHash.Clear(); pointHash = new Hashtable(); SourceData.Clear(); SourceData = new List <PointF>(); peakfounde = new PeakFoundEventArgs(); midpeak = new PeakFoundEventArgs(); }