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()); } }
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)); }