Exemplo n.º 1
0
        public void Value2()
        {
            string line = "G1.0";
            var    test = new LineCommand();

            Assert.AreEqual(test.Parse(line), true);
            Assert.AreEqual(test.Comment, null);
            Assert.AreEqual(test.Original, line);
            Assert.AreEqual(test.Count, 1);
            {
                Double value;
                int    pos;
                Assert.AreEqual(test.TryGetValue('G', out value, out pos), true);
                Assert.AreEqual(value, 1.0);
                Assert.AreEqual(pos, 0);
                Assert.AreEqual(test.GetFP('G'), 1);
                Assert.AreEqual(test.Has('G'), true);
            }
            {
                Double value;
                int    pos;
                Assert.AreEqual(test.TryGetValue('A', out value, out pos), false);
                Assert.AreEqual(test.GetFP('A'), 0);
                Assert.AreEqual(test.Has('A'), false);
            }
        }
Exemplo n.º 2
0
        public bool ActionLine(LineCommand line)
        {
            bool   hasXY = line.Has('X') || line.Has('Y');
            bool   hasZ  = line.Has('Z');
            Double prevE = current_.E;

            if (current_.ActionLine(line))
            {
                Double value;
                int    position;
                if (line.TryGetValue('G', out value, out position))
                {
                    switch (value)
                    {
                    case 92:
                        if (line.Has('E'))
                        {
                            totalE_ += prevE;
                        }
                        break;

                    case 1:
                        if (hasXY)
                        {
                            totalLength_ += prev_.LengthXYTo(current_);
                            totalTime_   += prev_.LengthXYTo(current_) / current_.F;
                        }
                        if (hasZ)
                        {
                            totalLength_ += prev_.LengthZTo(current_);
                            totalTime_   += prev_.LengthZTo(current_) / current_.F;
                        }
                        break;
                    }
                }
                prev_.Update(current_);
                return(true);
            }
            return(false);
        }