private void LoadProgram() { // Create an instance of the open file dialog box. OpenFileDialog fileDialog = new OpenFileDialog(); // Set filter options and filter index. fileDialog.Filter = "XML Files (.xml)|*.xml|All Files (*.*)|*.*"; fileDialog.FilterIndex = 1; fileDialog.Multiselect = false; // Show the dialog and get result. DialogResult result = fileDialog.ShowDialog(); if (result == DialogResult.OK) // Test result. { string path = fileDialog.FileName; MotionCommands commands = CommandsStore.Load(path); if (commands != null && commands.Count > 0) { this.programControl.Commands = commands; this.lstCommands.Items.Clear(); MotionCommand[] test = new MotionCommand[this.programControl.Commands.Count]; this.programControl.Commands.CopyTo(test, 0); this.lstCommands.Items.AddRange(test); } this.programName = Path.GetFileNameWithoutExtension(path); this.lblProgramName.Text = String.Format("Program: {0}", this.programName); } }
/// <summary> /// Save commmands to XML. /// </summary> /// <remarks> /// @"c:\temp\SerializationOverview.xml" /// </remarks> /// <param name="commands">Commands</param> /// <param name="path">File</param> public static void Save(MotionCommands commands, string path) { XmlSerializer writer = new XmlSerializer(typeof(MotionCommands)); StreamWriter file = new System.IO.StreamWriter(path); writer.Serialize(file, commands); file.Close(); }
/// <summary> /// Read commands from XML. /// </summary> /// <remarks>@"c:\temp\SerializationOverview.xml"</remarks> /// <param name="path">File</param> /// <returns>Commands</returns> public static MotionCommands Load(string path) { XmlSerializer reader = new XmlSerializer(typeof(MotionCommands)); MotionCommands commands = new MotionCommands(); StreamReader file = new StreamReader(path); commands = (MotionCommands)reader.Deserialize(file); file.Close(); return commands; }
private void Prune(List <Word> words, string line, int lineNumber) { while (words.Count > 0) { /* Ignore for now, * From comment that generates parameter: #If we're using pronterface, we need to change raster data / and + in the base64 alphabet to letter 9. This loses a little intensity in pure blacks but keeps pronterface happy. * if( self.options.pronterface ): * b64 = b64.replace("+", "9").replace("/", "9"); */ var prontoFaceDCommand = words.Where(wrd => wrd.Command == 'D').FirstOrDefault(); if (prontoFaceDCommand != null) { words.Remove(prontoFaceDCommand); continue; } /* ???? */ var unknown = words.Where(wrd => wrd.Command == 'B').FirstOrDefault(); if (unknown != null) { words.Remove(unknown); continue; } if (words.First().Command == 'G' && !MotionCommands.Contains(words.First().Parameter)) { #region UnitPlaneDistanceMode double param = words.First().Parameter; if (param == 90) { State.DistanceMode = ParseDistanceMode.Absolute; words.RemoveAt(0); continue; } if (param == 91) { State.DistanceMode = ParseDistanceMode.Relative; words.RemoveAt(0); continue; } if (param == 90.1) { State.ArcDistanceMode = ParseDistanceMode.Absolute; words.RemoveAt(0); continue; } if (param == 91.1) { State.ArcDistanceMode = ParseDistanceMode.Relative; words.RemoveAt(0); continue; } if (param == 21) { State.Unit = ParseUnit.Metric; words.RemoveAt(0); continue; } if (param == 20) { State.Unit = ParseUnit.Imperial; words.RemoveAt(0); continue; } if (param == 17) { State.Plane = ArcPlane.XY; words.RemoveAt(0); continue; } if (param == 18) { State.Plane = ArcPlane.ZX; words.RemoveAt(0); continue; } if (param == 19) { State.Plane = ArcPlane.YZ; words.RemoveAt(0); continue; } words.RemoveAt(0); //unsupported G-Command continue; #endregion } break; } }