Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
 public static string Serialize(DbCollection obj)
 {
     return(JsonConvert.SerializeObject(obj, new JsonSerializerSettings()
     {
         TypeNameHandling = TypeNameHandling.Auto, Formatting = Formatting.Indented
     }));
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 public S7BrowseFrm(DbCollection datablocks)
     : this()
 {
     if (datablocks != null)
     {
         listBox4.Items.AddRange(datablocks.ToArray());
     }
 }
Ejemplo n.º 5
0
        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();
            }
        }
Ejemplo n.º 6
0
        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();
        }