Пример #1
0
        public string T_End()
        {
            double max = 0;

            for (int i = 0; i < WorkList.Count; i++)
            {
                if (WorkList[i].end_x > max)
                {
                    max = WorkList[i].end_x;
                }
            }

            double T = (max - 50) / interval_vertical;
            int    sum_node_weight = 0;

            for (int i = 0; i < TopListNew.Count; i++)
            {
                sum_node_weight += TopListNew[i].weight;
            }

            Kp   = sum_node_weight / T;
            Ke   = Kp / TopListCSNew.Count;
            Keap = Tkr / T;

            return("Tкрг = " + Tkr + "\nT = " + T + "\nKпр = " + Kp.ToString("N2") + "\nКе = " + Ke.ToString("N2") + "\nКеап = "
                   + Keap.ToString("N2") + "\n");
        }
Пример #2
0
 private void button_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         double L, H, W, Ipa, Lpa, Kp;
         if (double.Parse(ValueL.Text) < 300 && double.Parse(ValueL.Text) > 0)
         {
             L           = 300;
             ValueL.Text = "300";
         }
         if (double.Parse(ValueL.Text) > 3000)
         {
             L           = 3000;
             ValueL.Text = "3000";
         }
         else
         {
             L = double.Parse(ValueL.Text);
         }
         if (double.Parse(ValueH.Text) < 300 && double.Parse(ValueH.Text) > 0)
         {
             H           = 300;
             ValueH.Text = "300";
         }
         if (double.Parse(ValueH.Text) > 3000)
         {
             H           = 3000;
             ValueH.Text = "3000";
         }
         else
         {
             H = double.Parse(ValueL.Text);
         }
         W             = double.Parse(ValueW.Text);
         Lpa           = ((H - 2 * W) * (L - 2 * W)) / 1000;
         Kp            = (H + H + L + L) / 1000;
         Ipa           = (H * L) / 1000;
         Ikkuna.Width  = L / 10;
         Ikkuna.Height = H / 10;
         txtLpa.Text   = Lpa.ToString("0.00") + "m²";
         txtKp.Text    = Kp.ToString("0.00") + "m²";
         txtIpa.Text   = Ipa.ToString("0.00") + "m";
     }
     catch (Exception)
     {
         ValueH.Text = "0";
         ValueL.Text = "0";
         ValueW.Text = "45";
     }
 }
Пример #3
0
 void UpdateConfig()
 {
     try
     {
         if (this.TxtBoxKp.InvokeRequired)
         {
             this.Invoke(new UpdateConfigCallback(UpdateConfig));
         }
         else
         {
             TxtBoxKp.Text        = Kp.ToString();
             TxtBoxKi.Text        = Ki.ToString();
             TxtBoxKd.Text        = Kd.ToString();
             TxtBoxErrorMax.Text  = ErrorMax.ToString();
             TxtBoxPWMPeriod.Text = PWMPeriod.ToString();
             TxtBoxIntMax.Text    = IntMax.ToString();
         }
     }
     catch (Exception ex)
     {
         return;
     }
 }
Пример #4
0
 public void Save(ConfigNode node)
 {
     node.SetValue("Kp", Kp.ToString());
     node.SetValue("Ki", Ki.ToString());
     node.SetValue("Kd", Kd.ToString());
 }
Пример #5
0
        public void Execute()
        {
            if (arrayInput != null)
            {
                double Kp;                        //Kappa "language"
                double cipherTextLength      = 0; //n
                double countDoubleCharacters = 0;
                string ciphermode            = "monoalphabetic/cleartext";

                //Now we set the Kappa plain-text coefficient. Default is English.
                switch (settings.Kappa)
                {
                case 1: Kp = 0.0762; break;

                case 2: Kp = 0.0778; break;

                case 3: Kp = 0.0770; break;

                case 4: Kp = 0.0738; break;

                case 5: Kp = 0.0745; break;

                default: Kp = 0.0667; break;
                }

                ShowStatusBarMessage("Using IC = " + Kp.ToString() + " for analysis...", NotificationLevel.Debug);


                if (arrayInput.Length < 2)
                {
                    // error, only one letter?
                    ShowStatusBarMessage("Error - cannot analyze an array of a single letter.", NotificationLevel.Error);
                    return;
                }

                for (int i = 0; i < arrayInput.Length; i++)
                {
                    cipherTextLength      += arrayInput[i];
                    countDoubleCharacters += (arrayInput[i] * (arrayInput[i] - 1));

                    // show some progress
                    ShowProgress(i, (arrayInput.Length + 1));
                }

                ShowStatusBarMessage(String.Format("Input analyzed: Got {0} different letters in a text of total length {1}.", arrayInput.Length, cipherTextLength), NotificationLevel.Debug);

                kappaCiphertext = ((double)countDoubleCharacters / (double)(cipherTextLength * (cipherTextLength - 1)));
                keyLength       = (0.0377 * cipherTextLength) / ((cipherTextLength - 1.0) * kappaCiphertext - (0.0385 * cipherTextLength) + 0.0762);

                if (Math.Abs(Kp - kappaCiphertext) > 0.01)
                {
                    ciphermode = "polyalphabetic";
                }

                stringOutput = String.Format("KeyLen = {0}\nIC_analyzed = {1}\nIC_provided = {2}\nMode = {3}", keyLength.ToString("0.00000"), kappaCiphertext.ToString("0.00000"), Kp, ciphermode);


                OnPropertyChanged("StringOutput");
                OnPropertyChanged("KeyLength");
                OnPropertyChanged("KappaCiphertext");
                // final step of progress
                ShowProgress(100, 100);
            }
        }
Пример #6
0
            public void DoWork(Object parameter)
            {
                Form1 form = parameter as Form1;

                bool neue_daten = false;

                //Stopwatch_timer Neue Messdaten

                Stopwatch timer_global = new Stopwatch();

                timer_global.Start();

                if (form == null)
                {
                    return;
                }

                while (!_shouldStop)
                {
                    string order;


                    //Abfrage keyboard
                    bool key_vor     = Keyboard.IsKeyDown(Key.Up);
                    bool key_zuruck  = Keyboard.IsKeyDown(Key.Down);
                    bool key_links   = Keyboard.IsKeyDown(Key.Left);
                    bool key_rechts  = Keyboard.IsKeyDown(Key.Right);
                    bool key_schnell = Keyboard.IsKeyDown(Key.RightShift);
                    bool key_langsam = Keyboard.IsKeyDown(Key.RightCtrl);

                    //Funktionstasten abfragen
                    bool key_function1 = Keyboard.IsKeyDown(Key.A);

                    /*
                     * 0. S- Schnell Vor
                     * 0. V- Normal Vor
                     * 0. L- Langsam Vor
                     * 0. N- Motor Aus
                     * 0. Z- Normal Zurück
                     * 0. R- Schnell Zurück
                     * 1. B- links
                     * 1. N- Ruder Neutral
                     * 1. S- Rechts
                     * 2. H- Handshake Anfordern
                     * 3. P- Position Anfoderdern
                     *
                     * */

                    order = "N";
                    //Zuordnen
                    if (key_vor)
                    {
                        order = "V";
                    }

                    if (key_vor && key_schnell)
                    {
                        order = "S";
                    }
                    if (key_vor && key_langsam)
                    {
                        order = "L";
                    }

                    if (key_vor && key_links)
                    {
                        order = "B";
                    }

                    if (key_vor && key_rechts)
                    {
                        order = "E";
                    }

                    if (key_vor && key_langsam)
                    {
                        order = "L";
                    }


                    if (key_vor && key_links && key_schnell)
                    {
                        order = "A";
                    }



                    if (key_vor && key_links && key_langsam)
                    {
                        order = "C";
                    }

                    if (key_vor && key_rechts && key_schnell)
                    {
                        order = "D";
                    }


                    if (key_vor && key_rechts && key_langsam)
                    {
                        order = "F";
                    }



                    if (key_zuruck)
                    {
                        order = "K";
                    }

                    if (key_zuruck && key_rechts)
                    {
                        order = "H";
                    }

                    if (key_zuruck && key_links)
                    {
                        order = "G";
                    }

                    if (key_links && key_vor == false && key_zuruck == false)
                    {
                        order = "O";
                    }

                    if (key_rechts && key_vor == false && key_zuruck == false)
                    {
                        order = "P";
                    }



                    if (heading_follower == true && heading_sp <= 360 && heading_sp >= 0)
                    {
                        string heading_string = heading_sp.ToString();
                        if (heading_sp < 10)
                        {
                            heading_string = "0" + heading_string;
                        }
                        if (heading_sp < 100)
                        {
                            heading_string = "0" + heading_string;
                        }

                        order = "H" + heading_string[0].ToString() + heading_string[1].ToString() + heading_string[2].ToString();
                    }

                    if (parameter_update)
                    {
                        order = "P" + Kp.ToString() + ";" + Kp.ToString() + ";" + Kp.ToString();


                        parameter_update = false;
                    }

                    if (serialPort1.IsOpen == true)
                    {
                        serial_write(order);

                        Thread.Sleep(500);


                        if (serialPort1.BytesToRead > 0)
                        {
                            string empfangen = serialPort1.ReadExisting();
                        }
                    }



                    //Neue Daten empfangen
                    // var time=timer_global.ElapsedMilliseconds;
                }
            }