public bool OpenPort()
{
try
{
if (ComPort.IsOpen)
return true;
ComPort.BaudRate = int.Parse(_baudRate);
ComPort.DataBits = int.Parse(_dataBits);
ComPort.StopBits = (StopBits)Enum.Parse(typeof(StopBits), _stopBits);
ComPort.Parity = (Parity)Enum.Parse(typeof(Parity), _parity);
ComPort.PortName = _portName;
ComPort.Handshake = _handShake;
try
{
ComPort.Open();
}
catch (Exception ex)
{
if (DisplayMsgCallback != null)
DisplayMsgCallback(SharedAppObjs.MsgType.Error, string.Format("Com Port Open Error\n\n" + ex.Message + "\n"));
return false;
}
ComPort.DiscardInBuffer();
ComPort.DiscardOutBuffer();
ComPort.WriteTimeout = 5000;
ComPort.ReadTimeout = 5000;
if (DisplayMsgCallback != null)
DisplayMsgCallback(SharedAppObjs.MsgType.Info, "Port opened at " + DateTime.Now.ToString() + "\n");
if (SharedObjects.IsMonoRunning())
{
taskThread = new Thread(new ParameterizedThreadStart(DataRxPollThread));
taskThread.Name = "CommManager";
taskThread.Start(threadData);
Thread.Sleep(0);
while (!taskThread.IsAlive)
{ }
}
return true;
}
catch (Exception ex)
{
if (DisplayMsgCallback != null)
DisplayMsgCallback(SharedAppObjs.MsgType.Error, string.Format("Com Port Open Process Error\n\n" + ex.Message + "\n"));
return false;
}
}