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

📄 frmmain.cs

📁 该项目实现在.net 2003上
💻 CS
📖 第 1 页 / 共 2 页
字号:
			this.OpenComm();
			//
			//启动工作者线程
			m_bStopThread = false;
			m_ComThread = new Thread(new ThreadStart(EntryPoint));
			m_ComThread.Start();
			//
			m_bStartTest = true;
			this.m_EquipAndPerformInfo.StartTestTime = DateTime.Now;
			//
			mainMenu_Control_StartTest.Enabled = false;
            mainMenu_Control_EndTest.Enabled = true;
			mainMenu_Control_OutServiceTest.Enabled = true;
			mainMenu_DataAnalyze_G821.Enabled = true;
			//发送时间校正命令
            this.TimeCheck();
			//发送电路接口设置命令
            this.CirInfoSet();
			//
			//发送启动测试命令
			DataEntry dataEntry = new DataEntry(12);
			DateTime dateTime = DateTime.Now;
			//txtStartTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:MM:ss");
			
			byte [] data = new byte[12];
			data[0] = 0;
			data[1] = MsgCommandId.START_TEST;
			data[2] = (byte)this.m_EquipAndPerformInfo.m_CirConfigParam.TestMode;//测试模式
			data[3] = (byte)this.m_EquipAndPerformInfo.m_CirConfigParam.TestSequence;//测试序列
			data[4] = (byte)this.m_EquipAndPerformInfo.m_CirConfigParam.TestPattern;//测试图案
            
			data[5] = (byte)(dateTime.Year & 0xff);
			data[6] = (byte)(dateTime.Year>>8);
			data[7] = (byte)dateTime.Month;
			data[8] = (byte)dateTime.Day;
			data[9] = (byte)dateTime.Hour;
			data[10] = (byte)dateTime.Minute;
			data[11] = (byte)dateTime.Second;
			dataEntry.szData = data;
			m_DataHandler.AddOneFrameToSndDataList(dataEntry);
//#if DEBUG
			InsertItemToDataList(1,data);//
//#endif
			Cursor.Current = Cursors.Default;
		}
        /// <summary>
        /// 终止测试
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
		private void mainMenu_Control_EndTest_Click(object sender, System.EventArgs e)
		{
			Cursor.Current = Cursors.WaitCursor;

			byte [] data = new byte[2];
			data[0] = 0;
			data[1] = MsgCommandId.STOP_TEST;
			DataEntry dataEntry = new DataEntry(2);
			dataEntry.szData = data;
			m_DataHandler.AddOneFrameToSndDataList(dataEntry);
//#if DEBUG
			InsertItemToDataList(1,data);//
//#endif
			Thread.Sleep(2000);
			//
			m_bStopThread = true;
			//
			m_Comm.Close();
			//
			mainMenu_Control_StartTest.Enabled = true;
			mainMenu_Control_EndTest.Enabled   = false;
			mainMenu_Control_OutServiceTest.Enabled    = false;
			mainMenu_DataAnalyze_G821.Enabled  = false;

			Cursor.Current = Cursors.Default;
		}
		/// <summary>
		/// 测试使用
		/// 向ListView窗口中插入消息净荷(不包括帧头帧尾校验字)
		/// </summary>
		/// <param name="orient">
		/// 0=上行消息,1= 下行消息
		/// </param>
		/// <param name="data">
		/// 消息净荷
		/// </param>
		public void InsertItemToDataList(int orient ,byte [] data)
		{
			string strOrient = "";//方向标识
			string message = "";//消息描述
			
			if(orient == 0)
				strOrient = "<<<<";
			else
				strOrient = ">>>>";

			//
			switch(data[1])
			{
				case 0x30:
					message = "设备复位";
					break;
				case 0x31:
					message = "设备复位再确认";
					break;
				case 0x32:
					message = "启动测试";
					break;
				case 0x33:
					message = "终止测试";
					break;
				case 0x34:
					message = "路由测试";
					break;
				case 0x35:
					message = "时间校正";
					break;
				case 0x36:
					message = "电路及接口信息设置";
					break;
				
				case 0x37:
					message = "中断业务测试控制";
					break;
				case 0x38:
					message = "实时误码性能查询";
					break;
				case 0x39:
					message = "15分钟误码信息上报确认";
					break;
				case 0x40:
					message = "电路告警上报确认";
					break;
				case 0x41:
					message = "环路延时测试";
					break;
				case 0x42:
					message = "指示灯和状态查询";
					break;

				case 0x61:
					message = "设备复位确认";
					break;
				case 0x62:
					message = "启动测试应答";
					break;
				case 0x63:
					message = "终止测试应答";
					break;
				case 0x64:
					message = "路由测试应答";
					break;
				case 0x65:
					message = "时间校正应答";
					break;
				case 0x66:
					message = "电路及接口信息设置应答";
					break;
				
				case 0x67:
					message = "中断业务测试控制应答";
					break;
				case 0x68:
					message = "实时误码性能查询应答";
					break;
				case 0x69:
					message = "15分钟误码信息上报";
					break;
				case 0x70:
					message = "电路告警上报";
					break;
				case 0x71:
					message = "环路延时测试应答";
					break;
				case 0x72:
					message = "指示灯和状态查询应答";
					break;
				
				default:
					message = "!!!未知消息";
					break;
					
			}
			///////////////////////////////////////////
			lock(listViewShowComData)
			{
				if(listViewShowComData.Items.Count > 100)
					listViewShowComData.Items.RemoveAt(0);
			}
			//
			ListViewItem lvi = new ListViewItem();
			lvi.SubItems.Clear();
			lvi.SubItems[0].Text = strOrient;
			lvi.SubItems.Add(message);
			lvi.SubItems.Add(HexCon.ByteToString(data));
			//	
			lock(listViewShowComData)
			{
				listViewShowComData.Items.Add(lvi);
				listViewShowComData.EnsureVisible(listViewShowComData.Items.Count-1);
			}
			

		}
		/// <summary>
		/// 初始化listViewShowComData
		/// </summary>
		private void InitListView()
		{
			//init ShowComData ListView
			listViewShowComData.FullRowSelect = true;
			listViewShowComData.View = View.Details;
			
			listViewShowComData.Columns.Add("方向",40,HorizontalAlignment.Left);
			listViewShowComData.Columns.Add("消息类型",120,HorizontalAlignment.Left);
			listViewShowComData.Columns.Add("消息内容",220,HorizontalAlignment.Left);
			listViewShowComData.Visible = true;
			
		}
        /// <summary>
        /// 串口配置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
		private void mainMenu_System_CommConfig_Click(object sender, System.EventArgs e)
		{
			Cursor.Current = Cursors.WaitCursor;
			frmCommConfig dlg  = new frmCommConfig(this);
			dlg.Show();
			Cursor.Current = Cursors.Default;
		}
		/// <summary>
		/// 打开串口
		/// </summary>
		private void OpenComm()
		{
			//
			
			//
			
			m_Comm = new CommPort(this.m_EquipAndPerformInfo.m_CommConfigParam.ComNo,
				         this.m_EquipAndPerformInfo.m_CommConfigParam.BaudRate,
				         this.m_EquipAndPerformInfo.m_CommConfigParam.Parity
				);//定义串行口对象
			m_Comm.Open();
			
			

		}
        /// <summary>
        /// 中断业务测试控制
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
		private void mainMenu_Control_OutServiceTest_Click(object sender, System.EventArgs e)
		{
			Cursor.Current = Cursors.WaitCursor;
			frmOutServiceTestCtrl dlg = new frmOutServiceTestCtrl(this);
			dlg.Show();
			Cursor.Current = Cursors.Default;
		}
		/// <summary>
		/// 发送电路信息设置命令
		/// </summary>
		private void CirInfoSet()
		{
			//发送电路信息设置命令
			
			m_DataHandler.AddOneFrameToSndDataList(this.m_CircuitInfo);
//#if DEBUG
			InsertItemToDataList(1,this.m_CircuitInfo.szData);//
//#endif
		}
		/// <summary>
		/// 发送时钟校正命令
		/// </summary>
		private void TimeCheck()
		{
			//
			//发送时钟校正命令
			DataEntry dataEntry = new DataEntry(9);
			DateTime dateTime = DateTime.Now;
			
			byte [] data = new byte[9];
			data[0] = 0;
			data[1] = MsgCommandId.TIME_CHECK;
			data[2] = (byte)(dateTime.Year & 0xff);
			data[3] = (byte)(dateTime.Year>>8);
			data[4] = (byte)dateTime.Month;
			data[5] = (byte)dateTime.Day;
			data[6] = (byte)dateTime.Hour;
			data[7] = (byte)dateTime.Minute;
			data[8] = (byte)dateTime.Second;
			dataEntry.szData = data;
			m_DataHandler.AddOneFrameToSndDataList(dataEntry);
//#if DEBUG
			this.InsertItemToDataList(1,data);
//#endif
		}

		private void frmMain_Load(object sender, System.EventArgs e)
		{
			this.InitListView();
			//
			CircuitInfoConfigParamInit();
			//
			Rectangle screen = Screen.PrimaryScreen.Bounds;
			this.Location = new Point((screen.Width - this.Width) / 2,
				(screen.Height - this.Height ) / 2);
			this.listViewShowComData.Size = new Size(224, 240);
			this.listViewShowComData.Visible = false;

		}

		private void frmMain_Closing(object sender, System.ComponentModel.CancelEventArgs e)
		{
			e.Cancel = true;//禁止主窗口退出
		}

		private void mainMenu_DataAnalyze_G821_Click(object sender, System.EventArgs e)
		{
			Cursor.Current = Cursors.WaitCursor;
			//
            frmG821 dlg = new frmG821(this);
			dlg.WindowState = FormWindowState.Normal;
			dlg.Show();
            //
			Cursor.Current = Cursors.Default;
		}

		private void mainMenu_DataAnalyze_HistoryErr_Click(object sender, System.EventArgs e)
		{
			Cursor.Current = Cursors.WaitCursor;
			//

			Cursor.Current = Cursors.Default;
		}

		private void mainMenu_DataAnalyze_HistoryAlm_Click(object sender, System.EventArgs e)
		{
			Cursor.Current = Cursors.WaitCursor;
			//

			Cursor.Current = Cursors.Default;
		}

		private void mainMenu_DataManage_DataDelete_Click(object sender, System.EventArgs e)
		{
			Cursor.Current = Cursors.WaitCursor;
			//

			Cursor.Current = Cursors.Default;
		}

		private void mainMenu_Control_ClearDataInEquip_Click(object sender, System.EventArgs e)
		{
			Cursor.Current = Cursors.WaitCursor;
			//

			Cursor.Current = Cursors.Default;
		}

		private void menuItem_Debug_Click(object sender, System.EventArgs e)
		{
			if(this.listViewShowComData.Visible == false)
			{
				this.listViewShowComData.Visible = true;
				this.menuItem_Debug.Checked = true;
			}
			else
			{
				this.listViewShowComData.Visible = false;
				this.menuItem_Debug.Checked = false;
			}
		}

		private void listViewShowComData_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
		{
			lock(listViewShowComData)
			{
				listViewShowComData.Items.Clear();
			}
		}

		private void mainMenu_System_Exit_Click(object sender, System.EventArgs e)
		{
			this.m_bStopThread = true;
			Application.Exit();
		}
		
	}
}

⌨️ 快捷键说明

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