private bool ParseTemperatures(string temperatureLine) { var pattern = @"\s*T:[0-9,-,.]*\s*/[0-9,.]*\s*B:[0-9,.]*\s/[0-9,.]*\s@:[0-9,.]*\s*B@:[0-9,.]*"; if (Regex.Match(temperatureLine, pattern).Success) { var extruderString = Regex.Match(temperatureLine, @"(?:T:)([0-9]*.[0-9]*)", RegexOptions.CultureInvariant).Groups[1].Value; var setExtruderString = Regex.Match(temperatureLine, @"(?:T:[0-9]*.[0-9]*\s\/)([0-9]*.[0-9]*)", RegexOptions.CultureInvariant).Groups[1].Value; var heatbedTempString = Regex.Match(temperatureLine, @"(?:B:)([0-9]*.[0-9]*)", RegexOptions.CultureInvariant).Groups[1].Value; var heatbedSetString = Regex.Match(temperatureLine, @"(?:B:[0-9]*.[0-9]*\s\/)([0-9]*.[0-9]*)", RegexOptions.CultureInvariant).Groups[1].Value; var extruder2TempString = Regex.Match(temperatureLine, @"(?:T0:)([0-9]*.[0-9]*)", RegexOptions.CultureInvariant).Groups[1].Value; var extruder2SetString = Regex.Match(temperatureLine, @"(?:T0:[0-9]*.[0-9]*\s\/)([0-9]*.[0-9]*)", RegexOptions.CultureInvariant).Groups[1].Value; Temperatures eventTemperatures = new Temperatures(); if (!string.IsNullOrEmpty(extruderString)) { eventTemperatures.Extruder1 = _numberConversion.ConvertStringToDecimal(extruderString); } if (!string.IsNullOrEmpty(setExtruderString)) { eventTemperatures.SetExtruder1 = _numberConversion.ConvertStringToDecimal(setExtruderString); } if (!string.IsNullOrEmpty(heatbedTempString)) { eventTemperatures.Heatbed = _numberConversion.ConvertStringToDecimal(heatbedTempString); } if (!string.IsNullOrEmpty(heatbedSetString)) { eventTemperatures.SetHeatbed = _numberConversion.ConvertStringToDecimal(heatbedSetString); } if (!string.IsNullOrEmpty(extruder2TempString)) { eventTemperatures.Extruder2 = _numberConversion.ConvertStringToDecimal(extruder2TempString); } if (!string.IsNullOrEmpty(extruder2SetString)) { eventTemperatures.SetExtruder2 = _numberConversion.ConvertStringToDecimal(extruder2SetString); } OnTemperature(eventTemperatures); return(true); } return(false); }
private void OnTemperature(Temperatures temperatures) { var handler = Temperatures; handler?.Invoke(this, temperatures); }