private void doOpen()
{
m_serialPort = new SerialPort(m_port, 256000, Parity.None, 8, StopBits.One);
// register for data received events
m_serialDataReceivedEventHandler = new SerialDataReceivedEventHandler(m_serialPort_DataReceived);
m_serialPort.DataReceived += m_serialDataReceivedEventHandler;
bool deviceFound = false;
for (DateTime now = DateTime.Now; DateTime.Now - now < new TimeSpan(0, 0, 5); )
{
try
{
m_serialPort.Open();
deviceFound = true;
break;
}
catch (IOException)
{
Thread.Sleep(100);
}
}
if (!deviceFound)
{
throw new BgApiException(string.Format("Cannot connect to device on port {0}", m_port));
}
m_stream = m_serialPort.BaseStream;
m_rxOffset = 0;
}