Beispiel #1
0
        public static List <PetriTask> LoadAvailablePetriTaskList()
        {
            //var files = Directory.GetFiles(DefaultFolder(), "*.ptf", SearchOption.AllDirectories);

            var files = Directory.EnumerateFiles(DefaultFolder()).Where(file => file.ToLower().EndsWith("ptf") || file.ToLower().EndsWith("py")).ToList();

            List <PetriTask> list = new List <PetriTask>();

            foreach (var file in files)
            {
                PetriTask task = null;
                if (file.Contains("ptf"))
                {
                    task = OpenPetriTask(file);
                }
                if (file.Contains("py"))
                {
                    task = OpenPyton(file);
                }

                if (task != null)
                {
                    list.Add(task);
                }
            }

            return(list);
        }
        private void Open()
        {
            if (!checkSave())
            {
                return;
            }

            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Supported files|*.gcode; *.ptf|gcode file (*.gcode)|*.gcode|Petri Task File (*.ptf)|*.ptf";
            if (openFileDialog.ShowDialog() != true)
            {
                return;
            }

            filePath = openFileDialog.FileName;

            if (System.IO.Path.GetExtension(filePath).Contains("ptf"))
            {
                var task = IOTools.Open <PetriTask>(filePath);
                Code     = task.Code;
                Task     = task;
                TaskPath = filePath;
            }
            else
            {
                var r = new GCodeReader(openFileDialog.FileName);
                Code = r.Code;
            }
            RowList = new ObservableCollection <IGCode>();
            renderList();
            if (PositionChanged != null)
            {
                PositionChanged(0);
            }
            viewer = new TrackViewer(Code);

            viewer.AddPoint    += CodeAddPoint;
            viewer.RemovePoint += CodeRemovePoint;

            viewer.Show();
            isChanged = true;
            UpdateObjSize();
        }
Beispiel #3
0
        private void LoadTasks()
        {
            var list = PetriIO.LoadAvailablePetriTaskList();

            var bw = new BackgroundWorker();

            bw.WorkerReportsProgress = true;
            bw.DoWork += (s, e) =>
            {
                int c = 1;
                bw.ReportProgress(0, "Working...");

                AvailableTaskList.Clear();
                foreach (var l in list)
                {
                    AvailableTaskList.Add(l);
                    bw.ReportProgress((int)(c * 1d / list.Count * 100), l.Name);
                    c++;
                }

                if (AvailableTaskList.Count > 0)
                {
                    SelectedTask = AvailableTaskList[0];
                }
                bw.ReportProgress(100, "Complete!");
                System.Threading.Thread.Sleep(1000);
            };

            bw.ProgressChanged += (s, e) =>
            {
                StateString = e.UserState.ToString();
                StateValue  = e.ProgressPercentage;
            };

            bw.RunWorkerCompleted += (s, e) =>
            {
                StateString = "";
                StateValue  = 0;

                CreateNew();
            };

            bw.RunWorkerAsync();
        }
        public void Add(PetriTask task, int columns, int rows)
        {
            if (task == null)
            {
                return;
            }
            if (columns < 0 || rows < 0)
            {
                return;
            }
            if (columns >= Grid.Columns || rows >= Grid.Columns)
            {
                return;
            }
            Tasks[columns, rows] = task;

            if (Changed != null)
            {
                Changed(true);
            }
        }
        private void Save()
        {
            SaveDlg save = Task != null ? (new SaveDlg(Task)) : (new SaveDlg());


            if (save.ShowDialog() != true)
            {
                return;
            }

            if (Task == null)
            {
                Task = new PetriTask(save.CodeName);
            }

            Task.Name        = save.CodeName;
            Task.Description = save.Description;
            Task.Code        = Code;


            if (TaskPath == null)
            {
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = "Petri Task File (*.ptf)|*.ptf";
                if (saveFileDialog.ShowDialog() != true)
                {
                    return;
                }
                TaskPath = saveFileDialog.FileName;
            }



            // var insideCode = GCodeTransforms.codeZnull(Task.Code);
            // insideCode = GCodeTransforms.codeShift(0.2,Task.Code);
            Task.Code = GCodeTransforms.codeShiftCenterTo(0, 0, Task.Code);


            IOTools.Save(TaskPath, Task);
        }
Beispiel #6
0
 private static PetriTask OpenPetriTask(string file)
 {
     return(PetriTask.Load(file));
 }
Beispiel #7
0
 public SaveDlg(PetriTask task) : this()
 {
     cName.Text        = task.Name;
     cDescription.Text = task.Description;
 }