Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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);
            }
        }