Exemplo n.º 1
0
        public static Status GetStatus()
        {
            var status = new Status();

            foreach (TimedEvent te in heatingData.events)
            {
                if (te.IsActive(DateTime.MinValue))
                {
                    var le = new LiveEvent();
                    le.timedEvent = te;
                    le.heater     = HeatingControl.GetHeater(te.subjectId);
                    le.relay      = HeatingControl.GetRelayByAddress(le.heater.relayAddress);
                    status.liveEvents.Add(le);
                }
                else if (te.IsActive(DateTime.MinValue, Status.SOONTIME))
                {
                    var le = new LiveEvent();
                    le.timedEvent = te;
                    le.heater     = HeatingControl.GetHeater(te.subjectId);
                    le.relay      = HeatingControl.GetRelayByAddress(le.heater.relayAddress);
                    status.soonEvents.Add(le);
                }
            }

            status.sensors = heatingData.sensors;

            return(status);
        }
        public static void DoEvents()
        {
            try
            {
                RelayControl.ResetAllSetupRelays();
                foreach (TimedEvent timedEvent in HeatingControl.GetAllEvents())
                {
                    if (timedEvent.IsActive(DateTime.MinValue))
                    {
                        switch (timedEvent.subjectType)
                        {
                        case "heater":
                            Heater heater = HeatingControl.GetHeater(timedEvent.subjectId);
                            if (heater == null)
                            {
                                break;
                            }
                            Logger.Log(Logger.LOGLEVEL_INFO, "Active timed event: heater: " + heater.name + ", relay: " + heater.relayAddress +
                                       ", event: " + timedEvent.description);

                            ProcessHeaterEvent(heater, timedEvent);
                            break;
                        }
                    }
                }
                RelayControl.UpdateRelays();
            }
            catch (Exception ex)
            {
                var testVal = ex;
            }
        }