Beispiel #1
0
        public void MachineStateTest(string machineState, MachineState expectedState, int expectedSubState)
        {
            var line = $"<{machineState}|MPos:0.000,0.000,0.000|FS:0.0,0>";
            var msg  = GrblMessage.Parse(line);

            Assert.IsNotNull(msg);
            Assert.IsInstanceOfType(msg, typeof(StatusReportMessage));

            var statusMsg = msg as StatusReportMessage;

            Assert.AreEqual(statusMsg.MachineState, expectedState);
            Assert.AreEqual(statusMsg.MachineSubState, expectedSubState);
        }
Beispiel #2
0
        public void AccessoryTest(string accessoryInput, AccessoryState expectedAccessoryFlags)
        {
            var line = $"<Hold|WPos:-2.500,0.000,11.000|FS:0.0,0|{accessoryInput}|WCO:0.000,1.551,5.664>";

            var msg = GrblMessage.Parse(line);

            Assert.IsNotNull(msg);
            Assert.IsInstanceOfType(msg, typeof(StatusReportMessage));

            var statusMsg = msg as StatusReportMessage;

            Assert.AreEqual(statusMsg.AccessoryState, expectedAccessoryFlags);
        }
Beispiel #3
0
        public void LineNumberTest(string lineNumberInput, int expectedLineNumber)
        {
            var line = $"<Hold|WPos:-2.500,0.000,11.000|FS:0.0,0|{lineNumberInput}|WCO:0.000,1.551,5.664>";

            var msg = GrblMessage.Parse(line);

            Assert.IsNotNull(msg);
            Assert.IsInstanceOfType(msg, typeof(StatusReportMessage));

            var statusMsg = msg as StatusReportMessage;

            Assert.AreEqual(statusMsg.LineNumber, expectedLineNumber);
        }
Beispiel #4
0
        public void FeedSpeedTest(string feedSpeedInput, float expectedFeedrate, int expectedSpindleSpeed)
        {
            var line = $"<Hold|WPos:-2.500,0.000,11.000|FS:0.0,0|{feedSpeedInput}|WCO:0.000,1.551,5.664>";

            var msg = GrblMessage.Parse(line);

            Assert.IsNotNull(msg);
            Assert.IsInstanceOfType(msg, typeof(StatusReportMessage));

            var statusMsg = msg as StatusReportMessage;

            Assert.AreEqual(statusMsg.Feed, expectedFeedrate);
            Assert.AreEqual(statusMsg.SpindleSpeed, expectedSpindleSpeed);
        }
Beispiel #5
0
        public void OverrideTest(string overrideInput, int expectedFeedOverride, int expectedRapidOverride, int expectedSpindleSpeedOverride)
        {
            var line = $"<Hold|WPos:-2.500,0.000,11.000|FS:0.0,0|{overrideInput}|WCO:0.000,1.551,5.664>";

            var msg = GrblMessage.Parse(line);

            Assert.IsNotNull(msg);
            Assert.IsInstanceOfType(msg, typeof(StatusReportMessage));

            var statusMsg = msg as StatusReportMessage;

            Assert.AreEqual(statusMsg.OverrideFeedPercent, expectedFeedOverride);
            Assert.AreEqual(statusMsg.OverrideRapidsPercent, expectedRapidOverride);
            Assert.AreEqual(statusMsg.OverrideSpindleSpeedPercent, expectedSpindleSpeedOverride);
        }
Beispiel #6
0
        public void BufferStateTest(string bufferState, int expectedAvailableBlocksInPlanner, int expectedAvailableBytesInRx)
        {
            var line = $"<Hold|WPos:-2.500,0.000,11.000|FS:0.0,0|{bufferState}|WCO:0.000,1.551,5.664>";

            var msg = GrblMessage.Parse(line);

            Assert.IsNotNull(msg);
            Assert.IsInstanceOfType(msg, typeof(StatusReportMessage));

            var statusMsg = msg as StatusReportMessage;

            Assert.IsNotNull(statusMsg.BufferState);

            Assert.AreEqual(statusMsg.BufferState.AvailableBlocksInPlannerBuffer, expectedAvailableBlocksInPlanner);
            Assert.AreEqual(statusMsg.BufferState.AvailableBytesInRxBuffer, expectedAvailableBytesInRx);
        }
Beispiel #7
0
        public void WorkCoordinateOffsetTest(string workCoordinateOffset, float[] expectedOffset)
        {
            var line = $"<Hold|MPos:0.000,-10.000,5.000|FS:0.0,0|{workCoordinateOffset}>";

            var msg = GrblMessage.Parse(line);

            Assert.IsNotNull(msg);
            Assert.IsInstanceOfType(msg, typeof(StatusReportMessage));

            var statusMsg = msg as StatusReportMessage;

            var testFloatArray = new float[4];

            statusMsg.WorkCoordinateOffset.CopyTo(testFloatArray);

            for (int i = 0; i < testFloatArray.Length; i++)
            {
                Assert.AreEqual(testFloatArray[i], expectedOffset[i]);
            }
        }
Beispiel #8
0
        public void CurrentPositionTest(string position, PositionType expectedPositionType, float[] expectedCoordinates)
        {
            var line = $"<Idle|{position}|FS:0.0,0>";
            var msg  = GrblMessage.Parse(line);

            Assert.IsNotNull(msg);
            Assert.IsInstanceOfType(msg, typeof(StatusReportMessage));

            var statusMsg = msg as StatusReportMessage;

            Assert.AreEqual(statusMsg.PositionType, expectedPositionType);

            var testFloatArray = new float[4];

            statusMsg.CurrentPosition.CopyTo(testFloatArray);

            for (int i = 0; i < testFloatArray.Length; i++)
            {
                Assert.AreEqual(testFloatArray[i], expectedCoordinates[i]);
            }
        }