private void btnDisconnect_Click(object sender, EventArgs e) { if (InvokeRequired) { Invoke(new EventHandler(btnDisconnect_Click), new object[] { sender, e }); return; } if (mCtrl == null) { return; } lblPort.Enabled = false; cmbPort.Enabled = false; lblBaud.Enabled = false; cmbBaud.Enabled = false; txtMsg.Enabled = false; btnSend.Enabled = false; txtMode.Enabled = false; txtModeP1.Enabled = false; txtModeP2.Enabled = false; btnSendMode.Enabled = false; panelMaster.Enabled = false; btnConnect.Enabled = false; btnDisconnect.Enabled = false; try { timerHeartBeat.Stop(); mCtrl.Disconnect(); mCtrl.Dispose(); } catch { } finally { mCtrl = null; lblPort.Enabled = true; cmbPort.Enabled = true; lblBaud.Enabled = true; cmbBaud.Enabled = true; btnConnect.Enabled = true; } }
private void btnConnect_Click(object sender, EventArgs e) { if (InvokeRequired) { Invoke(new EventHandler(btnConnect_Click), new object[] { sender, e }); return; } if (mCtrl != null) { btnDisconnect_Click(sender, e); } try { lblPort.Enabled = false; cmbPort.Enabled = false; lblBaud.Enabled = false; cmbBaud.Enabled = false; txtMsg.Enabled = false; btnSend.Enabled = false; txtMode.Enabled = false; txtModeP1.Enabled = false; txtModeP2.Enabled = false; btnSendMode.Enabled = false; panelMaster.Enabled = false; btnConnect.Enabled = false; btnDisconnect.Enabled = false; string sPort = cmbPort.SelectedItem.ToString(); int nBaud; if (!int.TryParse(cmbBaud.SelectedItem.ToString(), out nBaud)) { return; } mCtrl = new Arduino.Controller(); mCtrl.MessageReceived += MCtrl_MessageReceived; mCtrl.StateChangeReceived += MCtrl_StateChangeReceived; mCtrl.MessageSend += MCtrl_MessageSend; mCtrl.Connect(sPort, nBaud); // Already covered by mode selection //Task.Factory.StartNew(() => //{ // timerHeartBeat.Start(); // Thread.Sleep(1000); // mCtrl.RequestBrightness(Brightness); // Thread.Sleep(1000); // mCtrl.RequestColor(Color); //}); } catch { mCtrl = null; lblPort.Enabled = true; cmbPort.Enabled = true; lblBaud.Enabled = true; cmbBaud.Enabled = true; btnConnect.Enabled = true; } finally { btnDisconnect.Enabled = true; txtMsg.Enabled = true; btnSend.Enabled = true; txtMode.Enabled = true; txtModeP1.Enabled = true; txtModeP2.Enabled = true; btnSendMode.Enabled = true; panelMaster.Enabled = true; } if (mCtrl == null || !mCtrl.Connected) { btnDisconnect_Click(sender, e); } }