Exemplo n.º 1
0
 public ViewParameter(ParameterSets parameterSets, FormMain mainForm)
 {
     InitializeComponent();
     this.parameterSets = parameterSets;
     this.mainForm = mainForm;
     fillParameter();
     errorLabels = new ResourceManager("UAVP.UAVPSet.Resources.error", this.GetType().Assembly);
 }
Exemplo n.º 2
0
        /// <summary>
        /// SChreiben der Parameter für Funktion writeParameter
        /// </summary>
        /// <param name="mainForm"></param>
        /// <param name="value"></param>
        private bool parameterWrite(FormMain mainForm, ParameterSets.ParameterSetsStruc value)
        {
            mainForm.Cursor = Cursors.WaitCursor;
            try
            {
                string temp;
                //sp.Write("M");
                // nur ein Write hatte nicht zuverlässig funktioniert
                // für ein write müsste das readline durch read ersetzt und anders ausgewertet werden
                sp.WriteLine("M");
                // log über sendekey
                if (Properties.Settings.Default.logLevel > 0)
                {
                    Log.write(mainForm, "send: \"M\" for Parameter: " +
                        Convert.ToInt16(value.Command.Substring(9)).ToString("00"), 1);
                }
                //***** TONY
                Thread.Sleep(Properties.Settings.Default.iReadSleep);
                temp = sp.ReadLine();

                // alle inputs durchgehen
                //while (temp != ">M\r")
                // hier auf Parameter warten - es ist sonst immer zu einem timeout gekommen
                while (temp != "Register ")
                {
                    //***** TONY
                    Thread.Sleep(Properties.Settings.Default.iReadSleep);
                    temp = sp.ReadLine();
                    // log schreiben wenn debuglevel
                    if (Properties.Settings.Default.logLevel > 0)
                    {
                        Log.write(mainForm, temp + "first write M", 1);
                    }
                }

                // default sleep - seit Version 3.15 notwendig :-(
                Thread.Sleep(10);

                ////Hier der Code für ein write
                ////sp.WriteLine(Convert.ToInt16(value.Command.Substring(9)).ToString("00"));
                ////temp = sp.ReadLine();
                ////while (temp != (Convert.ToInt16(value.Command.Substring(9)).ToString("00") + " = "))
                ////{
                ////    temp = sp.ReadLine();
                ////    // log schreiben wenn debuglevel
                ////    if (Properties.Settings.Default.logLevel > 0)
                ////    {
                ////        Log.write(mainForm, temp, 1);
                ////    }
                ////}
                ////sp.WriteLine(Convert.ToInt16(value.Value).ToString("00"));
                // schreiben auf einmal

                if (Properties.Settings.Default.logLevel > 0)
                    {
                        Log.write(mainForm, value.Command.Substring(9).ToString() + " = " +
                                    value.Value, 1);
                    }

                sp.Write(Convert.ToInt16(value.Command.Substring(9)).ToString("00"));

                // default sleep - seit Version 3.15 notwendig :-(
                Thread.Sleep(10);

                if (Properties.Settings.Default.logLevel > 0)
                {
                    Log.write(mainForm, "Write: " + Convert.ToInt16(value.Command.Substring(9)).ToString("00").ToString(), 1);
                }

                sp.Write(Convert.ToInt16(value.Value).ToString("00"));

                if (Properties.Settings.Default.logLevel > 0)
                {
                    Log.write(mainForm, "Write: " + Convert.ToInt16(value.Value).ToString("00").ToString(), 1);
                }

                //***** TONY
                Thread.Sleep(Properties.Settings.Default.iReadSleep);
                // default sleep - seit Version 3.15 notwendig :-(
                Thread.Sleep(10);

                temp = sp.ReadLine();

                if (temp != Convert.ToInt16(value.Command.Substring(9)).ToString("00") +
                    " = " + Convert.ToInt16(value.Value).ToString("00") + "\r")
                {
                    throw (new Exception());
                }
                ////Hier der Code für ein write
                ////while (temp != ">")
                ////{
                ////    temp = sp.ReadLine();
                ////    // log schreiben wenn debuglevel
                ////    if (Properties.Settings.Default.logLevel > 0)
                ////    {
                ////        Log.write(mainForm, temp, 1);
                ////    }
                ////}
                // log über sendekey
                Log.write(mainForm, (labels.GetString("writeParameter") +
                Convert.ToInt16(value.Command.Substring(9)).ToString("00") + " = " +
                Convert.ToInt16(value.Value).ToString("00")), 0);

                // Progressbar hochzählen
                mainForm.toolStripProgressBar.Increment(4);
                // Infotext in status schreiben
                mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("writeParameter") + Convert.ToInt16(value.Command.Substring(9)).ToString("00") + " = " + Convert.ToInt16(value.Value).ToString("00");
                Application.DoEvents();
                mainForm.Cursor = Cursors.Default;
                return true;
            }
            catch (Exception e)
            {
                MessageBox.Show(errorLabels.GetString("askPic"), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Log.write(mainForm, e.ToString() + "\r\nTest Return from Pic", 1);
                mainForm.Cursor = Cursors.Default;
                return false;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// werte an Pic schreiben
        /// </summary>
        /// <param name="mainForm"></param>
        /// <param name="parameter"></param>
        public void writeParameters(FormMain mainForm, ParameterSets parameter)
        {
            bool err = true;
            mainForm.writeUpdate = true;
            // Verbindung öffnen wenn noch nicht verbunden
            if (!sp.IsOpen)
            {
                err = connect(mainForm, false, true);
            }
            // wenn fehler
            if (err == false)
            {
                return;
            }

            // Progressbar einblenden und Cursor auf wait setzen
            mainForm.toolStripProgressBar.Visible = true;
            mainForm.Cursor = Cursors.WaitCursor;
            mainForm.Enabled = false;

            // wenn Prameter Set 1
            if (mainForm.tabControlParameter.SelectedIndex == 0)
            {
                // alle Parameter schreiben
                foreach(ParameterSets.ParameterSetsStruc value in parameter.parameterForm1)
                {
                    // wenn fehler beim schreiben dann aussteigen
                    if (err = parameterWrite(mainForm, value) == false)
                    {
                        break;
                    }
                }

            }
            else
            {
                // wenn SET 2
                // alle Parameter schreiben
                foreach (ParameterSets.ParameterSetsStruc value in parameter.parameterForm2)
                {
                    // wenn fehler beim schreiben dann aussteigen
                    if (err = parameterWrite(mainForm, value) == false)
                    {
                        break;
                    }
                }

            }
            // Progressbar ausblenden und Cursor auf default setzen
            mainForm.toolStripProgressBar.Value = 0;
            mainForm.toolStripProgressBar.Visible = false;
            mainForm.Cursor = Cursors.Default;
            mainForm.Enabled = true;

            mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("writeOk");
            Log.write(mainForm, labels.GetString("writeOk"), 0);

            //nochmals alle parameter lesen und prüfen ob mit werten gleich
            mainForm.writeUpdate = true;
            readParameters(mainForm, parameter);
            mainForm.writeUpdate = false;
        }
Exemplo n.º 4
0
        /// <summary>
        /// lesen der Parameter
        /// </summary>
        /// <param name="mainForm"></param>
        /// <param name="parameter"></param>
        public void readParameters(FormMain mainForm, ParameterSets parameter)
        {
            // Cursor auf wait setzen
            mainForm.Cursor = Cursors.WaitCursor;

            // Abfrage der Prameter mit L und speichern in array
            ArrayList para = askPic(mainForm, "L");

            // wenn Loglevel auf debug - deshalb mit if damit foreach nicht so oft aufgerufen wird
            if (Properties.Settings.Default.logLevel > 0)
            {
                foreach (string output in para)
                {
                    Log.write(mainForm, output, 1);
                }
            }
            else
            {        // standardausgabe
                if (para.Count > 0)
                {
                    try
                    {
                        Log.write(mainForm, para[1].ToString(), 0);
                    }
                    catch {
                        Log.write(mainForm, "Fehler beim schreiben Para.Count - PICConnect.cs line 223", 1);
                    }
                }
            }

            //wenn fehler in Verbindung
            if (para.Count == 0)
            {
                // Cursor auf default setzen
                mainForm.Cursor = Cursors.Default;
                return;
            }

            // springen auf richtiges TAB
            mainForm.tabControlParameter.SelectedIndex = Convert.ToInt16(para[1].ToString().Substring(24, 1)) - 1;

            // markieren des TABS
            if (mainForm.tabControlParameter.SelectedIndex == 0)
            {
                mainForm.tabPageParameterSet1.Text = labels.GetString("paraSetAktiv1");
                mainForm.tabPageParameterSet2.Text = labels.GetString("paraSet2");
            }
            else
            {
                mainForm.tabPageParameterSet1.Text = labels.GetString("paraSet1");
                mainForm.tabPageParameterSet2.Text = labels.GetString("paraSetAktiv2");
            }

            // wenn tab Parameter Set 1 gelesen wird
            if (mainForm.tabControlParameter.SelectedIndex == 0)
            {
                // alle Chapter löschen
                for (int i = 0; i < parameter.parameterPic1.Length; i++)
                {
                    parameter.parameterPic1[i].Chapter = "";
                }

                // durchgehen des arrays und in Prameter Struc speichern
                for (int i = 0; i < para.Count-2; i++)
                {
                    //Log.write(mainForm, para[i].ToString(), 0);
                    // + in den Parametern ausschneiden
                    if (para[i + 2].ToString().Substring(15, 1) == "+")
                    {
                        para[i + 2] = Convert.ToInt16(para[i + 2].ToString().Substring(16, 3));
                    }
                    else
                    {
                        para[i + 2] = Convert.ToInt16(para[i + 2].ToString().Substring(15, 4));
                    }

                    parameter.parameterPic1[i].Command = "Register " + (i + 1).ToString();
                    parameter.parameterPic1[i].Value = para[i + 2].ToString();
                    parameter.parameterPic1[i].Chapter = "ChannelSet";

                }
                // ganzes Form mit den Daten updaten
                parameter.updateForm(parameter.parameterPic1, mainForm);
            }
            else
            {
                // alle Chapter löschen
                for (int i = 0; i < parameter.parameterPic2.Length; i++)
                {
                    parameter.parameterPic2[i].Chapter = "";
                }
                // gleiches wenn Parameter Set 2 gelesen wird
                // durchgehen des arrays und in Prameter Struc speichern
                for (int i = 0; i < para.Count-2; i++)
                {

                    Log.write(mainForm, para[i].ToString(), 0);
                    // + in den Parametern ausschneiden
                    if (para[i + 2].ToString().Substring(15, 1) == "+")
                    {
                        para[i + 2] = Convert.ToInt16(para[i + 2].ToString().Substring(16, 3));
                    }
                    else
                    {
                        para[i + 2] = Convert.ToInt16(para[i + 2].ToString().Substring(15, 4));
                    }

                    parameter.parameterPic2[i].Command = "Register " + (i + 1).ToString();
                    parameter.parameterPic2[i].Value = para[i + 2].ToString();
                    parameter.parameterPic2[i].Chapter = "ChannelSet";

                }
                // ganzes Form mit den Daten updaten
                parameter.updateForm(parameter.parameterPic2, mainForm);
            }

            // Cursor auf default setzen
            mainForm.Cursor = Cursors.Default;
        }