예제 #1
0
 public MessengerInstanceWrappr(ProsessData data)
 {
     MessengerInstance.Send(new ProsessDataMessage(data));
 }
예제 #2
0
 public ProsessDataMessage(ProsessData data)
 {
     ProsessData = data;
 }
예제 #3
0
        public void DecodeDataString(string text)
        {
            // Assign the value of the recieved_data to the RichTextBox.
            text.Trim();
            mainViewModel.ResivedStringFromArduino = text;
            ProsessData _prosessData = new ProsessData();

            string replacement = Regex.Replace(text, "\r", "");

            _prosessData.RAW_Data = replacement;

            var textList   = Regex.Split(replacement, "_");
            var plotValues = new List <double>();

            try
            {
                foreach (var item in textList)
                {
                    if (item.StartsWith("HartB"))
                    {
                        int beat;
                        int.TryParse(item.Remove(0, 5), out beat);
                        //if (beat != HartBeatArduino)
                        //{
                        HartBeatArduino         = beat;
                        mainViewModel.HeartBeat = HartBeatArduino;
                        //}
                        //else
                        //{
                        //    string mesage = string.Format("Hartbeat from arduino {0}, vs {1}", beat.ToString(), HartBeatArduino.ToString());
                        //    MessageBox.Show(mesage,"HartBeatArduino");
                        //    try
                        //    {
                        //        mySerialPort.Close();
                        //    }
                        //    catch (Exception)
                        //    {

                        //        mySerialPort.Dispose();
                        //    }

                        //}
                    }
                    else if (item.StartsWith("STATE"))
                    {
                        int.TryParse(item.Remove(0, 5), out systemState);
                        mainViewModel.BrewingState = systemState;
                        _prosessData.BrewingState  = systemState;
                    }
                    else if (item.StartsWith("CleSt"))
                    {
                        int.TryParse(item.Remove(0, 5), out systemCleaningState);
                        mainViewModel.CleaningState = systemCleaningState;
                        _prosessData.CleaningState  = systemCleaningState;
                    }
                    else if (item.StartsWith("Messa"))
                    {
                        var message = item.Remove(0, 5);
                        TxtMessageFromSystem.Text       = message;
                        mainViewModel.MessageFromSystem = message;
                    }
                    else if (item.StartsWith("TimSp"))
                    {
                        int maxtTme;
                        var message = item.Remove(0, 5);
                        int.TryParse(message, out maxtTme);
                        progressBar.Maximum = maxtTme;
                    }
                    else if (item.StartsWith("RemTi"))
                    {
                        int time;
                        var message = item.Remove(0, 5);
                        int.TryParse(message, out time);
                        progressBar.Value = time;
                        TimeSpan t          = TimeSpan.FromSeconds(time);
                        string   timeString = string.Format("{0:D2}h:{1:D2}m:{2:D2}s",
                                                            t.Hours,
                                                            t.Minutes,
                                                            t.Seconds);
                        mainViewModel.Timer = timeString;
                        _prosessData.Timer  = t;
                    }
                    else if (item.StartsWith("AmbTe"))
                    {
                        var value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);

                        ambiantTemperature  = value;
                        txtAmbientTemp.Text = value.ToString();
                    }
                    else if (item.StartsWith("HltSp"))
                    {
                        var value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        hotLiqureTank.TemperatureSetpoint = value;
                        HLT.TextSetTemp.Text = value.ToString();
                        mainViewModel.HotLiquidTankTemperatureSetpoint = value;
                        _prosessData.HLT.TemperatureSetpoint           = value;
                    }
                    else if (item.StartsWith("HltTe"))
                    {
                        var value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        plotValues.Add(value);
                        hotLiqureTank.TemperatureActual.SensorValue = value;
                        HLT.GauageActTemp.Value = value;
                        HLT.TextActuelTemp.Text = value.ToString();
                        mainViewModel.HotLiquidTankTemperature = value;
                        _prosessData.HLT.Temperature           = value;
                    }
                    else if (item.StartsWith("HltE1"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            hotLiqureTank.HeatingElement.On    = true;
                            HLT.indicatorHeatingElementOn.Fill = myRedBrush;
                            mainViewModel.HotLiquidTankElement = true;
                            _prosessData.HLT.HeatingElementOn  = true;
                        }
                        else
                        {
                            hotLiqureTank.HeatingElement.On    = false;
                            HLT.indicatorHeatingElementOn.Fill = myGrayBrush;
                            mainViewModel.HotLiquidTankElement = false;
                            _prosessData.HLT.HeatingElementOn  = false;
                        }
                    }
                    else if (item.StartsWith("HltCp"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            hotLiqureTank.CirculationPump.On         = true;
                            HLT.indicatorCirculationPumpOn.Fill      = myRedBrush;
                            _prosessData.HLT.CirculationPump.Running = true;
                        }
                        else
                        {
                            hotLiqureTank.CirculationPump.On         = false;
                            HLT.indicatorCirculationPumpOn.Fill      = myGrayBrush;
                            _prosessData.HLT.CirculationPump.Running = false;
                        }
                    }
                    else if (item.StartsWith("HltTp"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            hotLiqureTank.TransferPump.On         = true;
                            HLT.indicatorTransferPumpOn.Fill      = myRedBrush;
                            _prosessData.HLT.TransferPump.Running = true;
                        }
                        else
                        {
                            hotLiqureTank.TransferPump.On         = false;
                            HLT.indicatorTransferPumpOn.Fill      = myGrayBrush;
                            _prosessData.HLT.TransferPump.Running = false;
                        }
                    }
                    else if (item.StartsWith("HltVo"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        hotLiqureTank.Volume.SensorValue = value;
                        HLT.TxtTankVolume.Text           = value.ToString();
                        _prosessData.HLT.CurrentVolume   = value;
                    }
                    else if (item.StartsWith("MatTe"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        plotValues.Add(value);
                        mashTank.TemperatureActual.SensorValue = value;
                        MashTank.GauageActTemp.Value           = value;
                        MashTank.TextActuelTemp.Text           = value.ToString();
                        mainViewModel.MeshTankTemperature      = value;
                        _prosessData.MashTank.Temperature      = value;
                    }
                    else if (item.StartsWith("RimRO"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        mainViewModel.MeshTankRimsRightOutesideTemperature  = value;
                        _prosessData.MashTank.RimsRight.OutesideTemperature = value;
                        plotValues.Add(value);
                    }
                    else if (item.StartsWith("RimLO"))
                    {
                        var value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        mainViewModel.MeshTankRimsLeftOutesideTemperature  = value;
                        _prosessData.MashTank.RimsLeft.OutesideTemperature = value;
                    }
                    else if (item.StartsWith("MarTe"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        mashTank.HeatingElementReturTemperature.SensorValue = value;
                        mainViewModel.MeshTankRimsReturTemperature          = value;
                        MashTank.txtTemperatureAfterHeate.Text        = value.ToString();
                        _prosessData.MashTank.RimsRight.OutTeperature = value;
                    }
                    else if (item.StartsWith("MatSp"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        mashTank.TemperatureSetpoint = value;
                        MashTank.TextSetTemp.Text    = value.ToString();
                        mainViewModel.MeshTankTemperatureSetpoint = value;
                        _prosessData.MashTank.TemperatureSetpoint = value;
                    }
                    else if (item.StartsWith("MatE1"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            mashTank.HeatingElement.On = true;
                            MashTank.indicatorHeatingElementOn.Fill   = myRedBrush;
                            _prosessData.MashTank.RimsRight.ElementOn = true;
                        }
                        else
                        {
                            mashTank.HeatingElement.On = false;
                            MashTank.indicatorHeatingElementOn.Fill   = myGrayBrush;
                            _prosessData.MashTank.RimsRight.ElementOn = false;
                        }
                    }

                    else if (item.StartsWith("MatE2"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            mashTank.HeatingElement.On = true;
                            MashTank.indicatorHeatingElementOn.Fill  = myRedBrush;
                            _prosessData.MashTank.RimsLeft.ElementOn = true;
                        }
                        else
                        {
                            mashTank.HeatingElement.On = false;
                            MashTank.indicatorHeatingElementOn.Fill   = myGrayBrush;
                            _prosessData.MashTank.RimsRight.ElementOn = false;
                        }
                    }

                    else if (item.StartsWith("MatCp"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            mashTank.CirculationPump.On = true;
                            MashTank.indicatorCirculationPumpOn.Fill      = myRedBrush;
                            _prosessData.MashTank.CirculationPump.Running = true;
                        }
                        else
                        {
                            mashTank.CirculationPump.On = false;
                            MashTank.indicatorCirculationPumpOn.Fill      = myGrayBrush;
                            _prosessData.MashTank.CirculationPump.Running = false;
                        }
                    }
                    else if (item.StartsWith("MatTp"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            mashTank.TransferPump.On = true;
                            MashTank.indicatorTransferPumpOn.Fill      = myRedBrush;
                            _prosessData.MashTank.TransferPump.Running = true;
                        }
                        else
                        {
                            mashTank.TransferPump.On = false;
                            MashTank.indicatorTransferPumpOn.Fill      = myGrayBrush;
                            _prosessData.MashTank.TransferPump.Running = false;
                        }
                    }
                    else if (item.StartsWith("MatAV"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        _prosessData.MashTank.AddedVolume = value;
                    }
                    else if (item.StartsWith("MatVo"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        plotValues.Add(value);
                        mashTank.Volume.SensorValue         = value;
                        MashTank.TxtTankVolume.Text         = value.ToString();
                        mainViewModel.MeshTankVolume        = value;
                        _prosessData.MashTank.CurrentVolume = value;
                    }

                    else if (item.StartsWith("BotTe"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        plotValues.Add(value);
                        boilTank.TemperatureActual.SensorValue = value;
                        BoilTank.GauageActTemp.Value           = value;
                        BoilTank.TextActuelTemp.Text           = value.ToString();
                        mainViewModel.BoilTankTemperature      = value;
                        _prosessData.BoilTank.Temperature      = value;
                    }
                    else if (item.StartsWith("BotSp"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        boilTank.TemperatureSetpoint = value;
                        BoilTank.TextSetTemp.Text    = value.ToString();
                        mainViewModel.BoilTankTemperatureSetpoint = value;
                        _prosessData.BoilTank.TemperatureSetpoint = value;
                    }
                    else if (item.StartsWith("BotE1"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            boilTank.HeatingElement.On = true;
                            BoilTank.indicatorHeatingElementOn.Fill = myRedBrush;
                            _prosessData.BoilTank.Element1_On       = true;
                        }
                        else
                        {
                            boilTank.HeatingElement.On = false;
                            BoilTank.indicatorHeatingElementOn.Fill = myGrayBrush;
                            _prosessData.BoilTank.Element1_On       = false;
                        }
                    }
                    else if (item.StartsWith("BotE2"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            _prosessData.BoilTank.Element2_On = true;
                        }
                        else
                        {
                            _prosessData.BoilTank.Element2_On = false;
                        }
                    }
                    else if (item.StartsWith("BotCp"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            boilTank.CirculationPump.On = true;
                            BoilTank.indicatorCirculationPumpOn.Fill = myRedBrush;
                        }
                        else
                        {
                            boilTank.CirculationPump.On = false;
                            BoilTank.indicatorCirculationPumpOn.Fill = myGrayBrush;
                        }
                    }
                    else if (item.StartsWith("BotTp"))
                    {
                        if (item.Remove(0, 5).StartsWith("1"))
                        {
                            boilTank.TransferPump.On = true;
                            BoilTank.indicatorTransferPumpOn.Fill = myRedBrush;
                            _prosessData.BoilTank.Pump.Running    = true;
                        }
                        else
                        {
                            boilTank.TransferPump.On = false;
                            BoilTank.indicatorTransferPumpOn.Fill = myGrayBrush;
                            _prosessData.BoilTank.Pump.Running    = false;
                        }
                    }
                    else if (item.StartsWith("BotVo"))
                    {
                        double value;
                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        boilTank.Volume.SensorValue         = value;
                        mainViewModel.BoilTankVolume        = value;
                        BoilTank.TxtTankVolume.Text         = value.ToString();
                        _prosessData.BoilTank.CurrentVolume = value;
                    }
                    else if (item.StartsWith("BoCoT"))
                    {
                        var value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        boilTank.HeatingElementReturTemperature.SensorValue   = value;
                        mainViewModel.BoilTankRetureCoolingElementTemperature = value;
                        _prosessData.BoilTank.TemperatureAfterCooler          = value;
                    }

                    else if (item.StartsWith("ConSe"))
                    {
                        var ConSe = Regex.Split(item, ":");
                    }

                    else if (item.StartsWith("TotEn"))
                    {
                        double value;

                        value = double.Parse(item.Remove(0, 5), CultureInfo.InvariantCulture);
                        value = value / 1000;   //Konverting to KW
                        value = value / 3600;   //Konverting to KW/h
                        mainViewModel.TotaleUsedEnergy = value;
                    }
                }

                var mes = new MessengerInstanceWrappr(_prosessData);
                mes.Cleanup();

                try
                {
                    if (plotValues.Count == 5)
                    {
                        mainViewModel.UpdateModel(plotValues);
                        Plot.InvalidatePlot();
                    }
                }
                catch (Exception e)
                {
                    String message = "Error in updating chart: " + e.ToString();
                    MessageBox.Show(message);
                }
            }

            catch (Exception ex) {
                textBoxError.Text = ex.ToString();
            }
        }