public void ShouldFindG0X0CommandAsG0() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G0X0", 0) as GCodeMotion; Assert.AreEqual("G0", cmd.Command); }
protected override bool ProcessLine(string line, Socket socket) { string l = line.ToLower().Trim(); if (l == "exit") { return(false); } LED.Write(false); try { GCodeParser.ParseLine(l); SendString("+\r\n", socket); } catch (Exception ex) { SendString("ERROR: " + ex.Message + "\r\n", socket); } finally { LED.Write(true); } return(true); }
public void ShouldFindG0_X10CommandAsG0WithX10() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G0 X10", 0) as GCodeMotion; Assert.AreEqual(10, cmd.End.X); }
public void ShouldFindG0_ReturnWHoleNumber() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G0 X10.00", 0) as GCodeMotion; Assert.AreEqual(10, cmd.End.X); Assert.AreEqual("G0 X10 Y0 Z0", cmd.Line); }
public void ShouldFindG0_Retain1Decimal() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G0 X10.4", 0) as GCodeMotion; Assert.AreEqual(10.4, cmd.End.X); Assert.AreEqual("G0 X10.4 Y0 Z0", cmd.Line); }
public void ParseChangeTool() { var parser = new GCodeParser(new FakeLogger()); var line = "M06 T01; 0.8000"; var cmd = parser.ParseLine(line, 0) as ToolChangeCommand; Assert.AreEqual("0.8000", cmd.ToolSize); }
public void ParseProbeCommand() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G38.3 Z-5 F20", 0) as GCodeProbe; Assert.AreEqual("G38.3", cmd.Command); Assert.AreEqual(20, cmd.Feed); }
public void ApplyYOffsetTest() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G1 X0 Y30 Z0", 10) as GCodeMotion; cmd.ApplyOffset(0, 10); Assert.AreEqual(40, cmd.End.Y); Assert.AreEqual("G1 X0 Y40 Z0", cmd.Line); }
public void ApplyZeroRotation() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G1 X30 Y0", 0) as GCodeLine; cmd.Rotate(0); Assert.AreEqual(30, cmd.End.X); Assert.AreEqual("G1 X30 Y0 Z0", cmd.Line); }
public void ShouldAddSpindleIfNotPresent() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G0 X10 S30", 0) as GCodeMotion; Assert.AreEqual(10, cmd.End.X); Assert.AreEqual(30, cmd.SpindleRPM.Value); Assert.AreEqual("G0 X10 Y0 Z0 S30", cmd.Line); }
public void ShouldAddFeedIfNotExisting() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G0 X10 F300", 0) as GCodeMotion; Assert.AreEqual(10, cmd.End.X); Assert.AreEqual(300, cmd.Feed.Value); Assert.AreEqual("G0 X10 Y0 Z0 F300", cmd.Line); }
public void ShouldGenerateG1LineWithOnlyXMove() { var parser = new GCodeParser(new FakeLogger()); parser.State.Position = new Core.Models.Drawing.Vector3(5, 5, 0); var cmd = parser.ParseLine("G0X10", 0) as GCodeMotion; Assert.AreEqual("G0 X10 Z0", cmd.Line); }
private void editor_ParseGCode() { editor_Parser.Reset(); string text = editor_textBoxGCode.Text; StringBuilder errors = new StringBuilder(); int lineIndex = 0; int lastpos = 0; int position = 0; while (true) { lineIndex++; position = text.IndexOf('\n', position); string line; if (position >= 0) { line = text.Substring(lastpos, position - lastpos); } else { line = text.Substring(lastpos); } try { editor_Parser.ParseLine(line); } catch (Exception ex) { if (errors.Length > 0) { errors.Append('\n'); } errors.Append($"{lineIndex}:\t{ex.Message}"); } if (position == -1) { break; } position++; lastpos = position; } previewPath = editor_Parser.ToolPath; editor_labelError.Content = errors.ToString(); editor_labelError.Visibility = errors.Length > 0 ? Visibility.Visible : Visibility.Collapsed; }
public void Apply90CC2Rotation() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G1 X30 Y0", 0) as GCodeLine; cmd.Rotate(90); Console.WriteLine(cmd.Line); Assert.AreEqual(30, cmd.End.Y); Assert.AreEqual("G1 X0 Y30 Z0", cmd.Line); }
public void ShouldAddSpindleIfChanged() { var parser = new GCodeParser(new FakeLogger()); parser.State.SpindleRPM = 30; var cmd = parser.ParseLine("G0 X10 S25", 0) as GCodeMotion; Assert.AreEqual(10, cmd.End.X); Assert.AreEqual(25, cmd.SpindleRPM.Value); Assert.AreEqual("G0 X10 Y0 Z0 S25", cmd.Line); }
public void ShouldAddFeedIfChanged() { var parser = new GCodeParser(new FakeLogger()); parser.State.Feed = 300; var cmd = parser.ParseLine("G0 X10 F250", 0) as GCodeMotion; Assert.AreEqual(10, cmd.End.X); Assert.AreEqual(250, cmd.Feed.Value); Assert.AreEqual("G0 X10 Y0 Z0 F250", cmd.Line); }
public static void Main() { var device = new XYZGantryDevice(); device.SetStepX((steps) => { }); device.SetStepY((steps) => { }); device.SetStepZ((steps) => { }); device.SetStopX(() => { }); device.SetStopX(() => { }); device.SetStopX(() => { }); var machine = new GCodeMachine(device); var parser = new GCodeParser(machine); //parser.ParseLine("G01 X1 Y1"); parser.ParseLine("G02 X1 Y0 I1 J0"); }
public void LineSplitTest() { var parser = new GCodeParser(new FakeLogger()); var cmd = parser.ParseLine("G0 X25 Y25", 0) as GCodeMotion; Assert.AreEqual("G0", cmd.Command); var cmds = cmd.Split(5); var first = cmds.First(); Assert.AreEqual(cmd.Start.X, first.Start.X); Assert.AreEqual(cmd.Start.Y, first.Start.Y); Assert.AreEqual(cmd.Start.Z, first.Start.Z); var last = cmds.Last(); Assert.AreEqual(cmd.End.X, last.End.X); Assert.AreEqual(cmd.End.Y, last.End.Y); Assert.AreEqual(cmd.End.Z, last.End.Z); }
public void ParseSetSpindle() { var parser = new GCodeParser(new FakeLogger()); var line = "S20000"; var cmd = parser.ParseLine(line, 0) as OtherCode; }