⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmg821.cs

📁 该项目实现在.net 2003上
💻 CS
字号:
#define DEBUG
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

using ctd.E1Analyzer.GlobalConstant;
using ctd.E1Analyzer.LinkLayHandlerPacket;
namespace SmartE1Analyzer
{
	/// <summary>
	/// frmG821 的摘要说明。
	/// </summary>
	public class frmG821 : System.Windows.Forms.Form
	{
		private System.Windows.Forms.Label label1;
		private System.Windows.Forms.Label label2;
		private System.Windows.Forms.Label label3;
		private System.Windows.Forms.TextBox txtStartTime;
		private System.Windows.Forms.Label label4;
		private System.Windows.Forms.TextBox txtAllTime;
		private System.Windows.Forms.ListView listViewG821;
		private System.Windows.Forms.ListView listViewAlmCnt;
		private System.Windows.Forms.Timer timerFresh;
		private System.Windows.Forms.Button btnCancel;
	    private frmMain m_ParentFrm;
		public frmG821(frmMain frm)
		{
			//
			// Windows 窗体设计器支持所必需的
			//
			InitializeComponent();
            
			//
			// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
			//
			this.m_ParentFrm = frm;
		}

		/// <summary>
		/// 清理所有正在使用的资源。
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			base.Dispose( disposing );
		}

		#region Windows 窗体设计器生成的代码
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{
			this.listViewG821 = new System.Windows.Forms.ListView();
			this.listViewAlmCnt = new System.Windows.Forms.ListView();
			this.label1 = new System.Windows.Forms.Label();
			this.label2 = new System.Windows.Forms.Label();
			this.label3 = new System.Windows.Forms.Label();
			this.txtStartTime = new System.Windows.Forms.TextBox();
			this.label4 = new System.Windows.Forms.Label();
			this.txtAllTime = new System.Windows.Forms.TextBox();
			this.btnCancel = new System.Windows.Forms.Button();
			this.timerFresh = new System.Windows.Forms.Timer();
			// 
			// listViewG821
			// 
			this.listViewG821.Location = new System.Drawing.Point(21, 67);
			this.listViewG821.Size = new System.Drawing.Size(188, 95);
			// 
			// listViewAlmCnt
			// 
			this.listViewAlmCnt.Location = new System.Drawing.Point(21, 186);
			this.listViewAlmCnt.Size = new System.Drawing.Size(187, 75);
			// 
			// label1
			// 
			this.label1.Location = new System.Drawing.Point(17, 50);
			this.label1.Size = new System.Drawing.Size(72, 16);
			this.label1.Text = "误码列表:";
			// 
			// label2
			// 
			this.label2.Location = new System.Drawing.Point(15, 166);
			this.label2.Size = new System.Drawing.Size(72, 18);
			this.label2.Text = "告警列表:";
			// 
			// label3
			// 
			this.label3.Location = new System.Drawing.Point(17, 9);
			this.label3.Size = new System.Drawing.Size(64, 16);
			this.label3.Text = "开始时间:";
			// 
			// txtStartTime
			// 
			this.txtStartTime.Location = new System.Drawing.Point(81, 2);
			this.txtStartTime.ReadOnly = true;
			this.txtStartTime.Size = new System.Drawing.Size(128, 21);
			this.txtStartTime.Text = "";
			// 
			// label4
			// 
			this.label4.Location = new System.Drawing.Point(17, 29);
			this.label4.Size = new System.Drawing.Size(64, 11);
			this.label4.Text = "总测时间:";
			// 
			// txtAllTime
			// 
			this.txtAllTime.Location = new System.Drawing.Point(81, 26);
			this.txtAllTime.ReadOnly = true;
			this.txtAllTime.Size = new System.Drawing.Size(128, 21);
			this.txtAllTime.Text = "";
			// 
			// btnCancel
			// 
			this.btnCancel.Location = new System.Drawing.Point(153, 268);
			this.btnCancel.Size = new System.Drawing.Size(72, 24);
			this.btnCancel.Text = "返回[&R]";
			this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
			// 
			// timerFresh
			// 
			this.timerFresh.Interval = 2000;
			this.timerFresh.Tick += new System.EventHandler(this.timerFresh_Tick);
			// 
			// frmG821
			// 
			this.ClientSize = new System.Drawing.Size(240, 295);
			this.Controls.Add(this.btnCancel);
			this.Controls.Add(this.txtAllTime);
			this.Controls.Add(this.label4);
			this.Controls.Add(this.txtStartTime);
			this.Controls.Add(this.label3);
			this.Controls.Add(this.label2);
			this.Controls.Add(this.label1);
			this.Controls.Add(this.listViewAlmCnt);
			this.Controls.Add(this.listViewG821);
			this.Text = "G821分析";
			this.Closing += new System.ComponentModel.CancelEventHandler(this.frmG821_Closing);
			this.Load += new System.EventHandler(this.frmG821_Load);

		}
		#endregion

		private void frmG821_Load(object sender, System.EventArgs e)
		{
			InitListView();
			this.timerFresh.Interval = 2000;
			this.timerFresh.Enabled = true;
			//
			Rectangle screen = Screen.PrimaryScreen.Bounds;
			this.Location = new Point((screen.Width - this.Width) / 2,
				(screen.Height - this.Height ) / 2);
			//
			txtStartTime.Text = this.m_ParentFrm.m_EquipAndPerformInfo.StartTestTime.ToString("yyyy-MM-dd HH:MM:ss");
			TimeSpan timeSpan = DateTime.Now - this.m_ParentFrm.m_EquipAndPerformInfo.StartTestTime;
			int nTimeSpan = (int)timeSpan.TotalSeconds;
			txtAllTime.Text = nTimeSpan.ToString();

		}
		private void InitListView()
		{
			//int G821 ListView
			listViewG821.FullRowSelect = true;
			listViewG821.View = View.Details;
			
			listViewG821.Columns.Add("参数",30,HorizontalAlignment.Left);
			listViewG821.Columns.Add("值",80,HorizontalAlignment.Left);
			listViewG821.Columns.Add("比率",120,HorizontalAlignment.Left);

			ListViewItem lvi = new ListViewItem();
			lvi.SubItems.Clear();
			lvi.SubItems[0].Text = "ES";
			lvi.SubItems.Add("0");
			lvi.SubItems.Add("0%");
			listViewG821.Items.Add(lvi);

			lvi = new ListViewItem();
			lvi.SubItems.Clear();

			lvi.SubItems[0].Text = "SES";
			lvi.SubItems.Add("0");
			lvi.SubItems.Add("0%");
			listViewG821.Items.Add(lvi);

			lvi = new ListViewItem();
			lvi.SubItems.Clear();

			lvi.SubItems[0].Text = "US";
			lvi.SubItems.Add("0");
			lvi.SubItems.Add("0%");
			listViewG821.Items.Add(lvi);

			lvi = new ListViewItem();
			lvi.SubItems.Clear();

			lvi.SubItems[0].Text = "EC";
			lvi.SubItems.Add("0");
			lvi.SubItems.Add("0.00-E");
			listViewG821.Items.Add(lvi);

			//Init Alm count ViewList
			listViewAlmCnt.FullRowSelect = true;
			listViewAlmCnt.View = View.Details;
			
			listViewAlmCnt.Columns.Add("参数",30,HorizontalAlignment.Left);
			listViewAlmCnt.Columns.Add("告警时间(秒)",160,HorizontalAlignment.Left);
			
			lvi = new ListViewItem();
			lvi.SubItems.Clear();
			lvi.SubItems[0].Text = "LOS";
			lvi.SubItems.Add("0");
			listViewAlmCnt.Items.Add(lvi);

			lvi = new ListViewItem();
			lvi.SubItems.Clear();

			lvi.SubItems[0].Text = "AIS";
			lvi.SubItems.Add("0");
			listViewAlmCnt.Items.Add(lvi);

			lvi = new ListViewItem();
			lvi.SubItems.Clear();

			lvi.SubItems[0].Text = "LOF";
			lvi.SubItems.Add("0");
			listViewAlmCnt.Items.Add(lvi);
		}
		/// <summary>
		/// 在界面上刷新告警参数
		/// </summary>
		private void FreshAlmCntParam()
		{
			uint los = 0;
			uint ais = 0;
			uint lof = 0;
			los = this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.AlmTime[0];
			ais = this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.AlmTime[1];
			lof = this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.AlmTime[2];
			//
			TimeSpan timeSpan = DateTime.Now - this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.NowAlmBeginTime;
			uint span = (uint)timeSpan.TotalSeconds;
			//
			if(this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.NowAlmType == 1)//当前los
			{
				los += span;
			}
			else if(this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.NowAlmType == 2)//ais
			{
				ais += span;
			}
			else if(this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.NowAlmType == 3)//lof
				lof += span;
			//
            this.listViewAlmCnt.BeginUpdate();
			ListViewItem lvi = new ListViewItem();
			lvi = listViewAlmCnt.Items[0];
			lvi.SubItems[1].Text = los.ToString();
			
			lvi = new ListViewItem();
			lvi = listViewAlmCnt.Items[1];
			lvi.SubItems[1].Text = ais.ToString();
			
            
			lvi = new ListViewItem();
			lvi = listViewAlmCnt.Items[2];
			lvi.SubItems[1].Text = lof.ToString();
			this.listViewAlmCnt.EndUpdate();
			


		}
		/// <summary>
		/// 刷新G821误码参数
		/// </summary>
		private void FreshG821Param()
		{
			TimeSpan timeSpan = DateTime.Now - this.m_ParentFrm.m_EquipAndPerformInfo.StartTestTime;
 
			int allTime = (int)timeSpan.TotalSeconds;

			int us  = (int)this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.Us;
			int aus = allTime - us;

			if(aus <=0 )
				aus = 1;
			if(allTime <= 0)
				allTime = 1;
			float usr = us / allTime;
			string strUsr = String.Format("{0:P2}",usr);
			
			uint es  = this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.Es;
			float esr = es / aus;
			string strEsr = String.Format("{0:P2}",esr);

			uint ses = this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.Ses;
			float sesr = ses / aus;
			string strSesr = String.Format("{0:P2}",sesr);

			ulong ec  = this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.Ec;
			float er = 0.00F;
			if(this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.Tc <=0 )
				er = 0.00F;
			else
				er = ec / this.m_ParentFrm.m_EquipAndPerformInfo.m_TestResultCount.Tc;
			string strEr = String.Format("{0:E2}",er);

            this.listViewG821.BeginUpdate();
			ListViewItem lvi = new ListViewItem();
			lvi = listViewG821.Items[0];
			lvi.SubItems[1].Text = es.ToString();
			lvi.SubItems[2].Text = strEsr;

			lvi = new ListViewItem();
			lvi = listViewG821.Items[1];
			lvi.SubItems[1].Text = ses.ToString();
			lvi.SubItems[2].Text = strSesr;
            
			lvi = new ListViewItem();
			lvi = listViewG821.Items[2];
			lvi.SubItems[1].Text = us.ToString();
			lvi.SubItems[2].Text = strUsr;

			lvi = new ListViewItem();
			lvi = listViewG821.Items[3];
			lvi.SubItems[1].Text = ec.ToString();
			lvi.SubItems[2].Text = strEr;
            this.listViewG821.EndUpdate();


		}

		private void timerFresh_Tick(object sender, System.EventArgs e)
		{
		    txtStartTime.Text = this.m_ParentFrm.m_EquipAndPerformInfo.StartTestTime.ToString("yyyy-MM-dd hh:mm:ss");
			TimeSpan timeSpan = DateTime.Now - this.m_ParentFrm.m_EquipAndPerformInfo.StartTestTime;
			double nTimeSpan = timeSpan.TotalSeconds;
            
			txtAllTime.Text = nTimeSpan.ToString();
			//
			SendRealPfmQueryMessage();
            FreshG821Param();
			FreshAlmCntParam();
		}
		/// <summary>
		/// 发送实时统计查询命令
		/// </summary>
		private void SendRealPfmQueryMessage()
		{
			DataEntry dataEntry = new DataEntry(2);
						
			byte [] data = new byte[2];
			data[0] = 0;
			data[1] = MsgCommandId.REAL_PFM_QUERY;
			dataEntry.szData = data;
			this.m_ParentFrm.m_DataHandler.AddOneFrameToSndDataList(dataEntry);
#if DEBUG
			this.m_ParentFrm.InsertItemToDataList(1,data);
#endif
		}

		private void btnCancel_Click(object sender, System.EventArgs e)
		{
			//this.timerFresh.Enabled = false;
			this.Close();
		}

		private void frmG821_Closing(object sender, System.ComponentModel.CancelEventArgs e)
		{   
			this.timerFresh.Enabled = false;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -