Ejemplo n.º 1
0
        public void learnValveManual(IValve valv)
        {
            object result = valv;

            if (result is string)
            {
                textBoxID.BackColor = Color.Red;
                textBoxID.Text      = result as string;
                //toolStripStatusLabel1.Text += " [FAILED]";
            }
            else
            {
                IValve valve = result as IValve;
                textBoxID.BackColor = Color.YellowGreen;
                textBoxID.Text      = valve.ValveID.ToString("X8");
                Heater.Valve        = valve;

                //FormMain.calibration.openValve(valve);
                isTemp.Text  = String.Format("{0:F1} °C", Heater.Valve.Temperature);
                isValue.Text = String.Format("{0} %", Heater.Valve.Value);
                //toolStripStatusLabel1.Text += " [OK]";
            }

            buttonDelete.Enabled = true;
            buttonLearn.Enabled  = true;

            HeaterPanelLearningEventHandler eventHandler = HeaterPanelLearning;

            if (eventHandler != null)
            {
                eventHandler(false);
            }
        }
 public void Connect(IValve v)
 {
     Valve = v; if (v != null)
     {
         v.StateChanged += StateChanged; StateChanged();
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 ///     Adds a <see cref="IValve" /> to a <see cref="Valve" /> collection
 /// </summary>
 /// <param name="coll">the target <see cref="Valve" /> collection</param>
 /// <param name="valve">the <see cref="IValve" /> to add</param>
 /// <param name="settings">any settings that should be passed to the valve</param>
 public static void Add(this ICollection <Valve> coll, IValve valve, params Setting[] settings)
 {
     coll.Add(
         new Valve {
         Key = valve.Id, Settings = settings == null ? new List <Setting>() : settings.ToList()
     });
 }
        private void learnValveComplete(Object sender, RunWorkerCompletedEventArgs e)
        {
            object result = e.Result;

            if (result is string)
            {
                textBoxID.BackColor = Color.Red;
                textBoxID.Text      = result as string;
                //toolStripStatusLabel1.Text += " [FAILED]";
            }
            else
            {
                IValve valve = result as IValve;
                textBoxID.BackColor       = Color.YellowGreen;
                textBoxID.Text            = valve.ValveID.ToString("X8");
                Heater.Valve              = valve;
                Heater.Valve.DesiredValue = Convert.ToInt32(numericSoll.Value);

                //FormMain.calibration.openValve(valve);
                isTemp.Text  = String.Format("{0:F1} °C", Heater.Valve.Temperature);
                isValue.Text = String.Format("{0} %", Heater.Valve.Value);
                //toolStripStatusLabel1.Text += " [OK]";
            }

            buttonDelete.Enabled = true;
            buttonLearn.Enabled  = true;

            HeaterPanelLearningEventHandler eventHandler = HeaterPanelLearning;

            if (eventHandler != null)
            {
                eventHandler(false);
            }
        }
 private FormValveInfo(IValve valve)
 {
     InitializeComponent();
     valve.PropertyChanged += new PropertyChangedEventHandler(valveChanged);
     this.valve             = valve;
     showValues();
 }
Ejemplo n.º 6
0
        private void learnValve(object source, DoWorkEventArgs arguments)
        {
            string error = null;
            IValve valve = null;

            try
            {
                valve = Data.calibration.anlernen(120000);
            }
            catch (CalibrationException exception)
            {
                switch (exception.error)
                {
                case Error.NO_FREE_IDS:
                    error = "Keine freien IDs vorhanden";
                    break;

                case Error.NO_LEARN_MESSAGE:
                    error = "Kein Anlerntelegramm empfangen";
                    break;

                default:
                    Console.WriteLine("Unknown exception: {0}", exception.error);
                    error = "Unbekannter Fehler";
                    break;
                }

                arguments.Result = error;
                return;
            }

            arguments.Result = valve;
        }
Ejemplo n.º 7
0
        public PressureController()
        {
            timer           = new System.Timers.Timer(1000); //  1 sec timer
            timer.Elapsed  += OnTimedEvent;
            timer.AutoReset = true;

            Vessel         = new ReactorVessel();
            fissionChamber = new FissionChamber(Vessel, this);

            pSensor = new PressureSensor();
            pSensor.SetVessel(Vessel);
            valve = new Valve(this);
            valve.SetVessel(Vessel);
            valve.NotifyValveAction += OnValveActivation;
        }
        internal static void close(IValve valve)
        {
            if (valve == null)
            {
                return;
            }

            if (!dictionary.ContainsKey(valve))
            {
                return;
            }

            FormValveInfo formValveInfo = dictionary[valve];

            formValveInfo.Close();
        }
        internal static FormValveInfo show(IValve valve)
        {
            FormValveInfo formValveInfo;

            if (dictionary.ContainsKey(valve))
            {
                formValveInfo = dictionary[valve];
                formValveInfo.BringToFront();
            }
            else
            {
                formValveInfo = new FormValveInfo(valve);
                formValveInfo.Show();

                dictionary.Add(valve, formValveInfo);
            }

            return(formValveInfo);
        }
Ejemplo n.º 10
0
 public void addValve(IValve valve)
 {
     if (first == null)
     {
         first = valve;
         valve.setNext(basic);
     }
     else
     {
         IValve current = first;
         while (current != null)
         {
             if (current.GetNext() == basic)
             {
                 current.setNext(valve);
                 valve.setNext(basic);
                 break;
             }
             current = current.GetNext();
         }
     }
 }
        private void valveChanged(object sender, PropertyChangedEventArgs args)
        {
            // Alles im try Block, da trotz des Entfernens des EventHandlers
            try
            {
                //Alles im GUI-Thread ausführen
                Invoke((MethodInvoker) delegate
                {
                    IValve valve = sender as IValve;

                    switch (args.PropertyName)
                    {
                    case "Value":
                        textBoxValue.Text = String.Format("{0} %", valve.Value);
                        break;

                    case "Temperature":
                        textBoxTemp.Text = String.Format("{0:F2} °C", valve.Temperature);
                        break;

                    case "Signal":
                        textBoxSignal.Text = String.Format("-{0} dB", valve.Signal);
                        break;

                    case "Battery":
                        checkBoxBattOK.Checked = valve.Battery;
                        break;

                    case "KommunikationOK":
                        checkBoxCommunicationOK.Checked = valve.KommunikationOK;
                        break;
                    }
                });
            }
            catch (Exception)
            {
                Console.WriteLine("Exception");
            }
        }
Ejemplo n.º 12
0
        internal static bool settingsValid(ref List <String> fehler)
        {
            if (fehler == null)
            {
                fehler = new List <string>();
            }

            // Empfänger prüfen ...
            if (calibration == null)
            {
                fehler.Add(String.Format("Fehler {0:3} - Die Bibliothek FlowCalibration.dll wurde nicht geladen.", fehler.Count + 1));
            }
            else if (!calibration.Initialized)
            {
                fehler.Add(String.Format("Fehler {0:000} - Der EnOcean-Empfänger wurde nicht initialisiert.", fehler.Count + 1));
            }

            if (Rooms.Count == 0)
            {
                fehler.Add(String.Format("Fehler {0:000} - Es wurde kein Raum angelegt.", fehler.Count + 1));
            }

            List <IValve> valves = new List <IValve>();

            // Einstellungen der Ventile prüfen ...
            foreach (Room room in rooms)
            {
                if (room.Heaters.Count == 0)
                {
                    fehler.Add(String.Format("Fehler {0:000} - Im Raum {1:000} wurde kein Heizkörper angelegt.", fehler.Count + 1, room.Name));
                }

                foreach (Heater heater in room.Heaters)
                {
                    ValveInfo valveInfo = heater.ValveInfo;

                    if (valveInfo == null)
                    {
                        fehler.Add(String.Format("Fehler {0:000} - Dem Heizkörper {1:000} im Raum {2:000} wurde kein Ventil zugewiesen.", fehler.Count + 1, heater.ID + 1, room.Name));
                    }
                    else
                    {
                        IValve valve = heater.Valve;

                        if (valve == null)
                        {
                            fehler.Add(String.Format("Fehler {0:000} - Das Ventil am Heizkörper {1:000} im Raum {2:000} wurde nicht angelernt.", fehler.Count + 1, heater.ID + 1, room.Name));
                        }
                        else
                        {
                            valves.Add(valve);

                            if (!valve.Battery)
                            {
                                fehler.Add(String.Format("Fehler {0:000} - Die Ladung der Batterien des Ventils am Heizkörper {1:000} im Raum {2:000} ist unter 20 %.", fehler.Count + 1, heater.ID + 1, room.Name));
                            }

                            if (!valve.KommunikationOK)
                            {
                                fehler.Add(String.Format("Fehler {0:000} - Die Kommunikation mit dem Ventil am Heizkörper {1:000} im Raum {2:000} ist unterbrochen.", fehler.Count + 1, heater.ID + 1, room.Name));
                            }

                            if (valve.Signal > 85)
                            {
                                fehler.Add(String.Format("Fehler {0:000} - Die Signalstärke des Ventils am Heizkörper {1:000} im Raum {2:000} ist nicht ausreichend.", fehler.Count + 1, heater.ID + 1, room.Name));
                            }
                        }
                    }
                }
            }

            return(fehler.Count == 0);
        }
Ejemplo n.º 13
0
 public ValveController()
 {
     this.Valves = new Valves();
 }
Ejemplo n.º 14
0
 public void setNext(IValve valve)
 {
     this.next = valve;
 }
Ejemplo n.º 15
0
 public void setBasic(IValve valve)
 {
     basic = valve;
 }
Ejemplo n.º 16
0
 public Heater(IValve valve)
 {
     this.Valve = valve;
 }
Ejemplo n.º 17
0
 public ValveController(IValve Valves)
 {
     this.Valves = Valves;
 }
 private void FormValveInfo_FormClosing(object sender, FormClosingEventArgs e)
 {
     valve.PropertyChanged -= new PropertyChangedEventHandler(valveChanged);
     dictionary.Remove(valve);
     valve = null;
 }
Ejemplo n.º 19
0
        private void heaterPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (sender is IValve)
            {
                IValve valve = sender as IValve;

                switch (e.PropertyName)
                {
                // Die Voreinstellung wird von einem anderen Thread eingestellt,
                // deshalb muss hier mit BeginInvoke gearbeitet werden
                // Vielleicht von anderer Stelle aus erledigen
                case "Voreinstellung":
                    this.BeginInvoke(((MethodInvoker) delegate
                    {
                        //textBoxVE.Text = String.Format("{0:0.0}", valve.Voreinstellung);
                    }));

                    break;

                case "KommunikationOK":
                case "Battery":
                case "Signal":
                    this.BeginInvoke(((MethodInvoker) delegate
                    {
                        if (valve.Battery && valve.KommunikationOK && valve.Signal < 85)
                        {
                            textBoxID.BackColor = Color.YellowGreen;
                        }
                        else if (valve.Battery && valve.KommunikationOK)
                        {
                            textBoxID.BackColor = Color.Orange;
                        }
                        else
                        {
                            textBoxID.BackColor = Color.Red;
                        }
                    }));

                    break;

                case "Value":
                    this.BeginInvoke(((MethodInvoker) delegate
                    {
                        isValue.Text = String.Format("{0} %", valve.Value);
                    }));

                    break;

                case "Temperature":
                    this.BeginInvoke(((MethodInvoker) delegate
                    {
                        isTemp.Text = String.Format("{0:F1} °C", valve.Temperature);
                    }));

                    break;

                case "Valve":
                    this.BeginInvoke(((MethodInvoker) delegate
                    {
                        if (valve.Battery && valve.KommunikationOK && valve.Signal < 85)
                        {
                            textBoxID.BackColor = Color.YellowGreen;
                        }
                        else if (valve.Battery && valve.KommunikationOK)
                        {
                            textBoxID.BackColor = Color.Orange;
                        }
                        else
                        {
                            textBoxID.BackColor = Color.Red;
                        }
                        isValue.Text = String.Format("{0} %", valve.Value);
                        isTemp.Text = String.Format("{0:F1} °C", valve.Temperature);
                    }));

                    break;

                case "DesiredValue":
                    this.BeginInvoke(((MethodInvoker) delegate
                    {
                        numericSoll.Value = valve.DesiredValue;
                        numericSoll.Text = String.Format("{0:F2}", valve.DesiredValue);
                    }));
                    break;

                case "True":
                    numericSoll.ReadOnly  = false;
                    numericSoll.Increment = 1;
                    break;

                case "False":
                    numericSoll.ReadOnly  = true;
                    numericSoll.Increment = 0;
                    break;
                }
            }
            else
            {
                switch (e.PropertyName)
                {
                case "ID":
                    label1.Text = String.Format("{0}", Heater.ID + 1);
                    break;

                case "DesiredVolumeFlow":
                    //textBoxSoll.Text = String.Format("{0:0}", Heater.DesiredVolumeFlow);
                    break;

                case "True":
                    numericSoll.ReadOnly  = false;
                    numericSoll.Increment = 1;
                    break;

                case "False":
                    numericSoll.ReadOnly  = true;
                    numericSoll.Increment = 0;
                    break;

                case "Valve":
                    if (Heater.Valve == null)
                    {
                        if (formValveInfo != null)
                        {
                            formValveInfo.Close();
                        }

                        buttonLearn.Enabled = true;
                        textBoxID.Text      = "";
                        textBoxID.BackColor = System.Drawing.SystemColors.Window;
                    }

                    break;
                }
            }
        }
Ejemplo n.º 20
0
 /// <summary>
 ///     Adds a valve to an <see cref="IConfigurable" /> with the given <see cref="Setting" />s
 /// </summary>
 /// <param name="configurable">the target <see cref="IConfigurable" /></param>
 /// <param name="valve">the valve to add</param>
 /// <param name="settings">the associated settings</param>
 public static void AddValve(this IConfigurable configurable, IValve valve, params Setting[] settings)
 {
     configurable.Valves.Add(valve, settings);
 }