Пример #1
0
        /// <summary>
        /// Diese Funktion übergibt Tabellenwerte zurück an das SPSController-Objekt und triggert die Funktion zum Schreiben des Buffers zurück auf die SPS.
        /// </summary>
        /// <param name="listx"></param>
        /// <param name="listy"></param>
        private void Write_XYList(ListView listx, ListView listy)
        {
            ListViewItem[] itemBufferX = new ListViewItem[xylist_size]; //Arrays zum Speichern der Listenelemente
            ListViewItem[] itemBufferY = new ListViewItem[xylist_size];

            listx.Items.CopyTo(itemBufferX, 0); //Kopiert Inhalt der Liste in Array
            listy.Items.CopyTo(itemBufferY, 0);

            for (int i = 0; i < xylist_size; i++) //Schreibt die Tabellenwerte in den Short-Buffer(w_XKoor, w_YKoor) des SPSController Objekts
            {
                SPSController.WriteX(short.Parse(itemBufferX[i].Text), i);
                SPSController.WriteY(short.Parse(itemBufferY[i].Text), i);
            }

            if (SPSController.WriteDBentry(productlist.SelectedIndex) == 0)
            {
                SendToConsole("Schreiben erfolgreich.\n");
                SPSController.ReadDBEntry(productlist.SelectedIndex);
            }
            else
            {
                SendToConsole("Fehler beim Schreiben!\n");
                this.consoleOutput.BackColor = Color.Red;
            }

            Init_XYLists();
        }
Пример #2
0
        /// <summary>
        /// Spielt ein gespeichertes Backup nach Auswahl wieder ein.
        /// </summary>
        public void RestoreLists(string restorefile, BackupRestoreGUI restoreWindow)
        {
            restoreWindow.Close();

            try
            {
                this.backupprogress.Visible = true;
                this.selectionBox.Enabled   = false; // Deaktiviere Bedienelemente
                this.coorBox.Enabled        = false;

                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(GetBackupDirectory() + restorefile);

                XmlNode root = xmlDoc.SelectSingleNode("/Produkte");

                XmlNodeList produkte = root.ChildNodes;

                for (int i = 0; i < produkte.Count; i++)
                {
                    XmlNode produkt = produkte[i];

                    for (int j = 0; j < xylist_size; j++)
                    {
                        short xval = Int16.Parse(produkt.SelectSingleNode("X" + j).InnerText);
                        short yval = Int16.Parse(produkt.SelectSingleNode("Y" + j).InnerText);

                        SPSController.WriteX(xval, j);
                        SPSController.WriteY(yval, j);

                        //Console.WriteLine(xval + " " + yval + "\n");
                    }
                    SPSController.WriteDBentry(i);
                    this.backupprogress.PerformStep();
                }
                SendToConsole(restorefile + " wiederhergestellt!");
            }
            catch (NullReferenceException e)
            {
                MessageBox.Show(e.Message.ToString() + "Die gelesene Anzahl Einträge stimmt nicht mit der erwarteten Menge überein!");
                SendToConsole("Fehler beim Einspielen des Backups!\n Bitte manuell auslesen ");
            }
            SPSController.ReadDBEntry(productlist.SelectedIndex);
            Init_XYLists();
            this.backupprogress.Visible = false;
            this.backupprogress.Value   = 0;
            this.selectionBox.Enabled   = true; // Deaktiviere Bedienelemente
            this.coorBox.Enabled        = true;
        }