コード例 #1
0
        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);
        }
コード例 #2
0
        private void OnTemperature(Temperatures temperatures)
        {
            var handler = Temperatures;

            handler?.Invoke(this, temperatures);
        }