/// <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(); }
/// <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; }