Exemple #1
0
        private void ProcessGcodeParameter(string _gcodeparameter)
        {
            string[] parts  = _gcodeparameter.Replace("[", "").Replace("]", "").Split(':');
            string[] coords = parts[1].Split(',');

            WorkCoordinates[parts[0]].X = Convert.ToDouble(coords[0]);
            WorkCoordinates[parts[0]].Y = Convert.ToDouble(coords[1]);
            WorkCoordinates[parts[0]].Z = Convert.ToDouble(coords[2]);

            if (WorkCoordinates[parts[0]].IsCurrent)
            {
                CurrentWorkCoordinateChanged?.Invoke(this, new EventArgs());
            }
        }
Exemple #2
0
        private void ProcessParserState(string _parserstate)
        {
            ParserState = _parserstate.Replace("[GC:", "").Replace("]", "").Split(' ').ToList();

            foreach (var workcoordinate in WorkCoordinates.Values)
            {
                if (
                    (ParserState.Contains(workcoordinate.Name) & !workcoordinate.IsCurrent)
                    ||
                    (workcoordinate.IsCurrent & !ParserState.Contains(workcoordinate.Name))
                    )
                {
                    workcoordinate.IsCurrent = ParserState.Contains(workcoordinate.Name);
                    if (workcoordinate.IsCurrent)
                    {
                        CurrentWorkCoordinateChanged?.Invoke(this, new EventArgs());
                    }
                }
            }

            SpindleState = ParserState.Contains("M3") ? SpindleState.ON : (ParserState.Contains("M5") ? SpindleState.OFF : SpindleState.UNKNOWN);
            CoolingState = ParserState.Contains("M7") ? CoolingState.MIST_ON : (ParserState.Contains("M8") ? CoolingState.FLOOD_ON : (ParserState.Contains("M9") ? CoolingState.OFF : CoolingState.UNKNOWN));
        }