Пример #1
0
		//send by byte
		public bool ctrlSend(byte[] by)
		{
			try
			{
				if (IsOpen() == false)
				{
					ctrlOpenCom();
				}
				SerialPort_Prefab.Write(by, 0, by.Length);
			}
			catch
			{
				return false;
			}
			return true;
		}
Пример #2
0
		//send by string
		public bool ctrlSend(string strSend)
		{
			try
			{
				if (IsOpen() == false)
				{
					ctrlOpenCom();
				}
				SerialPort_Prefab.WriteLine(strSend);
			}
			catch
			{
				return false;
			}
			return true;
		}
Пример #3
0
		private void SerialPort_Prefab_DataReceived(object sender, SerialDataReceivedEventArgs e)
		{
			if (Closing) return;//正在关闭时,忽略
			Listening = true;
			string strShow = "";
			try
			{
				if (SerialPort_Prefab.BytesToRead > 0)
				{
					Thread.Sleep(100);
					strShow = SerialPort_Prefab.ReadExisting();
					dataRecive = strShow;
					SerialPort_Prefab.DiscardInBuffer();
					IsReadedDate = true;
				}
				DelSetTxt del = new DelSetTxt(SetTxt);
				Invoke(del, txtRecPort1, strShow);
				Listening = false;
			}
			catch (Exception)
			{
				Listening = false;
			}
		}
Пример #4
0
		//串口打开,关闭
		public void ctrlOpenCom()
		{
			if (button_Open.Text == "打开串口")
			{
				try
				{
					if (!HasLoadPara)
					{
						LoadPara();
						HasLoadPara = true;
					}

					SerialPort_Prefab.PortName = cmbPortName.Text.ToString(); ;
					SerialPort_Prefab.BaudRate = Convert.ToInt32(cmbBaudRate.Text);
					SerialPort_Prefab.DataBits = Convert.ToInt16(cmbDataBits.Text);

					switch (cmbParity.Text)
					{
						case "EVEN":
							SerialPort_Prefab.Parity = Parity.Even; break;
						case "ODD":
							SerialPort_Prefab.Parity = Parity.Odd; break;
						case "NONE":
							SerialPort_Prefab.Parity = Parity.None; break;
					}
					switch (cmbStopBits.Text)
					{
						case "NONE":
							SerialPort_Prefab.StopBits = System.IO.Ports.StopBits.None; break;
						case "One":
							SerialPort_Prefab.StopBits = StopBits.One; break;
						case "Two":
							SerialPort_Prefab.StopBits = StopBits.Two; break;
					}


					SerialPort_Prefab.Open();
				}
				catch (Exception)
				{
					MessageBoxLog.Show("串口打开失败");
					lblPortInd.BackColor = Color.Red;
					return;
				}

			}
			else// close port
			{

				button_Open.Text = "打开串口";
				if (SerialPort_Prefab.IsOpen)
				{
					Closing = true;
					while (Listening) Application.DoEvents();
					SerialPort_Prefab.Close();
					Closing = false;
					lblPortInd.BackColor = Color.Red;
				}
			}
			if (!SerialPort_Prefab.IsOpen)
			{
				bool bSetCtrl = true;
				cmbPortName.Enabled = bSetCtrl;
				cmbBaudRate.Enabled = bSetCtrl;
				cmbDataBits.Enabled = bSetCtrl;
				cmbParity.Enabled = bSetCtrl;
				cmbStopBits.Enabled = bSetCtrl;
				button_Send.Enabled = !bSetCtrl;
				button_Clear.Enabled = !bSetCtrl;
				lblPortInd.BackColor = Color.Red;
				button_Open.Text = "打开串口";

				//this.Text = strCtrlName ;

			}
			else
			{
				bool bSetCtrl = false;
				cmbPortName.Enabled = bSetCtrl;
				cmbBaudRate.Enabled = bSetCtrl;
				cmbDataBits.Enabled = bSetCtrl;
				cmbParity.Enabled = bSetCtrl;
				cmbStopBits.Enabled = bSetCtrl;
				button_Send.Enabled = !bSetCtrl;
				button_Clear.Enabled = !bSetCtrl;
				lblPortInd.BackColor = Color.Green;
				button_Open.Text = "关闭串口";

			}
		}