public static async Task Run(DbCollection dbc, DefinitionCollection definitions, C32n pointStructures, Dictionary <string, DeviceCollection> deviceLists) { if (!Directory.Exists(Location)) { try { Directory.CreateDirectory(Location); } catch (Exception ex) { throw ex; } } var tasks = new List <Task>(); foreach (var db in dbc) { tasks.Add(Generate(db, definitions, pointStructures, deviceLists)); } tasks.Add(GenerateVirtual(definitions, pointStructures, deviceLists)); await Task.WhenAll(tasks.ToArray()); }
public static string Serialize(DbCollection obj) { return(JsonConvert.SerializeObject(obj, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Auto, Formatting = Formatting.Indented })); }
static bool RefreshDatablock(DbCollection datablocks) { string project = Properties.Settings.Default.projectpath; if (!File.Exists(project)) { MessageBox.Show($"Projekt {project} neexistuje", "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } Project tmp = Projects.LoadProject(project, false); var prj = tmp as Step7ProjectV5; if (prj == null) { MessageBox.Show($"Projekt {project} se nepodařilo otevřít", "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } foreach (var db in datablocks) { var dbData = prj.BlocksOfflineFolders.FirstOrDefault(x => x.StructuredFolderName.Equals(Properties.Settings.Default.projectfolder)) ?.BlockInfos?.Where(z => z.BlockType == PLCBlockType.DB) ?.Select(c => c.GetBlock() as S7DataBlock) ?.FirstOrDefault(v => v.BlockName.Equals(db.Name)); if (dbData == null) { MessageBox.Show($"Datablok {db.Name} se nepodařilo v projektu {project} najít", "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } db.CopyFrom(dbData); } return(true); }
public S7BrowseFrm(DbCollection datablocks) : this() { if (datablocks != null) { listBox4.Items.AddRange(datablocks.ToArray()); } }
private void button1_Click_1(object sender, EventArgs e) { var s = new S7BrowseFrm(SelectedDb); if (s.ShowDialog() == DialogResult.OK) { Properties.Settings.Default.projectpath = s.ProjectPath; Properties.Settings.Default.projectfolder = s.ProjectFolder; Properties.Settings.Default.Save(); label5.Text = Properties.Settings.Default.projectpath; label7.Text = Properties.Settings.Default.projectfolder; listBox2.Items.Clear(); listBox2.Items.AddRange(s.SelectedDataBlocks.ToArray()); SelectedDb = s.SelectedDataBlocks; File.WriteAllText(DbLocation, s.SelectedDataBlocks.Serialize()); symbols.Generate(); } }
private async void MainFrm_Load(object sender, EventArgs e) { checkBox1.DataBindings.Add("Checked", Properties.Settings.Default, "pointsFromProject"); checkBox2.DataBindings.Add("Checked", Properties.Settings.Default, "screensFromProject"); AppLocation = Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(access)).Location); label5.Text = Properties.Settings.Default.projectpath; label7.Text = Properties.Settings.Default.projectfolder; listBox2.Items.Clear(); LoadDb(); if (!Directory.Exists(Path.GetDirectoryName(DbLocation))) { try { Directory.CreateDirectory(Path.GetDirectoryName(DbLocation)); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } if (File.Exists(DbLocation)) { try { SelectedDb = DbCollection.Deserialize(File.ReadAllText(DbLocation)); listBox2.Items.Clear(); listBox2.Items.AddRange(SelectedDb.ToArray()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } await LoadPointDefinitions(); }