예제 #1
0
        /// <summary>
        /// neue Logdatei erstellen
        /// </summary>
        public static void newLog(FormMain mainForm)
        {
            // Dateiname ermitteln
            string fileName = Path.Combine(mainForm.pfad, "DebugLog.txt");

            // StreamWriter-Instanz für die Datei erzeugen
            StreamWriter sw = null;
            try
            {
                //datei wird überschrieben oder neu erzeugt
                sw = new StreamWriter(fileName, false, Encoding.GetEncoding("windows-1252"));
            }
            catch (Exception e)
            {
                MessageBox.Show(mainForm.errorLabels.GetString("errorLog") + "\r\n" + e.ToString(), "Error!", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                return;
            }

            // Datei zeilenweise schreiben
            sw.WriteLine(DateTime.Now + ": UAVPSet Version: " + Assembly.GetExecutingAssembly().GetName().Version.ToString() + " starts\r\n");

            // StreamWriter schließen
            sw.Close();
        }
예제 #2
0
        FormMain mainForm; //Mainform um auf Log-TAB und Statusleiste zugreifen zu können

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Initialisierung der Klasse
        /// </summary>
        /// <param name="mainForm">MainForm</param>
        public Configuration(FormMain mainForm)
        {
            InitializeComponent();
            //com Ports zuweisen zu pull-down
            string[] aviableComPorts = ComPorts.readPorts();
            foreach (string aviableComPort in aviableComPorts)
            {
                comPortComboBox.Items.Add(aviableComPort);
            }
            this.mainForm = mainForm; //in lokale Variable speichern
            // Alle werte aus den Settings den Steuerelementen zuweisen
            comPortComboBox.Text = Properties.Settings.Default.comPort; //ComPort
            loglevelComboBox.SelectedIndex = Properties.Settings.Default.logLevel; //LogLevel 1..Debug
            splashCheckBox.Checked = Properties.Settings.Default.spash; //soll Splash angezeigt werden
            timeOutMaskedTextBox.Text = Properties.Settings.Default.time.ToString(); //Timeout bei PIC read
            writeSleepMaskedTextBox.Text = Properties.Settings.Default.writeSleep.ToString(); //waren auf PIC Antwort beim Brennen
            //***** TONY
            readSleepMaskedText.Text = Properties.Settings.Default.iReadSleep.ToString(); //delay between each read
            askBurnPicCheckBox.Checked = Properties.Settings.Default.askBurnPic; //Sicherheitsabfrage beim Brennen
            bitsSComboBox.Text = Properties.Settings.Default.baudRate.ToString(); //bits per second
            paritaetComboBox.Text = Properties.Settings.Default.parity; // parität
            stopBitsComboBox.Text = Properties.Settings.Default.stopBits; // stopbits
            flussComboBox.Text = Properties.Settings.Default.handshake; //flusssteuerung
            languageComboBox.Text = Properties.Settings.Default.language; //sprachsteuerung
            versionComboBox.Text = Properties.Settings.Default.version; //PIC Version
            autoDisCheckBox.Checked = Properties.Settings.Default.focus; //auto disconnect bei Focusverlust
        }
예제 #3
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);
 }
예제 #4
0
        /// <summary>
        /// Sendet ein x an den Pic 
        /// für Testprogramm um weiter zu kommen
        /// </summary>
        /// <param name="mainForm"></param>
        public ArrayList anyKey(FormMain mainForm)
        {
            string key = "x";
            bool con = true;
            // wenn noch keine Verbindung besteht automatisch öffnen
            if (!sp.IsOpen)
            {
                con = connect(mainForm, false, true);
            }
            else
            {
                sp.DiscardInBuffer();
            }
            // Puffer leeren wenn Boad neu gestartet wird kommt info sonst in den buffer

            ArrayList ret = new ArrayList();

            // wenn verbindung nicht ok
            if (con == false)
            {
                return ret;
            }
            string temp;

            try
            {
                // keine Zeiteinsparung mit write statt writeline - ende mit > leichter erfassbar.
                // deshalb wieder auf writeline umgestellt
                sp.Write(key);
                // log über sendekey
                if (Properties.Settings.Default.logLevel > 0)
                {
                    Log.write(mainForm, labels.GetString("writeParameter") + key, 1);
                }
                //***** TONY
                Thread.Sleep(Properties.Settings.Default.iReadSleep);
                temp = sp.ReadLine();
                // > kommt wenn nichts mehr kommt - aber nur bei writeLine!
                // für was war T: ???

                // auf ERR abfragen wenn der PIC sich im B status befindet
                if (temp == "ERR\r")
                {
                    Log.write(mainForm, "Board is in Bootloader Status!", 1);
                    ret.Add(temp);
                    mainForm.picBootModus = true;
                    MessageBox.Show(errorLabels.GetString("picBurnMode"), "Info!", MessageBoxButtons.OK,
                        MessageBoxIcon.Warning);
                    return ret;
                }

                while (temp != ">") // T wird nur für Receiver benötigt wenn nur write und nicht writeline
                // || temp.Substring(0,1) == "T")
                {
                    ret.Add(temp);
                    //***** TONY
                    Thread.Sleep(Properties.Settings.Default.iReadSleep);
                    temp = sp.ReadLine();

                    // log schreiben wenn debuglevel
                    if (Properties.Settings.Default.logLevel > 0)
                    {
                        Log.write(mainForm, temp, 1);
                    }
                }
            }
            catch (Exception e)
            {
                if (con == false)
                {
                    MessageBox.Show(errorLabels.GetString("askPic"), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                Log.write(mainForm, e.ToString(), 1);
            }
            return ret;
        }
예제 #5
0
        /// <summary>
        /// lesen welches SET aktiv am PIC ist 
        /// </summary>
        /// <param name="mainForm"></param>
        public void parameterSet(FormMain mainForm)
        {
            // pic fragen
            ArrayList setup = askPic(mainForm, "S");

            // logausgabe
            if (Properties.Settings.Default.logLevel > 0)
            {
                foreach (string output in setup) {
                    Log.write(mainForm, output, 1);

                }
            }
            else
            {
                // wenn keine Verbindung besteht gibt es kein setup[5]
                if (setup.Count > 4)
                {
                    Log.write(mainForm, setup[5].ToString(), 0);
                }
                else
                {
                    Log.write(mainForm, "Error: Setup <= 4", 1);
                }
            }

            if (setup.Count <= 4)
            {
                return;
            }

            //Parameterset auslesen
            int chanelSet = 0;
            foreach (string chanel in setup)
            {
                if (chanel.Length > 22)
                {
                    if (chanel.Substring(0, 22) == "Selected parameter set")
                    {
                        chanelSet = Convert.ToInt16(chanel.ToString().Substring(24, 1)) - 1;
                    }
                }
            }

            // aktives TAB selectieren
            mainForm.tabControlParameter.SelectedIndex = chanelSet;
            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");
            }
        }
예제 #6
0
 /// <summary>
 /// Starten der Debugsoftware
 /// </summary>
 /// <param name="mainForm"></param>
 public void debugSoftware(FormMain mainForm)
 {
     //sp.Close();   // übergabe der Connection klasse
     DebugSoftware debugSoftware = new DebugSoftware(mainForm, this);
         debugSoftware.ShowDialog();
 }
예제 #7
0
        /// <summary>
        /// Klasse um verbindung zu schließen und infos in Mainform umzustellen
        /// </summary>
        /// <param name="mainForm"></param>
        public void closeConnection(FormMain mainForm)
        {
            // wenn bereits verbunden dann info und Verbindung trennen
            mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("disconnected");
            Log.write(mainForm, labels.GetString("disconnected"), 0);
            mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("disconnected");
            mainForm.listViewJobs.Items[0].Text = labels.GetString("disconnected");
            mainForm.listViewJobs.Items[0].ForeColor = Color.Black;

            sp.Close();
        }
예제 #8
0
 public Neutral(FormMain mainForm)
 {
     InitializeComponent();
     this.mainForm = mainForm;
 }
예제 #9
0
        /// <summary>
        /// Funtkion um Logtext zu schreiben
        /// </summary>
        /// <param name="mainForm"></param>
        /// <param name="logtext"></param>
        /// <param name="level"></param>
        public static void write(FormMain mainForm, string logtext, int level)
        {
            // ausgabe nur wenn eingestellter Loglevel größer ist
            if (Properties.Settings.Default.logLevel >= level && logtext != null)
            {
                // bei den pic zeilen wird ein \n mitgegeben - bei anderen nicht
                // deshalb immer löschen und komplett hinzufügen
                string temp = logtext;
                if ((temp.Substring(logtext.Length - 1) == "\r") && (logtext.Length >= 1))
                {
                    logtext = logtext.Substring(0, logtext.Length - 1);
                }
                mainForm.logTextBox.Text += DateTime.Now + ": "+ logtext + "\r\n";
                // auf das ende der Textbox scrollen
                mainForm.logTextBox.SelectionStart = mainForm.logTextBox.Text.Length;
                mainForm.logTextBox.ScrollToCaret();
                if (level == 1)
                {
                    // Dateiname ermitteln
                    string fileName = Path.Combine(mainForm.pfad, "DebugLog.txt");

                    // StreamWriter-Instanz für die Datei erzeugen
                    StreamWriter sw = null;
                    try
                    {
                        sw = new StreamWriter(fileName, true, Encoding.GetEncoding("windows-1252"));
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(mainForm.errorLabels.GetString("errorLog") + "\r\n" + e.ToString(), "Error!", MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                        return;
                    }

                    // Datei zeilenweise schreiben
                    sw.WriteLine(DateTime.Now + ": " + logtext + "\r\n");

                    // StreamWriter schließen
                    sw.Close();
                }
            }
        }
예제 #10
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;
        }
예제 #11
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;
        }
예제 #12
0
파일: Receiver.cs 프로젝트: cjsatuforc/UAVP
 public Receiver(FormMain mainForm)
 {
     InitializeComponent();
     this.mainForm = mainForm;
 }
예제 #13
0
파일: Neutral.cs 프로젝트: cjsatuforc/UAVP
 public Neutral(FormMain mainForm)
 {
     InitializeComponent();
     this.mainForm = mainForm;
 }
예제 #14
0
        /// <summary>
        /// verbinden mit PIC
        /// </summary>
        /// <param name="mainForm"></param>
        public bool connect(FormMain mainForm, bool testSoftware)
        {
            // wenn Verbindung noch nicht offen ist
            if (!sp.IsOpen)
            {
                //TODO: wird zur Zeit noch nicht aus den Einstellungen übernommen (nur Port und Timeout)
                sp.PortName    = Properties.Settings.Default.comPort;
                sp.BaudRate    = 38400;
                sp.StopBits    = StopBits.One;
                sp.DataBits    = 8;
                sp.Parity      = Parity.None;
                sp.Handshake   = Handshake.None;
                sp.ReadTimeout = Convert.ToInt16(Properties.Settings.Default.time);

                Log.write(mainForm, Properties.Settings.Default.comPort, 1);


                try
                {
                    sp.Open();
                    // testen der Verbindung über ?
                    ArrayList test = testComm(mainForm);
                    // schreiben in Status und log

                    if (test.Count > 0)
                    {
                        mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("picConnected");
                        Log.write(mainForm, labels.GetString("picConnected"), 0);
                        // austauschen text und textfarbe bei listview
                        mainForm.listViewJobs.Items[0].Text      = labels.GetString("listviewConnected");
                        mainForm.listViewJobs.Items[0].ForeColor = Color.Green;

                        //nur abfragen wenn sich Ufo nicht im Boot Status befindet
                        // dann kommt bei der Statusabfrage ein Error
                        if (test[0].ToString() != "ERR\r")
                        {
                            if (test[1].ToString().Substring(0, 14) == "Profi-Ufo TEST" && testSoftware == false)
                            {
                                MessageBox.Show(errorLabels.GetString("testSoft"), "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                Log.write(mainForm, errorLabels.GetString("testSoft"), 1);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show(errorLabels.GetString("askPic"), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        closeConnection(mainForm);
                        return(false);
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(errorLabels.GetString("connect") + "\r\n" + e.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Log.write(mainForm, e.ToString(), 1);
                    closeConnection(mainForm);
                    return(false);
                }
            }
            else
            {
                // wenn bereits verbunden dann info und Verbindung trennen
                closeConnection(mainForm);
            }
            return(true);
        }
예제 #15
0
파일: Hilfe.cs 프로젝트: cjsatuforc/UAVP
        /// <summary>
        /// allgemeine Funktion die von jedem Steuerelement aufgerufen werden kann
        /// </summary>
        /// <param name="mainForm"></param>
        static public void info(FormMain mainForm)
        {
// RollAchse Hilfe
            // Setting 1
            if (mainForm.rollProp1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
            }
            if (mainForm.rollDiff1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
            }
            if (mainForm.rollInt1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
            }
            if (mainForm.rollLimit1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
            }
            if (mainForm.rollIntLimit1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
            }
            if (mainForm.rollMa1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
            }
            if (mainForm.rollA1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
            }
            //Setting 2
            if (mainForm.rollProp2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
            }
            if (mainForm.rollDiff2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
            }
            if (mainForm.rollInt2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
            }
            if (mainForm.rollLimit2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
            }
            if (mainForm.rollIntLimit2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
            }
            if (mainForm.rollMa2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
            }
            if (mainForm.rollA2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
            }
// NickAchse Hilfe
            // Setting 1
            if (mainForm.nickProp1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
            }
            if (mainForm.nickDiff1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
            }
            if (mainForm.nickInt1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
            }
            if (mainForm.nickLimit1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
            }
            if (mainForm.nickIntLimit1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
            }
            if (mainForm.nickMa1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
            }
            if (mainForm.nickA1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
            }
            // Setting 2
            if (mainForm.nickProp2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
            }
            if (mainForm.nickDiff2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
            }
            if (mainForm.nickInt2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
            }
            if (mainForm.nickLimit2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
            }
            if (mainForm.nickIntLimit2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
            }
            if (mainForm.nickMa2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
            }
            if (mainForm.nickA2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
            }
// GierAchse Hilfe
            // Setting 1
            if (mainForm.gierProp1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
            }
            if (mainForm.gierDiff1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
            }
            if (mainForm.gierInt1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
            }
            if (mainForm.gierLimit1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
            }
            if (mainForm.gierIntLimit1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
            }
            if (mainForm.gierMa1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
            }
            if (mainForm.gierA1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
            }
            // Setting 2
            if (mainForm.gierProp2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
            }
            if (mainForm.gierDiff2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
            }
            if (mainForm.gierInt2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
            }
            if (mainForm.gierLimit2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
            }
            if (mainForm.gierIntLimit2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
            }
            if (mainForm.gierMa2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
            }
            if (mainForm.gierA2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
            }
// Sonstiges
            // Setting 1
            if (mainForm.bit01CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("XModus");
            }
            if (mainForm.bit11CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("GasKanal");
            }
            if (mainForm.bit21CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Integrierzustand");
            }
            if (mainForm.bit31CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("HalbRollNick");
            }
            if (mainForm.bit41CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("EmpfaengerImpulse");
            }
            if (mainForm.impulseAusgabe1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Impuls");
            }
            if (mainForm.leerlaufgas1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Leerlaufgas");
            }
            if (mainForm.kamera1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Kameraausgleich");
            }
            if (mainForm.compass1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Kompass");
            }
            if (mainForm.akku1NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Unterspannung");
            }
            // Setting 2
            if (mainForm.bit02CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("XModus");
            }
            if (mainForm.bit12CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("GasKanal");
            }
            if (mainForm.bit22CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Integrierzustand");
            }
            if (mainForm.bit32CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("HalbRollNick");
            }
            if (mainForm.bit42CheckBox.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("EmpfaengerImpulse");
            }
            if (mainForm.impulseAusgabe2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Impuls");
            }
            if (mainForm.leerlaufgas2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Leerlaufgas");
            }
            if (mainForm.kamera2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Kameraausgleich");
            }
            if (mainForm.compass2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Kompass");
            }
            if (mainForm.akku2NumericUpDown.Focused)
            {
                mainForm.infoTextBox.Text = mainForm.help.GetString("Unterspannung");
            }
        }
예제 #16
0
        /// <summary>
        /// Verbindung mit PIC über ? testen
        /// </summary>
        /// <param name="mainForm"></param>
        /// <returns></returns>
        public ArrayList testComm(FormMain mainForm)
        {
            ArrayList ret = askPic(mainForm, "S");
            Log.write(mainForm, "Function testCom:", 1);

            // logausgabe
            if (Properties.Settings.Default.logLevel > 0)
            {
                foreach (string output in ret)
                {
                    Log.write(mainForm, output, 1);
                }
            }
            return ret;
        }
예제 #17
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;
        }
예제 #18
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);
            }
        }
예제 #19
0
 /// <summary>
 /// speichern der Parameter in eine Datei
 /// </summary>
 /// <param name="pfad"></param>
 /// <param name="mainForm"></param>
 public void speichern(string pfad, FormMain mainForm)
 {
     StreamWriter sw = new StreamWriter(pfad, false, Encoding.GetEncoding("windows-1252"));
     try
     {
         // header für Datei
         sw.WriteLine("[ChannelSet]");
         // es wird immer das aktive Tab gespeichert
         if (mainForm.tabControlParameter.SelectedIndex == 0)
         {
             foreach (ParameterSetsStruc register in parameterForm1)
             {
                 if (register.Command != null)
                 {
                     sw.WriteLine(register.Command + "=" + register.Value);
                 }
             }
         }
         else
         {
             foreach (ParameterSetsStruc register in parameterForm2)
             {
                 if (register.Command != null)
                 {
                     sw.WriteLine(register.Command + "=" + register.Value);
                 }
             }
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
         Log.write(mainForm, e.ToString(), 1);
     }
     finally
     {
         // datei schließen
         sw.Close();
     }
     // log schreiben bei debug
     Log.write(mainForm, "Write Parameterset: " + pfad, 1);
 }
예제 #20
0
        /// <summary>
        /// verbinden mit PIC
        /// </summary>
        /// <param name="mainForm"></param>
        public bool connect(FormMain mainForm, bool testSoftware, bool connectionTesten)
        {
            // wenn Verbindung noch nicht offen ist
            if (!sp.IsOpen)
            {
                //TODO: wird zur Zeit noch nicht aus den Einstellungen übernommen (nur Port und Timeout)
                sp.PortName = Properties.Settings.Default.comPort;
                sp.BaudRate = Properties.Settings.Default.baudRate;
                switch (Properties.Settings.Default.stopBits)
                {
                case "1":
                    sp.StopBits = StopBits.One;
                    break;

                case "1.5":
                    sp.StopBits = StopBits.OnePointFive;
                    break;

                case "2":
                    sp.StopBits = StopBits.Two;
                    break;

                case "None":
                    sp.StopBits = StopBits.None;
                    break;
                }
                sp.DataBits = 8;
                switch (Properties.Settings.Default.parity)
                {
                case "Even":
                    sp.Parity = Parity.Even;
                    break;

                case "Mark":
                    sp.Parity = Parity.Mark;
                    break;

                case "None":
                    sp.Parity = Parity.None;
                    break;

                case "Odd":
                    sp.Parity = Parity.Odd;
                    break;

                case "Space":
                    sp.Parity = Parity.Space;
                    break;
                }
                switch (Properties.Settings.Default.handshake)
                {
                case "None":
                    sp.Handshake = Handshake.None;
                    break;

                case "RequestToSend":
                    sp.Handshake = Handshake.RequestToSend;
                    break;

                case "RequestToSendXOnXOff":
                    sp.Handshake = Handshake.RequestToSendXOnXOff;
                    break;

                case "XOnXOff":
                    sp.Handshake = Handshake.XOnXOff;
                    break;
                }
                sp.ReadTimeout = Convert.ToInt16(Properties.Settings.Default.time);

                Log.write(mainForm, Properties.Settings.Default.comPort, 1);


                try
                {
                    sp.Open();
                    // testen der Verbindung über ?
                    // Bei debugausgabe darf die Verbindung nicht geprüft werden da keine Antowrt kommt!
                    if (connectionTesten == true)
                    {
                        ArrayList test = testComm(mainForm);
                        // schreiben in Status und log

                        if (test.Count > 0)
                        {
                            mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("picConnected");
                            Log.write(mainForm, labels.GetString("picConnected"), 0);
                            // austauschen text und textfarbe bei listview
                            mainForm.listViewJobs.Items[0].Text      = labels.GetString("listviewConnected");
                            mainForm.listViewJobs.Items[0].ForeColor = Color.Green;

                            //nur abfragen wenn sich Ufo nicht im Boot Status befindet
                            // dann kommt bei der Statusabfrage ein Error
                            if (test[0].ToString() != "ERR\r")
                            {
                                if (test[1].ToString().Substring(0, 14) == "Profi-Ufo TEST" && testSoftware == false)
                                {
                                    MessageBox.Show(errorLabels.GetString("testSoft"), "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    Log.write(mainForm, errorLabels.GetString("testSoft"), 1);
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show(errorLabels.GetString("askPic"), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            closeConnection(mainForm);
                            return(false);
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(errorLabels.GetString("connect") + "\r\n" + e.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Log.write(mainForm, e.ToString(), 1);
                    closeConnection(mainForm);
                    return(false);
                }
            }
            else
            {
                // wenn bereits verbunden dann info und Verbindung trennen
                closeConnection(mainForm);
            }
            return(true);
        }
예제 #21
0
        public void burnPic(FormMain mainForm, string fileName)
        {
            //Hex laden
            // StreamReader-Instanz für die Datei erzeugen
            StreamReader sr = null;

            try
            {
                sr = new StreamReader(fileName, Encoding.GetEncoding("windows-1252"));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                Log.write(mainForm, ex.ToString(), 1);
                return;
            }

            // Datei zeilenweise einlesen

            ArrayList hexFile = new ArrayList();
            string    line    = null;

            while ((line = sr.ReadLine()) != null)
            {
                hexFile.Add(line);
            }

            Log.write(mainForm, ("Read File: " + fileName), 0);
            Log.write(mainForm, ("Lines: " + hexFile.Count.ToString()), 1);


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

            // Brennen in PIC
            // wenn noch keine Verbindung besteht automatisch öffnen
            if (!sp.IsOpen)
            {
                connect(mainForm, false, true);
            }


            Log.write(mainForm, Properties.Settings.Default.comPort, 1);


            int    i    = 1;
            string temp = "no answer from pic after B";

            if (mainForm.picBootModus == false)
            {
                sp.DiscardInBuffer();
                sp.Write("B");
                try
                {
                    //***** TONY
                    Thread.Sleep(Properties.Settings.Default.iReadSleep);
                    temp = sp.ReadLine();
                    if (temp == "B\r")
                    {
                        //***** TONY
                        Thread.Sleep(Properties.Settings.Default.iReadSleep);
                        temp = sp.ReadLine();
                    }
                }
                catch (Exception e)
                {
                    Log.write(mainForm, e.ToString(), 1);
                }
            }
            Log.write(mainForm, temp, 1);
            mainForm.toolStripProgressBar.Maximum = Convert.ToInt16(hexFile.Count);

            //alle zeilen des Files schreiben
            try
            {
                foreach (string zeile in hexFile)
                {
                    mainForm.Cursor = Cursors.WaitCursor;
                    if (Properties.Settings.Default.logLevel > 0)
                    {
                        Log.write(mainForm, zeile, 1);
                    }
                    // Progressbar hochzählen
                    mainForm.toolStripProgressBar.Increment(1);
                    // Infotext in status schreiben
                    mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("writeLine") +
                                                                   " " + i.ToString() + " " + labels.GetString("writeMax") + " " +
                                                                   Convert.ToInt16(hexFile.Count) + "  ";

                    // Infotext in Log schreiben
                    Log.write(mainForm, ("Line: " + i.ToString() + ": " + zeile), 0);
                    Application.DoEvents();
                    i++;

                    // zeile senden
                    sp.Write(zeile + "\r\n");
                    // für die höhere Übertragungsrate nach jeder Zeile etwas warten.
                    Thread.Sleep(1);
                    // hier wurde von 4 schon auf 10 erhöht - er kommt trozdem immer wieder zu einem Timeout
                    for (int j = 0; j < 10; j++)
                    {
                        // etwas warten bis der PIC die Daten verarbeitet hat und bei jedem Versuch länger!

                        //***** TONY commented it out
                        if (Properties.Settings.Default.iReadSleep == 0)
                        {
                            Thread.Sleep(Properties.Settings.Default.writeSleep * j * j);
                        }
                        else
                        {
                            //***** TONY
                            Thread.Sleep(Properties.Settings.Default.iReadSleep);
                        }
                        temp = sp.ReadLine();
                        Log.write(mainForm, temp, 1);
                        if (temp == "ERR\r")
                        {
                            // zeile senden
                            sp.Write(zeile);

                            if (Properties.Settings.Default.logLevel > 0)
                            {
                                Log.write(mainForm, ("Try: " + (j).ToString() + " " + zeile), 1);
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                    if (temp == "ERR\r")
                    {
                        MessageBox.Show(errorLabels.GetString("flashError"), "Error!",
                                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                    // log schreiben wenn debuglevel

                    if (Properties.Settings.Default.logLevel > 0)
                    {
                        Log.write(mainForm, temp, 1);
                    }
                }
                // wenn pic erfolgreich geschrieben wurde
                mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("burnPicOk");
                Log.write(mainForm, labels.GetString("burnPicOk"), 0);
                mainForm.picBootModus = false;
            }
            catch (Exception e)
            {
                MessageBox.Show(errorLabels.GetString("errorBurn"), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Log.write(mainForm, errorLabels.GetString("errorBurn") + "\r\n" + e.ToString(), 1);
                //verbindung trennen um für neuversuch mit status "B" geschlossen zu sein
                closeConnection(mainForm);
            }

            // Info um Board neu zu starten
            MessageBox.Show(labels.GetString("flashInfo"), "Info!", MessageBoxButtons.OK, MessageBoxIcon.Information);

            // Progressbar ausblenden und Cursor auf default setzen
            mainForm.toolStripProgressBar.Value   = 0;
            mainForm.toolStripProgressBar.Visible = false;
            mainForm.toolStripProgressBar.Maximum = 100;
            mainForm.Cursor  = Cursors.Default;
            mainForm.Enabled = true;
        }
예제 #22
0
        /// <summary>
        /// Sendet ein x an den Pic
        /// für Testprogramm um weiter zu kommen
        /// </summary>
        /// <param name="mainForm"></param>
        public ArrayList anyKey(FormMain mainForm)
        {
            string key = "x";
            bool   con = true;

            // wenn noch keine Verbindung besteht automatisch öffnen
            if (!sp.IsOpen)
            {
                con = connect(mainForm, false, true);
            }
            else
            {
                sp.DiscardInBuffer();
            }
            // Puffer leeren wenn Boad neu gestartet wird kommt info sonst in den buffer

            ArrayList ret = new ArrayList();

            // wenn verbindung nicht ok
            if (con == false)
            {
                return(ret);
            }
            string temp;

            try
            {
                // keine Zeiteinsparung mit write statt writeline - ende mit > leichter erfassbar.
                // deshalb wieder auf writeline umgestellt
                sp.Write(key);
                // log über sendekey
                if (Properties.Settings.Default.logLevel > 0)
                {
                    Log.write(mainForm, labels.GetString("writeParameter") + key, 1);
                }
                //***** TONY
                Thread.Sleep(Properties.Settings.Default.iReadSleep);
                temp = sp.ReadLine();
                // > kommt wenn nichts mehr kommt - aber nur bei writeLine!
                // für was war T: ???


                // auf ERR abfragen wenn der PIC sich im B status befindet
                if (temp == "ERR\r")
                {
                    Log.write(mainForm, "Board is in Bootloader Status!", 1);
                    ret.Add(temp);
                    mainForm.picBootModus = true;
                    MessageBox.Show(errorLabels.GetString("picBurnMode"), "Info!", MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                    return(ret);
                }



                while (temp != ">") // T wird nur für Receiver benötigt wenn nur write und nicht writeline
                // || temp.Substring(0,1) == "T")
                {
                    ret.Add(temp);
                    //***** TONY
                    Thread.Sleep(Properties.Settings.Default.iReadSleep);
                    temp = sp.ReadLine();

                    // log schreiben wenn debuglevel
                    if (Properties.Settings.Default.logLevel > 0)
                    {
                        Log.write(mainForm, temp, 1);
                    }
                }
            }
            catch (Exception e)
            {
                if (con == false)
                {
                    MessageBox.Show(errorLabels.GetString("askPic"), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                Log.write(mainForm, e.ToString(), 1);
            }
            return(ret);
        }
예제 #23
0
        public void burnPic(FormMain mainForm, string fileName)
        {
            //Hex laden
            // StreamReader-Instanz für die Datei erzeugen
            StreamReader sr = null;
            try
            {
                sr = new StreamReader(fileName, Encoding.GetEncoding("windows-1252"));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                Log.write(mainForm, ex.ToString(), 1);
                return;
            }

            // Datei zeilenweise einlesen

            ArrayList hexFile = new ArrayList();
            string line = null;
            while ((line = sr.ReadLine()) != null)
            {
                hexFile.Add(line);
            }

            Log.write(mainForm, ("Read File: " + fileName), 0);
            Log.write(mainForm, ("Lines: " + hexFile.Count.ToString()), 1);

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

            // Brennen in PIC
            // wenn noch keine Verbindung besteht automatisch öffnen
            if (!sp.IsOpen)
            {
                connect(mainForm, false, true);
            }

            Log.write(mainForm, Properties.Settings.Default.comPort, 1);

            int i = 1;
            string temp = "no answer from pic after B";

            if (mainForm.picBootModus == false)
            {
                sp.DiscardInBuffer();
                sp.Write("B");
                try
                {
                    //***** TONY
                    Thread.Sleep(Properties.Settings.Default.iReadSleep);
                    temp = sp.ReadLine();
                    if (temp == "B\r")
                    {
                        //***** TONY
                        Thread.Sleep(Properties.Settings.Default.iReadSleep);
                        temp = sp.ReadLine();
                    }

                }
                catch (Exception e)
                {
                    Log.write(mainForm, e.ToString(), 1);
                }
            }
            Log.write(mainForm, temp, 1);
            mainForm.toolStripProgressBar.Maximum = Convert.ToInt16(hexFile.Count);

            //alle zeilen des Files schreiben
            try
            {
                foreach (string zeile in hexFile)
                {
                    mainForm.Cursor = Cursors.WaitCursor;
                    if (Properties.Settings.Default.logLevel > 0)
                    {
                        Log.write(mainForm, zeile, 1);
                    }
                    // Progressbar hochzählen
                    mainForm.toolStripProgressBar.Increment(1);
                    // Infotext in status schreiben
                    mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("writeLine") +
                        " " + i.ToString() + " " + labels.GetString("writeMax") + " " +
                        Convert.ToInt16(hexFile.Count) + "  ";

                    // Infotext in Log schreiben
                    Log.write(mainForm, ("Line: " + i.ToString() + ": " + zeile), 0);
                    Application.DoEvents();
                    i++;

                    // zeile senden
                    sp.Write(zeile + "\r\n");
                    // für die höhere Übertragungsrate nach jeder Zeile etwas warten.
                    Thread.Sleep(1);
                    // hier wurde von 4 schon auf 10 erhöht - er kommt trozdem immer wieder zu einem Timeout
                    for (int j = 0; j < 10; j++)
                    {
                        // etwas warten bis der PIC die Daten verarbeitet hat und bei jedem Versuch länger!

                        //***** TONY commented it out
                        if (Properties.Settings.Default.iReadSleep == 0)
                        {
                            Thread.Sleep(Properties.Settings.Default.writeSleep * j * j);
                        }
                        else
                        {
                            //***** TONY
                            Thread.Sleep(Properties.Settings.Default.iReadSleep);
                        }
                        temp = sp.ReadLine();
                        Log.write(mainForm, temp, 1);
                        if (temp == "ERR\r")
                        {
                            // zeile senden
                            sp.Write(zeile);

                            if (Properties.Settings.Default.logLevel > 0)
                            {
                                Log.write(mainForm, ("Try: " + (j).ToString() + " " + zeile), 1);
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                    if (temp == "ERR\r")
                    {
                        MessageBox.Show(errorLabels.GetString("flashError"), "Error!",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                    // log schreiben wenn debuglevel

                    if (Properties.Settings.Default.logLevel > 0)
                    {
                        Log.write(mainForm, temp, 1);
                    }

                }
                // wenn pic erfolgreich geschrieben wurde
                mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("burnPicOk");
                Log.write(mainForm, labels.GetString("burnPicOk"), 0);
                mainForm.picBootModus = false;
            }
            catch (Exception e)
            {
                MessageBox.Show(errorLabels.GetString("errorBurn"),"Error!",MessageBoxButtons.OK,MessageBoxIcon.Error);
                Log.write(mainForm, errorLabels.GetString("errorBurn") + "\r\n" + e.ToString(), 1);
                //verbindung trennen um für neuversuch mit status "B" geschlossen zu sein
                closeConnection(mainForm);
            }

            // Info um Board neu zu starten
            MessageBox.Show(labels.GetString("flashInfo"),"Info!",MessageBoxButtons.OK,MessageBoxIcon.Information);

            // Progressbar ausblenden und Cursor auf default setzen
            mainForm.toolStripProgressBar.Value = 0;
            mainForm.toolStripProgressBar.Visible = false;
            mainForm.toolStripProgressBar.Maximum = 100;
            mainForm.Cursor = Cursors.Default;
            mainForm.Enabled = true;
        }
예제 #24
0
 public Receiver(FormMain mainForm)
 {
     InitializeComponent();
     this.mainForm = mainForm;
 }
예제 #25
0
        /// <summary>
        /// verbinden mit PIC
        /// </summary>
        /// <param name="mainForm"></param>
        public bool connect(FormMain mainForm, bool testSoftware, bool connectionTesten)
        {
            // wenn Verbindung noch nicht offen ist
            if (!sp.IsOpen)
            {
                //TODO: wird zur Zeit noch nicht aus den Einstellungen übernommen (nur Port und Timeout)
                sp.PortName = Properties.Settings.Default.comPort;
                sp.BaudRate = Properties.Settings.Default.baudRate;
                switch (Properties.Settings.Default.stopBits)
                {
                    case "1":
                        sp.StopBits = StopBits.One;
                        break;
                    case "1.5":
                        sp.StopBits = StopBits.OnePointFive;
                        break;
                    case "2":
                        sp.StopBits = StopBits.Two;
                        break;
                    case "None":
                        sp.StopBits = StopBits.None;
                        break;
                }
                sp.DataBits = 8;
                switch (Properties.Settings.Default.parity)
                {
                    case "Even":
                        sp.Parity = Parity.Even;
                        break;
                    case "Mark":
                        sp.Parity = Parity.Mark;
                        break;
                    case "None":
                        sp.Parity = Parity.None;
                        break;
                    case "Odd":
                        sp.Parity = Parity.Odd;
                        break;
                    case "Space":
                        sp.Parity = Parity.Space;
                        break;
                }
                switch (Properties.Settings.Default.handshake)
                {
                    case "None":
                        sp.Handshake = Handshake.None;
                        break;
                    case "RequestToSend":
                        sp.Handshake = Handshake.RequestToSend;
                        break;
                    case "RequestToSendXOnXOff":
                        sp.Handshake = Handshake.RequestToSendXOnXOff;
                        break;
                    case "XOnXOff":
                        sp.Handshake = Handshake.XOnXOff;
                        break;
                }
                sp.ReadTimeout = Convert.ToInt16(Properties.Settings.Default.time);

                Log.write(mainForm, Properties.Settings.Default.comPort,1);

                try
                {
                    sp.Open();
                    // testen der Verbindung über ?
                    // Bei debugausgabe darf die Verbindung nicht geprüft werden da keine Antowrt kommt!
                    if (connectionTesten == true)
                    {
                        ArrayList test = testComm(mainForm);
                        // schreiben in Status und log

                        if (test.Count > 0)
                        {
                            mainForm.infoleisteToolStripStatusLabel.Text = labels.GetString("picConnected");
                            Log.write(mainForm, labels.GetString("picConnected"), 0);
                            // austauschen text und textfarbe bei listview
                            mainForm.listViewJobs.Items[0].Text = labels.GetString("listviewConnected");
                            mainForm.listViewJobs.Items[0].ForeColor = Color.Green;

                            //nur abfragen wenn sich Ufo nicht im Boot Status befindet
                            // dann kommt bei der Statusabfrage ein Error
                            if (test[0].ToString() != "ERR\r")
                            {
                                if (test[1].ToString().Substring(0, 14) == "Profi-Ufo TEST" && testSoftware == false)
                                {
                                    MessageBox.Show(errorLabels.GetString("testSoft"), "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    Log.write(mainForm, errorLabels.GetString("testSoft"), 1);
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show(errorLabels.GetString("askPic"), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            closeConnection(mainForm);
                            return false;
                        }
                    }
                }
                catch(Exception e)
                {
                    MessageBox.Show(errorLabels.GetString("connect") + "\r\n" + e.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Log.write(mainForm, e.ToString(),1);
                    closeConnection(mainForm);
                    return false;
                }
            }
            else
            {
                // wenn bereits verbunden dann info und Verbindung trennen
                closeConnection(mainForm);
            }
            return true;
        }
예제 #26
0
        /// <summary>
        /// Update der Felder in der Form
        /// </summary>
        /// <param name="registers">Structur der Registerwerte</param>
        ///// <param name="mainForm">Mainform</param>
        public void updateForm(ParameterSetsStruc[] registers, FormMain mainForm)
        {
            farbenSetzen(mainForm, Farbe.black);

            //TODO: hier case für neuen Parameter hinzufügen
            // alle Parameter durchgehen und lt. array setzen
            foreach (ParameterSetsStruc register in registers)
            {
                if (mainForm.tabControlParameter.SelectedIndex == 0)
                {
                    switch (Convert.ToInt16(register.Command.Substring(8)))
                    {
                        case 1:
                            parameterForm1[0].Value = register.Value;
                            mainForm.rollProp1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.rollProp1NumericUpDown, mainForm);
                            break;
                        case 2:
                            parameterForm1[1].Value = register.Value;
                            mainForm.rollInt1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.rollInt1NumericUpDown, mainForm);
                            break;
                        case 3:
                            parameterForm1[2].Value = register.Value;
                            mainForm.rollDiff1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.rollDiff1NumericUpDown, mainForm);
                            break;
                        case 4:
                            if (Convert.ToInt16(register.Value) <= 0 && Properties.Settings.Default.version == "3.12" ||
                                Convert.ToInt16(register.Value) <= 0 && Properties.Settings.Default.version == "3.13")
                            {
                                mainForm.rollLimit1NumericUpDown.Value = 1;
                                mainForm.baroTemp1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            else
                            {
                                mainForm.rollLimit1NumericUpDown.Value = Convert.ToInt16(register.Value);
                                mainForm.baroTemp1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            parameterForm1[3].Value = register.Value;
                            feldUpdaten(mainForm.rollLimit1NumericUpDown, mainForm);
                            feldUpdaten(mainForm.baroTemp1NumericUpDown, mainForm);
                            break;
                        case 5:
                            if (Convert.ToInt16(register.Value) <= 0)
                            {
                                parameterForm1[4].Value = register.Value;
                                mainForm.rollIntLimit1NumericUpDown.Value = 1;
                            }
                            else
                            {
                                parameterForm1[4].Value = register.Value;
                                mainForm.rollIntLimit1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            feldUpdaten(mainForm.rollIntLimit1NumericUpDown, mainForm);
                            break;
                        case 6:
                            parameterForm1[5].Value = register.Value;
                            mainForm.nickProp1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickProp1NumericUpDown, mainForm);
                            break;
                        case 7:
                            parameterForm1[6].Value = register.Value;
                            mainForm.nickInt1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickInt1NumericUpDown, mainForm);
                            break;
                        case 8:
                            parameterForm1[7].Value = register.Value;
                            mainForm.nickDiff1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickDiff1NumericUpDown, mainForm);
                            break;
                        case 9:
                            if (Convert.ToInt16(register.Value) <= 0 && Properties.Settings.Default.version == "3.12" ||
                                Convert.ToInt16(register.Value) <= 0 && Properties.Settings.Default.version == "3.13")
                            {
                                mainForm.nickLimit1NumericUpDown.Value = 1;
                                mainForm.baro1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            else
                            {
                                mainForm.nickLimit1NumericUpDown.Value = Convert.ToInt16(register.Value);
                                mainForm.baro1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            parameterForm1[8].Value = register.Value;
                            feldUpdaten(mainForm.nickLimit1NumericUpDown, mainForm);
                            feldUpdaten(mainForm.baro1NumericUpDown, mainForm);
                            break;
                        case 10:
                            if (Convert.ToInt16(register.Value) <= 0)
                            {
                                parameterForm1[9].Value = register.Value;
                                mainForm.nickIntLimit1NumericUpDown.Value = 1;
                            }
                            else
                            {
                                parameterForm1[9].Value = register.Value;
                                mainForm.nickIntLimit1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            feldUpdaten(mainForm.nickIntLimit1NumericUpDown, mainForm);
                            break;
                        case 11:
                            parameterForm1[10].Value = register.Value;
                            mainForm.gierProp1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierProp1NumericUpDown, mainForm);
                            break;
                        case 12:
                            parameterForm1[11].Value = register.Value;
                            mainForm.gierInt1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierInt1NumericUpDown, mainForm);
                            break;
                        case 13:
                            parameterForm1[12].Value = register.Value;
                            mainForm.gierDiff1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierDiff1NumericUpDown, mainForm);
                            break;
                        case 14:
                            if (Convert.ToInt16(register.Value) <= 0)
                            {
                                parameterForm1[13].Value = register.Value;
                                mainForm.gierLimit1NumericUpDown.Value = 1;
                            }
                            else
                            {
                                parameterForm1[13].Value = register.Value;
                                mainForm.gierLimit1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            feldUpdaten(mainForm.gierLimit1NumericUpDown, mainForm);
                            break;
                        case 15:
                            if (Convert.ToInt16(register.Value) <= 0)
                            {
                                parameterForm1[14].Value = register.Value;
                                mainForm.gierIntLimit1NumericUpDown.Value = 1;
                            }
                            else
                            {
                                parameterForm1[14].Value = register.Value;
                                mainForm.gierIntLimit1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            feldUpdaten(mainForm.gierIntLimit1NumericUpDown, mainForm);
                            break;
                        case 16:
                            int temp = Convert.ToInt16(register.Value);
                            if (temp == -1)
                            {
                                temp = 0;
                            }
                            if ((temp & 1) == 1)
                            {
                                mainForm.bit01CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit01CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit01CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit01CheckBox, mainForm);
                            }
                            if ((temp & 2) == 2)
                            {
                                mainForm.bit11CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit11CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit11CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit11CheckBox, mainForm);
                            }
                            if ((temp & 4) == 4)
                            {
                                mainForm.bit21CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit21CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit21CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit21CheckBox, mainForm);
                            }
                            if ((temp & 8) == 8)
                            {
                                mainForm.bit31CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit31CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit31CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit31CheckBox, mainForm);
                            }
                            if ((temp & 16) == 16)
                            {
                                mainForm.bit41CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit41CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit41CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit41CheckBox, mainForm);
                            }
                            //parameterForm1[15].Value = temp.ToString();
                            break;
                        case 17:
                            parameterForm1[16].Value = register.Value;
                            mainForm.impulseAusgabe1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.impulseAusgabe1NumericUpDown, mainForm);
                            break;
                        case 18:
                            if (Convert.ToInt16(register.Value) < 0)
                            {
                                parameterForm1[17].Value = register.Value;
                                mainForm.akku1NumericUpDown.Value = 0;
                            }
                            else
                            {
                                parameterForm1[17].Value = register.Value;
                                mainForm.akku1NumericUpDown.Value = Convert.ToDecimal(Math.Round(Convert.ToDouble(register.Value), 1, MidpointRounding.AwayFromZero));
                            }
                            feldUpdaten(mainForm.akku1NumericUpDown, mainForm);
                            break;
                        case 19:
                            parameterForm1[18].Value = register.Value;
                            mainForm.rollMa1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.rollMa1NumericUpDown, mainForm);
                            mainForm.kameraRoll1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.kameraRoll1NumericUpDown, mainForm);
                            break;
                        case 20:
                            parameterForm1[19].Value = register.Value;
                            mainForm.nickMa1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickMa1NumericUpDown, mainForm);
                            break;
                        case 21:
                            parameterForm1[20].Value = register.Value;
                            mainForm.gierMa1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierMa1NumericUpDown, mainForm);
                            break;
                        case 22:
                            parameterForm1[21].Value = register.Value;
                            mainForm.gierA1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierA1NumericUpDown, mainForm);
                            break;
                        case 23:
                            if (Convert.ToInt16(register.Value) < 5)
                            {
                                parameterForm1[22].Value = register.Value;
                                mainForm.leerlaufgas1NumericUpDown.Value = 5;
                            }
                            else
                            {
                                parameterForm1[22].Value = register.Value;
                                mainForm.leerlaufgas1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            feldUpdaten(mainForm.leerlaufgas1NumericUpDown, mainForm);
                            break;
                        case 24:
                            parameterForm1[23].Value = register.Value;
                            mainForm.rollA1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.rollA1NumericUpDown, mainForm);
                            break;
                        case 25:
                            parameterForm1[24].Value = register.Value;
                            mainForm.nickA1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickA1NumericUpDown, mainForm);
                            break;
                        case 26:
                            parameterForm1[25].Value = register.Value;
                            mainForm.kamera1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.kamera1NumericUpDown, mainForm);
                            break;
                        case 27:
                            parameterForm1[26].Value = register.Value;
                            mainForm.compass1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.compass1NumericUpDown, mainForm);
                            break;
                        case 28:
                            parameterForm1[27].Value = register.Value;
                            mainForm.baroInt1NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.baroInt1NumericUpDown, mainForm);
                            break;
                    }
                }
                else
                {
                    switch (Convert.ToInt16(register.Command.Substring(9)))
                    {
                        case 1:
                            mainForm.rollProp2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            parameterForm2[0].Value = register.Value;
                            feldUpdaten(mainForm.rollProp2NumericUpDown, mainForm);
                            break;
                        case 2:
                            parameterForm2[1].Value = register.Value;
                            mainForm.rollInt2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.rollInt2NumericUpDown, mainForm);
                            break;
                        case 3:
                            parameterForm2[2].Value = register.Value;
                            mainForm.rollDiff2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.rollDiff2NumericUpDown, mainForm);
                            break;
                        case 4:
                            if (Convert.ToInt16(register.Value) <= 0 && Properties.Settings.Default.version == "3.12" ||
                                Convert.ToInt16(register.Value) <= 0 && Properties.Settings.Default.version == "3.13" )
                            {
                                mainForm.rollLimit2NumericUpDown.Value = 1;
                                mainForm.baroTemp2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            else
                            {
                                mainForm.rollLimit2NumericUpDown.Value = Convert.ToInt16(register.Value);
                                mainForm.baroTemp2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            parameterForm2[3].Value = register.Value;
                            feldUpdaten(mainForm.baroTemp2NumericUpDown, mainForm);
                            feldUpdaten(mainForm.rollLimit2NumericUpDown, mainForm);
                            break;
                        case 5:
                            if (Convert.ToInt16(register.Value) <= 0)
                            {
                                parameterForm2[4].Value = register.Value;
                                mainForm.rollIntLimit2NumericUpDown.Value = 1;
                            }
                            else
                            {
                                parameterForm2[4].Value = register.Value;
                                mainForm.rollIntLimit2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            feldUpdaten(mainForm.rollIntLimit2NumericUpDown, mainForm);
                            break;
                        case 6:
                            parameterForm2[5].Value = register.Value;
                            mainForm.nickProp2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickProp2NumericUpDown, mainForm);
                            break;
                        case 7:
                            parameterForm2[6].Value = register.Value;
                            mainForm.nickInt2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickInt2NumericUpDown, mainForm);
                            break;
                        case 8:
                            parameterForm2[7].Value = register.Value;
                            mainForm.nickDiff2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickDiff2NumericUpDown, mainForm);
                            break;
                        case 9:
                            if (Convert.ToInt16(register.Value) <= 0 && Properties.Settings.Default.version == "3.12" ||
                                Convert.ToInt16(register.Value) <= 0 && Properties.Settings.Default.version == "3.13" )
                            {
                                mainForm.nickLimit2NumericUpDown.Value = 1;
                                mainForm.baro2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            else
                            {
                                mainForm.nickLimit2NumericUpDown.Value = Convert.ToInt16(register.Value);
                                mainForm.baro2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            parameterForm2[8].Value = register.Value;
                            feldUpdaten(mainForm.baro2NumericUpDown, mainForm);
                            feldUpdaten(mainForm.nickLimit2NumericUpDown, mainForm);
                            break;
                        case 10:
                            if (Convert.ToInt16(register.Value) <= 0)
                            {
                                parameterForm2[9].Value = register.Value;
                                mainForm.nickIntLimit2NumericUpDown.Value = 1;
                            }
                            else
                            {
                                parameterForm2[9].Value = register.Value;
                                mainForm.nickIntLimit2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            feldUpdaten(mainForm.nickIntLimit2NumericUpDown, mainForm);
                            break;
                        case 11:
                            parameterForm2[10].Value = register.Value;
                            mainForm.gierProp2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierProp2NumericUpDown, mainForm);
                            break;
                        case 12:
                            parameterForm2[11].Value = register.Value;
                            mainForm.gierInt2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierInt2NumericUpDown, mainForm);
                            break;
                        case 13:
                            parameterForm2[12].Value = register.Value;
                            mainForm.gierDiff2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierDiff2NumericUpDown, mainForm);
                            break;
                        case 14:
                            if (Convert.ToInt16(register.Value) <= 0)
                            {
                                mainForm.gierLimit2NumericUpDown.Value = 1;
                                parameterForm2[13].Value = register.Value;
                            }
                            else
                            {
                                mainForm.gierLimit2NumericUpDown.Value = Convert.ToInt16(register.Value);
                                parameterForm2[13].Value = register.Value;
                            }
                            feldUpdaten(mainForm.gierLimit2NumericUpDown, mainForm);
                            break;
                        case 15:
                            if (Convert.ToInt16(register.Value) <= 0)
                            {
                                parameterForm2[14].Value = register.Value;
                                mainForm.gierIntLimit2NumericUpDown.Value = 1;
                            }
                            else
                            {
                                parameterForm2[14].Value = register.Value;
                                mainForm.gierIntLimit2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            feldUpdaten(mainForm.gierIntLimit2NumericUpDown, mainForm);
                            break;
                        case 16:
                            int temp = Convert.ToInt16(register.Value);
                            if (temp == -1)
                            {
                                temp = 0;
                            }
                            if ((temp & 1) == 1)
                            {
                                mainForm.bit02CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit02CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit02CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit02CheckBox, mainForm);
                            }
                            if ((temp & 2) == 2)
                            {
                                mainForm.bit12CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit12CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit12CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit12CheckBox, mainForm);
                            }
                            if ((temp & 4) == 4)
                            {
                                mainForm.bit22CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit22CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit22CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit22CheckBox, mainForm);
                            }
                            if ((temp & 8) == 8)
                            {
                                mainForm.bit32CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit32CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit32CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit32CheckBox, mainForm);
                            }
                            if ((temp & 16) == 16)
                            {
                                mainForm.bit42CheckBox.Checked = true;
                                feldUpdaten(mainForm.bit42CheckBox, mainForm);
                            }
                            else
                            {
                                mainForm.bit42CheckBox.Checked = false;
                                feldUpdaten(mainForm.bit42CheckBox, mainForm);
                            }
                            //parameterForm2[15].Value = temp.ToString();
                            break;
                        case 17:
                            parameterForm2[16].Value = register.Value;
                            mainForm.impulseAusgabe2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.impulseAusgabe2NumericUpDown, mainForm);
                            break;
                        case 18:
                            if (Convert.ToInt16(register.Value) < 0)
                            {
                                parameterForm2[17].Value = register.Value;
                                mainForm.akku2NumericUpDown.Value = 0;
                            }
                            else
                            {
                                parameterForm2[17].Value = register.Value;
                                mainForm.akku2NumericUpDown.Value = Convert.ToDecimal(Math.Round(Convert.ToDouble(register.Value), 1, MidpointRounding.AwayFromZero));
                            }
                            feldUpdaten(mainForm.akku2NumericUpDown, mainForm);
                            break;
                        case 19:
                            parameterForm2[18].Value = register.Value;
                            mainForm.rollMa2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.rollMa2NumericUpDown, mainForm);
                            mainForm.kameraRoll2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.kameraRoll2NumericUpDown, mainForm);
                            break;
                        case 20:
                            parameterForm2[19].Value = register.Value;
                            mainForm.nickMa2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickMa2NumericUpDown, mainForm);
                            break;
                        case 21:
                            parameterForm2[20].Value = register.Value;
                            mainForm.gierMa2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierMa2NumericUpDown, mainForm);
                            break;
                        case 22:
                            parameterForm2[21].Value = register.Value;
                            mainForm.gierA2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.gierA2NumericUpDown, mainForm);
                            break;
                        case 23:
                            if (Convert.ToInt16(register.Value) < 5)
                            {
                                parameterForm2[22].Value = register.Value;
                                mainForm.leerlaufgas2NumericUpDown.Value = 5;
                            }
                            else
                            {
                                parameterForm2[22].Value = register.Value;
                                mainForm.leerlaufgas2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            }
                            feldUpdaten(mainForm.leerlaufgas2NumericUpDown, mainForm);
                            break;
                        case 24:
                            parameterForm2[23].Value = register.Value;
                            mainForm.rollA2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.rollA2NumericUpDown, mainForm);
                            break;
                        case 25:
                            parameterForm2[24].Value = register.Value;
                            mainForm.nickA2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.nickA2NumericUpDown, mainForm);
                            break;
                        case 26:
                            parameterForm2[25].Value = register.Value;
                            mainForm.kamera2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.kamera2NumericUpDown, mainForm);
                            break;
                        case 27:
                            parameterForm2[26].Value = register.Value;
                            mainForm.compass2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.compass2NumericUpDown, mainForm);
                            break;
                        case 28:
                            parameterForm2[27].Value = register.Value;
                            mainForm.baroInt2NumericUpDown.Value = Convert.ToInt16(register.Value);
                            feldUpdaten(mainForm.baroInt2NumericUpDown, mainForm);
                            break;
                    }
                }
            }
        }
예제 #27
0
 /// <summary>
 /// funktion um die Neutralwerte aus pic zu lesen
 /// </summary>
 /// <param name="mainForm"></param>
 public void neutral(FormMain mainForm)
 {
     ArrayList ret = askPic(mainForm, "N");
     if (ret.Count > 0)
     {
         Log.write(mainForm, "N: " + ret[1].ToString(), 0);
         Neutral neutralWindow = new Neutral(mainForm);
         neutralWindow.neutralLabel.Text = ret[1].ToString();
         neutralWindow.ShowDialog();
     }
 }
예제 #28
0
 public void copySet2ToSet1(FormMain mainForm)
 {
     //for (int i = 0; i < parameterForm1.Length; i++)
     //{
     //    parameterForm2[i].Chapter   = parameterForm1[i].Chapter;
     //    parameterForm2[i].Value     = parameterForm1[i].Value;
     //    parameterForm2[i].Command   = parameterForm1[i].Command;
     //    parameterForm2[i].Comment   = parameterForm1[i].Comment;
     //}
     mainForm.tabControlParameter.SelectedIndex = 0;
     updateForm(parameterForm2, mainForm);
 }
예제 #29
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;
        }
예제 #30
0
        /// <summary>
        /// fabe bei allen Feldern setzen
        /// </summary>
        /// <param name="mainForm"></param>
        /// <param name="farbe"></param>
        public void farbenSetzen(FormMain mainForm, Farbe farbe)
        {
            Color farbeElement = Color.Black;
            switch (farbe)
            {
                case Farbe.red:
                   farbeElement = Color.Red;
                    break;
                case Farbe.green:
                    farbeElement = Color.Green;
                    break;
                case Farbe.orange:
                    farbeElement = Color.Orange;
                    break;
                case Farbe.black:
                    farbeElement = Color.Black;
                    break;
            }

            //TODO: hier Parameter hinzufügen wenn neu
            if (mainForm.tabControlParameter.SelectedIndex == 0)
            {
                mainForm.rollProp1NumericUpDown.ForeColor = farbeElement;
                mainForm.rollInt1NumericUpDown.ForeColor = farbeElement;
                mainForm.rollDiff1NumericUpDown.ForeColor = farbeElement;
                mainForm.rollLimit1NumericUpDown.ForeColor = farbeElement;
                mainForm.rollIntLimit1NumericUpDown.ForeColor = farbeElement;
                mainForm.nickProp1NumericUpDown.ForeColor = farbeElement;
                mainForm.nickInt1NumericUpDown.ForeColor = farbeElement;
                mainForm.nickDiff1NumericUpDown.ForeColor = farbeElement;
                mainForm.nickLimit1NumericUpDown.ForeColor = farbeElement;
                mainForm.nickIntLimit1NumericUpDown.ForeColor = farbeElement;
                mainForm.gierProp1NumericUpDown.ForeColor = farbeElement;
                mainForm.gierInt1NumericUpDown.ForeColor = farbeElement;
                mainForm.gierDiff1NumericUpDown.ForeColor = farbeElement;
                mainForm.gierLimit1NumericUpDown.ForeColor = farbeElement;
                mainForm.gierIntLimit1NumericUpDown.ForeColor = farbeElement;
                mainForm.bit01CheckBox.ForeColor = farbeElement;
                mainForm.bit11CheckBox.ForeColor = farbeElement;
                mainForm.bit21CheckBox.ForeColor = farbeElement;
                mainForm.bit31CheckBox.ForeColor = farbeElement;
                mainForm.bit41CheckBox.ForeColor = farbeElement;
                mainForm.impulseAusgabe1NumericUpDown.ForeColor = farbeElement;
                mainForm.akku1NumericUpDown.ForeColor = farbeElement;
                mainForm.rollMa1NumericUpDown.ForeColor = farbeElement;
                mainForm.nickMa1NumericUpDown.ForeColor = farbeElement;
                mainForm.gierMa1NumericUpDown.ForeColor = farbeElement;
                mainForm.gierA1NumericUpDown.ForeColor = farbeElement;
                mainForm.leerlaufgas1NumericUpDown.ForeColor = farbeElement;
                mainForm.rollA1NumericUpDown.ForeColor = farbeElement;
                mainForm.nickA1NumericUpDown.ForeColor = farbeElement;
                mainForm.kamera1NumericUpDown.ForeColor = farbeElement;
                mainForm.compass1NumericUpDown.ForeColor = farbeElement;
                mainForm.baroInt1NumericUpDown.ForeColor = farbeElement;
            }
            else
            {
                mainForm.rollProp2NumericUpDown.ForeColor = farbeElement;
                mainForm.rollInt2NumericUpDown.ForeColor = farbeElement;
                mainForm.rollDiff2NumericUpDown.ForeColor = farbeElement;
                mainForm.rollLimit2NumericUpDown.ForeColor = farbeElement;
                mainForm.rollIntLimit2NumericUpDown.ForeColor = farbeElement;
                mainForm.nickProp2NumericUpDown.ForeColor = farbeElement;
                mainForm.nickInt2NumericUpDown.ForeColor = farbeElement;
                mainForm.nickDiff2NumericUpDown.ForeColor = farbeElement;
                mainForm.nickLimit2NumericUpDown.ForeColor = farbeElement;
                mainForm.nickIntLimit2NumericUpDown.ForeColor = farbeElement;
                mainForm.gierProp2NumericUpDown.ForeColor = farbeElement;
                mainForm.gierInt2NumericUpDown.ForeColor = farbeElement;
                mainForm.gierDiff2NumericUpDown.ForeColor = farbeElement;
                mainForm.gierLimit2NumericUpDown.ForeColor = farbeElement;
                mainForm.gierIntLimit2NumericUpDown.ForeColor = farbeElement;
                mainForm.bit02CheckBox.ForeColor = farbeElement;
                mainForm.bit12CheckBox.ForeColor = farbeElement;
                mainForm.bit22CheckBox.ForeColor = farbeElement;
                mainForm.bit32CheckBox.ForeColor = farbeElement;
                mainForm.bit42CheckBox.ForeColor = farbeElement;
                mainForm.impulseAusgabe2NumericUpDown.ForeColor = farbeElement;
                mainForm.akku2NumericUpDown.ForeColor = farbeElement;
                mainForm.rollMa2NumericUpDown.ForeColor = farbeElement;
                mainForm.nickMa2NumericUpDown.ForeColor = farbeElement;
                mainForm.gierMa2NumericUpDown.ForeColor = farbeElement;
                mainForm.gierA2NumericUpDown.ForeColor = farbeElement;
                mainForm.leerlaufgas2NumericUpDown.ForeColor = farbeElement;
                mainForm.rollA2NumericUpDown.ForeColor = farbeElement;
                mainForm.nickA2NumericUpDown.ForeColor = farbeElement;
                mainForm.kamera2NumericUpDown.ForeColor = farbeElement;
                mainForm.compass2NumericUpDown.ForeColor = farbeElement;
                mainForm.baroInt2NumericUpDown.ForeColor = farbeElement;
            }
        }
예제 #31
0
 /// <summary>
 /// Receiver Werte lesen
 /// </summary>
 /// <param name="mainForm"></param>
 public void receiver(FormMain mainForm)
 {
     //ArrayList ret = askPic(mainForm, "R");
     //Log.write(mainForm, "R: " + ret[1].ToString(), 0);
     closeConnection(mainForm);
     Receiver receiverWindow = new Receiver(mainForm);
     // dialog anzeigen
     receiverWindow.ShowDialog();
 }
예제 #32
0
        /// <summary>
        /// ein einzelnes Feld updaten
        /// </summary>
        /// <param name="objekt"></param>
        /// <param name="mainForm"></param>
        public void feldUpdaten(Object objekt, FormMain mainForm)
        {
            // wenn es sich um ein Parameter feld handelt
            if (objekt.GetType().Name == "NumericUpDown")
            {
                NumericUpDown feld = (NumericUpDown)objekt;
                // je nach Parameter TAB
                if (mainForm.tabControlParameter.SelectedIndex == 0)
                {
                    //feld nur setzen wenn Integral Limit OK ist - sonst return ohne update
                    if (feld.Tag.ToString() == "5" || feld.Tag.ToString() == "10" || feld.Tag.ToString() == "15")
                    {
                        //integral Limit errechnen
                        int tempValue = Convert.ToInt32(parameterForm1[Convert.ToInt16(feld.Tag) - 4].Value);
                        if (tempValue < 0)
                            tempValue = tempValue * -1;
                        int limitTemp = (int)Math.Floor(127.0 / Convert.ToDouble(tempValue));

                        if (limitTemp < Convert.ToInt32(feld.Value))
                        {
                            // *****TONY ADDED THIS LINE
                            if(limitTemp >= feld.Minimum && limitTemp <= feld.Maximum)
                            {
                                feld.Value = Convert.ToDecimal(parameterForm1[Convert.ToInt16(feld.Tag) - 1].Value);
                            }
                            return;
                        }

                    }

                    parameterForm1[Convert.ToInt16(feld.Tag)-1].Value = feld.Value.ToString();

                    //IntegralLimit berechnen wenn Integral geändert wurde
                    if (feld.Tag.ToString() == "2" || feld.Tag.ToString() == "7" || feld.Tag.ToString() == "12")
                    {
                        //integral Limit errechnen
                        int tempValue = Convert.ToInt32(parameterForm1[Convert.ToInt16(feld.Tag) - 1].Value);
                        if (tempValue < 0)
                            tempValue = tempValue * -1;
                        int limitTemp = (int) Math.Floor(127.0 / Convert.ToDouble(tempValue));

                        if (limitTemp > 0 && limitTemp < Convert.ToInt32(parameterForm1[Convert.ToInt16(feld.Tag) + 2].Value))
                        {
                            switch (feld.Tag.ToString())
                            {
                                case "2":
                                    mainForm.rollIntLimit1NumericUpDown.Value = limitTemp;
                                    break;
                                case "7":
                                    mainForm.nickIntLimit1NumericUpDown.Value = limitTemp;
                                    break;
                                case "12":
                                    mainForm.gierIntLimit1NumericUpDown.Value = limitTemp;
                                    break;
                            }
                        }
                    }

                    // wenn es gleich dem PIC wert ist -> wieder grün
                    //Hier die Idee der Farbdarstellung:
                    //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                    //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                    //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                    //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                    // wenn pic noch nicht gelesen wurde ist Chapter leer
                    if (parameterPic1[Convert.ToInt16(feld.Tag) - 1].Chapter == "ChannelSet")
                    {
                        // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                        if (parameterForm1[Convert.ToInt16(feld.Tag) - 1].Value ==
                            parameterPic1[Convert.ToInt16(feld.Tag) - 1].Value)
                        {
                            feld.ForeColor = Color.Green;
                        }
                        // wenn wert nicht mit PIC ident
                        else
                        {
                            // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                            if (mainForm.writeUpdate == true)
                            {
                                feld.ForeColor = Color.Red;
                            }
                            else
                            {
                                feld.ForeColor = Color.Orange;
                            }
                        }
                    }
                    else
                    // dann wird feld auf black gesetzt
                    {
                        feld.ForeColor = Color.Black;
                    }
                }
                else
                {
                    //feld nur setzen wenn Integral Limit OK ist - sonst return ohne update
                    if (feld.Tag.ToString() == "5" || feld.Tag.ToString() == "10" || feld.Tag.ToString() == "15")
                    {
                        //integral Limit errechnen
                        int tempValue = Convert.ToInt32(parameterForm2[Convert.ToInt16(feld.Tag) - 4].Value);
                        if (tempValue < 0)
                            tempValue = tempValue * -1;
                        int limitTemp = (int)Math.Floor(127.0 / Convert.ToDouble(tempValue));
                        if (limitTemp < Convert.ToInt32(feld.Value))
                        {
                            feld.Value = Convert.ToDecimal(parameterForm2[Convert.ToInt16(feld.Tag) - 1].Value);
                            return;
                        }

                    }

                    parameterForm2[Convert.ToInt16(feld.Tag)-1].Value = feld.Value.ToString();

                    //IntegralLimit berechnen wenn Integral geändert wurde
                    if (feld.Tag.ToString() == "2" || feld.Tag.ToString() == "7" || feld.Tag.ToString() == "12")
                    {
                        //integral Limit errechnen

                        int tempValue = Convert.ToInt32(parameterForm2[Convert.ToInt16(feld.Tag) - 1].Value);
                        if (tempValue < 0)
                            tempValue = tempValue * -1;
                        int limitTemp = (int)Math.Floor(127.0 / Convert.ToDouble(tempValue));

                        if (limitTemp > 0 && limitTemp < Convert.ToInt32(parameterForm2[Convert.ToInt16(feld.Tag) + 2].Value))
                        {
                            switch (feld.Tag.ToString())
                            {
                                case "2":
                                    mainForm.rollIntLimit2NumericUpDown.Value = limitTemp;
                                    break;
                                case "7":
                                    mainForm.nickIntLimit2NumericUpDown.Value = limitTemp;
                                    break;
                                case "12":
                                    mainForm.gierIntLimit2NumericUpDown.Value = limitTemp;
                                    break;
                            }
                        }
                    }

                    // wenn es gleich dem PIC wert ist -> wieder grün
                    //Hier die Idee der Farbdarstellung:
                    //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                    //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                    //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                    //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                    // wenn pic noch nicht gelesen wurde ist Chapter leer
                    if (parameterPic2[Convert.ToInt16(feld.Tag) - 1].Chapter == "ChannelSet")
                    {
                        // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                        if (parameterForm2[Convert.ToInt16(feld.Tag) - 1].Value ==
                            parameterPic2[Convert.ToInt16(feld.Tag) - 1].Value)
                        {
                            feld.ForeColor = Color.Green;
                        }
                        // wenn wert nicht mit PIC ident
                        else
                        {
                            // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                            if (mainForm.writeUpdate == true)
                            {
                                feld.ForeColor = Color.Red;
                            }
                            else
                            {
                                feld.ForeColor = Color.Orange;
                            }
                        }
                    }
                    else
                    // dann wird feld auf black gesetzt
                    {
                        feld.ForeColor = Color.Black;
                    }
                }
            }
            // wenn es ein BIT Wert ist muss der Parameter Wert errechnet werden
            else {
                CheckBox feld = (CheckBox)objekt;

                // welches BIT ist betroffen?
                switch (feld.Name)
                {
                    case "bit01CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) | 1).ToString();
                            }
                            else
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) & 30).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic1[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm1[15].Value) & 1) ==
                                (Convert.ToInt16(parameterPic1[15].Value) & 1))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }

                        break;
                    case "bit11CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) | 2).ToString();
                            }
                            else
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) & 29).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic1[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm1[15].Value) & 2) ==
                                (Convert.ToInt16(parameterPic1[15].Value) & 2))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }
                        break;
                    case "bit21CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) | 4).ToString();
                            }
                            else
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) & 27).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic1[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm1[15].Value) & 4) ==
                                (Convert.ToInt16(parameterPic1[15].Value) & 4))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }
                        break;
                    case "bit31CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) | 8).ToString();
                            }
                            else
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) & 23).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic1[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm1[15].Value) & 8) ==
                                (Convert.ToInt16(parameterPic1[15].Value) & 8))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }
                        break;
                    case "bit41CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) | 16).ToString();
                            }
                            else
                            {
                                parameterForm1[15].Value = (Convert.ToInt16(parameterForm1[15].Value) & 15).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic1[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm1[15].Value) & 16) ==
                                (Convert.ToInt16(parameterPic1[15].Value) & 16))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }
                        break;
                    case "bit02CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) | 1).ToString();
                            }
                            else
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) & 30).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic2[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm2[15].Value) & 1) ==
                                (Convert.ToInt16(parameterPic2[15].Value) & 1))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }
                        break;
                    case "bit12CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) | 2).ToString();
                            }
                            else
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) & 29).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic2[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm2[15].Value) & 2) ==
                                (Convert.ToInt16(parameterPic2[15].Value) & 2))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }
                        break;
                    case "bit22CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) | 4).ToString();
                            }
                            else
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) & 27).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic2[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm2[15].Value) & 4) ==
                                (Convert.ToInt16(parameterPic2[15].Value) & 4))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }
                        break;
                    case "bit32CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) | 8).ToString();
                            }
                            else
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) & 23).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic2[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm2[15].Value) & 8) ==
                                (Convert.ToInt16(parameterPic2[15].Value) & 8))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }
                        break;
                    case "bit42CheckBox":
                        if (mainForm.writeUpdate == false)
                        {
                            if (feld.Checked == true)
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) | 16).ToString();
                            }
                            else
                            {
                                parameterForm2[15].Value = (Convert.ToInt16(parameterForm2[15].Value) & 15).ToString();
                            }
                        }

                        // wenn es gleich dem PIC wert ist -> wieder grün
                        //Hier die Idee der Farbdarstellung:
                        //schwarz: wenn noch keine Daten gelesen wurden (dh nicht so wie jetzt wo die Werte ja rot werden und beim Initialwert grün)
                        //orange: wenn Pic schon gelesen wurde und die Werte ungeleich den Werten des PICs sind
                        //grün: wenn Pic gelesen wurde und die Werte gleich dem PIC sind
                        //rot: wenn Pic geschrieben wurde und die Werte nach nochmaligem lesen nicht gleich sind

                        // wenn pic noch nicht gelesen wurde ist Chapter leer
                        if (parameterPic2[15].Chapter == "ChannelSet")
                        {
                            // wenn pic schon gelesen wurde ist ein Vergleich notwendig
                            if ((Convert.ToInt16(parameterForm2[15].Value) & 16) ==
                                (Convert.ToInt16(parameterPic2[15].Value) & 16))
                            {
                                feld.ForeColor = Color.Green;
                            }
                            // wenn wert nicht mit PIC ident
                            else
                            {
                                // wird das Feld beim schreiben upgedatet dann ist das Feld bei fehler rot
                                if (mainForm.writeUpdate == true)
                                {
                                    feld.ForeColor = Color.Red;
                                }
                                else
                                {
                                    feld.ForeColor = Color.Orange;
                                }
                            }
                        }
                        else
                        // dann wird feld auf black gesetzt
                        {
                            feld.ForeColor = Color.Black;
                        }
                        break;
                }

            }
        }
예제 #33
0
 /// <summary>
 /// Starten der Testabfragen
 /// </summary>
 /// <param name="mainForm"></param>
 public void testSoftware(FormMain mainForm)
 {
     //sp.Close();   // übergabe der Connection klasse
     TestSoftware testSoftware = new TestSoftware(mainForm, this);
     if (testSoftware.errorFlag == false)
     {
         testSoftware.ShowDialog();
     }
 }
예제 #34
0
 /// <summary>
 /// Laden einer Konfigurationsdatei
 /// </summary>
 /// <param name="pfad"></param>
 /// <param name="mainForm"></param>
 public void laden(string pfad, FormMain mainForm)
 {
     // try / catch wenn fehler beim öffnen oder interpretieren der datei
     try
     {
         IniReader iniReader = new IniReader(pfad);
         // log schreiben bei debug
         Log.write(mainForm, "Load Parameterset: " + pfad, 1);
         ParameterSetsStruc[] registers = iniReader.GetChapter("ChannelSet");
         // alle Felder auf rot setzen
         updateForm(registers, mainForm);
     }
     catch (Exception e)
     {
         MessageBox.Show(e.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
         Log.write(mainForm, "Wrong Parameter File!", 0);
     }
 }
예제 #35
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;
            }
        }
예제 #36
0
 /// <summary>
 /// allgemeine Funktion die von jedem Steuerelement aufgerufen werden kann
 /// </summary>
 /// <param name="mainForm"></param>
 public static void info(FormMain mainForm)
 {
     // RollAchse Hilfe
     // Setting 1
         if (mainForm.rollProp1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
         if (mainForm.rollDiff1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
         if (mainForm.rollInt1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
         if (mainForm.rollLimit1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
         if (mainForm.rollIntLimit1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
         if (mainForm.rollMa1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
         if (mainForm.rollA1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
         //Setting 2
         if (mainForm.rollProp2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
         if (mainForm.rollDiff2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
         if (mainForm.rollInt2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
         if (mainForm.rollLimit2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
         if (mainForm.rollIntLimit2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
         if (mainForm.rollMa2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
         if (mainForm.rollA2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
     // NickAchse Hilfe
         // Setting 1
         if (mainForm.nickProp1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
         if (mainForm.nickDiff1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
         if (mainForm.nickInt1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
         if (mainForm.nickLimit1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
         if (mainForm.nickIntLimit1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
         if (mainForm.nickMa1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
         if (mainForm.nickA1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
         // Setting 2
         if (mainForm.nickProp2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
         if (mainForm.nickDiff2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
         if (mainForm.nickInt2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
         if (mainForm.nickLimit2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
         if (mainForm.nickIntLimit2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
         if (mainForm.nickMa2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
         if (mainForm.nickA2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
     // GierAchse Hilfe
         // Setting 1
         if (mainForm.gierProp1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
          if (mainForm.gierDiff1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
         if (mainForm.gierInt1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
         if (mainForm.gierLimit1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
         if (mainForm.gierIntLimit1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
         if (mainForm.gierMa1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
         if (mainForm.gierA1NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
         // Setting 2
         if (mainForm.gierProp2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Proportional");
         if (mainForm.gierDiff2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Differenzial");
         if (mainForm.gierInt2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Integral");
         if (mainForm.gierLimit2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Limiter");
         if (mainForm.gierIntLimit2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("IntegralLimiter");
         if (mainForm.gierMa2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("EbenenAusgleich");
         if (mainForm.gierA2NumericUpDown.Focused)
             mainForm.infoTextBox.Text = mainForm.help.GetString("Neutral");
     // Sonstiges
     // Setting 1
     if (mainForm.bit01CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("XModus");
     if (mainForm.bit11CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("GasKanal");
     if (mainForm.bit21CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Integrierzustand");
     if (mainForm.bit31CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("HalbRollNick");
     if (mainForm.bit41CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("EmpfaengerImpulse");
     if (mainForm.impulseAusgabe1NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Impuls");
     if (mainForm.leerlaufgas1NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Leerlaufgas");
     if (mainForm.kamera1NumericUpDown.Focused || mainForm.kameraRoll1NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Kameraausgleich");
     if (mainForm.compass1NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Kompass");
     if (mainForm.akku1NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Unterspannung");
     if (mainForm.baroTemp1NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("baroTemp");
     if (mainForm.baro1NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("baro");
     if (mainForm.baroInt1NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("baroDif");
     // Setting 2
     if (mainForm.bit02CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("XModus");
     if (mainForm.bit12CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("GasKanal");
     if (mainForm.bit22CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Integrierzustand");
     if (mainForm.bit32CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("HalbRollNick");
     if (mainForm.bit42CheckBox.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("EmpfaengerImpulse");
     if (mainForm.impulseAusgabe2NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Impuls");
     if (mainForm.leerlaufgas2NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Leerlaufgas");
     if (mainForm.kamera2NumericUpDown.Focused || mainForm.kameraRoll2NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Kameraausgleich");
     if (mainForm.compass2NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Kompass");
     if (mainForm.akku2NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("Unterspannung");
     if (mainForm.baro2NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("baro");
     if (mainForm.baroInt2NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("baroDif");
     if (mainForm.baroTemp2NumericUpDown.Focused)
         mainForm.infoTextBox.Text = mainForm.help.GetString("baroTemp");
 }