📄 frmg821.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 + -