예제 #1
0
 public void ShowMessage(string message, MaterialDesignThemes.Wpf.SnackbarMessageQueue messageQueue)
 {
     //the message queue can be called from any thread
     Task.Factory.StartNew(() => messageQueue.Enqueue(message));
 }
예제 #2
0
        private void BtnStart_Click(object sender, RoutedEventArgs e)
        {
            if (isRunning == false)
            {
                StoreCommandLines();
                BtnStart.Content  = FindResource("StopIcon");
                isRunning         = true;
                BtnData.IsEnabled = false;
            }
            else
            {
                ci.Stop();
                BtnStart.Content = FindResource("StartIcon");
                theBridge.SendMotorSpeed(0);
                theBridge.SendStop();
                isRunning         = false;
                BtnData.IsEnabled = true;
                return;
            }

            //Renew lists
            times     = new List <double>();
            voltages  = new List <double>();
            currents  = new List <double>();
            thrusts   = new List <double>();
            rpms      = new List <double>();
            throttles = new List <double>();

            //Clear chart area
            voltageSeries.Values.Clear();
            currentSeries.Values.Clear();
            thrustSeries.Values.Clear();
            rpmSeries.Values.Clear();
            throttleSeries.Values.Clear();

            mChart.AxisX[0].MinValue = 0;
            mChart.AxisX[0].MaxValue = 15;

            //Connect to Arduino if not connected
            //Retrive the commands from parser
            //Send commands to Arduino

            cp.InputString = CmdTB.Text;
            if (cp.ParseInputString() == true)
            {
                if (isConnected)
                {
                    theBridge.SendStart();
                    ExecuteNextCommand();
                }
                else
                {
                    //Connect to Arduino
                    if (theBridge.Initialize() == true)
                    {
                        theBridge.SendStart();
                        //SetupDataSeries();
                        ExecuteNextCommand();
                    }
                    else
                    {
                        BtnStart.Content  = FindResource("StartIcon");
                        isRunning         = false;
                        BtnData.IsEnabled = true;
                        sq.Enqueue("Failed to connect");
                    }
                }
            }
            else
            {
                BtnStart.Content  = FindResource("StartIcon");
                isRunning         = false;
                BtnData.IsEnabled = true;
                int errorLineNumber = cp.GetErrorLineNumber();
                sq.Enqueue("Error interpreting line : " + errorLineNumber);
            }
        }