예제 #1
0
 public DeviceSchedule(DateTime date, Device device, DeviceAction action, ScheduleTypes type = ScheduleTypes.Once, int interval = 0)
 {
     _date = date;
     _device = device;
     _action = action;
     _type = type;
     _interval = interval;
 }
예제 #2
0
 public PinSchedule(DateTime date, Pin pin, int value, ScheduleTypes type = ScheduleTypes.Once, int interval = 0)
 {
     _date = date;
     _pin = pin;
     _value = value;
     _type = type;
     _interval = interval;
 }
예제 #3
0
        //{
        //    get { return _evh; }
        //    set {
        //        _triggerFired += value;
        //    }
        //}
        #endregion

        #region constructors
        public EventHandlerSchedule(DateTime date, string name, EventHandler eventHandler, EventArgs args, ScheduleTypes type = ScheduleTypes.Once, int interval  = 0)
        {
            _date = date;
            _name = name;
            _args = args;
            _type = type;
            _interval = interval;
            TriggerFired = eventHandler;
        }
예제 #4
0
 /// <summary>
 /// Generate empty intance
 /// </summary>
 public Schedule(ScheduleTypes scheduleTypes)
 {
     this.ScheduleType         = scheduleTypes;
     this.wdList               = new List <DayOfWeek>();
     this.StartTime            = DateTime.Now;
     this.EndTime              = DateTime.Now;
     this.RandomTime_StartTime = DateTime.Now.Date;
     this.RandomTime_EndTime   = DateTime.Now.Date;
     this.RandomTime           = false;
 }
예제 #5
0
 public CommandSchedule(DateTime date, string name, byte command, Address address, byte[] data, BusController bus, ScheduleTypes type = ScheduleTypes.Once, int interval  = 0)
 {
     _date = date;
     _name = name;
     _cmd = command;
     _address = address;
     _data = data;
     _bus = bus;
     _type = type;
     _interval = interval;
 }
예제 #6
0
        /// <summary>
        /// Set up a push notification to display on this device
        /// </summary>
        public static void ScheduleNotification(string message, DateTime date, ScheduleTypes scheduleType = ScheduleTypes.ScheduledLocal, int id = 0)
        {
            var dateString = date.ToString(PlayFabNotificationPackage.SUPPORTED_PLUGIN_TIMESTAMP_FORMATS[0]);

            if (scheduleType == ScheduleTypes.ScheduledUtc)
            {
                dateString = dateString + "Z";
            }
            var package = _notificationSender.CallStatic <AndroidJavaObject>("createNotificationPackage", _objActivity, message, id);

            package.Call("setScheduleDate", dateString);
            _notificationSender.CallStatic("send", _objActivity, package);
        }
예제 #7
0
 /// <summary>
 /// Generate instance with data
 /// </summary>
 /// <param name="scheduleType">Set schedule type to assing times</param>
 /// <param name="startTime">Normal start time</param>
 /// <param name="endTime">Normal end time</param>
 /// <param name="randomStartTime">Random start time</param>
 /// <param name="randomEndTime">Random end time</param>
 /// <param name="randomTime">Enable random time</param>
 /// <param name="randomStartTimeBefore">Indicate if random start time will be added before or after normal start time</param>
 /// <param name="randomEndTimeBefore">Indicate if random end time will be added before or after normal end time</param>
 public Schedule(ScheduleTypes scheduleType,
                 DateTime startTime,
                 DateTime endTime,
                 DateTime randomStartTime,
                 DateTime randomEndTime,
                 bool randomTime,
                 bool randomStartTimeBefore,
                 bool randomEndTimeBefore) : this(scheduleType)
 {
     this.ScheduleType          = scheduleType;
     this.StartTime             = startTime;
     this.EndTime               = endTime;
     this.RandomTime_StartTime  = randomStartTime;
     this.RandomTime_EndTime    = randomEndTime;
     this.RandomTime            = randomTime;
     this.RandomStartTimeBefore = randomStartTimeBefore;
     this.RandomEndTimeBefore   = randomEndTimeBefore;
 }
예제 #8
0
        private int GetFreeIdForType(ScheduleTypes type)
        {
            using (var context = new PlansDc(ConfigurationManager.ConnectionStrings["Ester"].ConnectionString))
            {
                int minId = 0, maxId = 0;
                switch (type)
                {
                case ScheduleTypes.SKUD:
                    minId = (int)ScheduleClass.MinScudTypeNumber;
                    maxId = (int)ScheduleClass.MaxScudTypeNumber;
                    break;

                case ScheduleTypes.Heat:
                    minId = (int)ScheduleClass.MinHeatTypeNumber;
                    maxId = (int)ScheduleClass.MaxHeatTypeNumber;
                    break;

                case ScheduleTypes.Light:
                    minId = (int)ScheduleClass.MinLightTypeNumber;
                    maxId = (int)ScheduleClass.MaxLightTypeNumber;
                    break;

                case ScheduleTypes.AC:
                    minId = (int)ScheduleClass.MinACTypeNumber;
                    maxId = (int)ScheduleClass.MaxACTypeNumber;
                    break;

                case ScheduleTypes.Ventilation:
                    minId = (int)ScheduleClass.MinVentialtionTypeNumber;
                    maxId = (int)ScheduleClass.MaxVentialtionTypeNumber;
                    break;
                }
                var schedules = context.Schedules.Where(s => s.ObjectId >= minId && s.ObjectId <= maxId).ToList();
                for (var i = minId; i <= maxId; i++)
                {
                    if (schedules.All(s => s.ObjectId != i))
                    {
                        return(i);
                    }
                }
                return(0);
            }
        }
예제 #9
0
 public void SetType(ScheduleTypes scheduleType)
 {
     if (scheduleType == ScheduleTypes.SKUD)
     {
         Id = (int)MaxScudTypeNumber;
     }
     if (scheduleType == ScheduleTypes.Heat)
     {
         Id = (int)MaxHeatTypeNumber;
     }
     if (scheduleType == ScheduleTypes.Ventilation)
     {
         Id = (int)MaxVentialtionTypeNumber;
     }
     if (scheduleType == ScheduleTypes.Light)
     {
         Id = (int)MaxLightTypeNumber;
     }
     if (scheduleType == ScheduleTypes.AC)
     {
         Id = (int)MaxACTypeNumber;
     }
 }
예제 #10
0
        public static double DefaultValue(this ScheduleTypes val)
        {
            switch (val)
            {
            case ScheduleTypes.SKUD:
                return(0.0);

            case ScheduleTypes.Light:
                return(0);

            case ScheduleTypes.Heat:
                return(21.0);

            case ScheduleTypes.Ventilation:
                return(0);

            case ScheduleTypes.AC:
                return(0);

            default:
                throw new ArgumentOutOfRangeException("val");
            }
        }
예제 #11
0
 public void SetScheduleTime(DateTime?scheduleDate, ScheduleTypes scheduleType)
 {
     ScheduleDate = scheduleDate;
     ScheduleType = scheduleType;
 }
예제 #12
0
 public PlayFabNotificationPackage(string message, string title = null, int id = 0, DateTime?scheduleDate = null, ScheduleTypes scheduleType = ScheduleTypes.None, string customData = null)
 {
     Message = message;
     Title   = title;
     Id      = id;
     SetScheduleTime(scheduleDate, scheduleType);
     CustomData = customData;
 }
예제 #13
0
 public void SetType(ScheduleTypes scheduleType)
 {
     if (scheduleType == ScheduleTypes.SKUD) Id = (int)MaxScudTypeNumber;
     if (scheduleType == ScheduleTypes.Heat) Id = (int)MaxHeatTypeNumber;
     if (scheduleType == ScheduleTypes.Ventilation) Id = (int)MaxVentialtionTypeNumber;
     if (scheduleType == ScheduleTypes.Light) Id = (int)MaxLightTypeNumber;
     if (scheduleType == ScheduleTypes.AC) Id = (int)MaxACTypeNumber;
 }
예제 #14
0
	    private int GetFreeIdForType(ScheduleTypes type)
	    {
		    using (var context = new EsterClassesDataContext())
		    {
			    int minId = 0, maxId = 0;
			    switch (type)
			    {
					case ScheduleTypes.SKUD:
					    minId = (int) ScheduleClass.MinScudTypeNumber;
					    maxId = (int) ScheduleClass.MaxScudTypeNumber;
						break;
					case ScheduleTypes.Heat:
						minId = (int) ScheduleClass.MinHeatTypeNumber;
					    maxId = (int) ScheduleClass.MaxHeatTypeNumber;						
						break;
					case ScheduleTypes.Light:
						minId = (int) ScheduleClass.MinLightTypeNumber;
					    maxId = (int) ScheduleClass.MaxLightTypeNumber;
						break;
					case ScheduleTypes.AC:
						minId = (int) ScheduleClass.MinACTypeNumber;
					    maxId = (int) ScheduleClass.MaxACTypeNumber;
						break;
					case ScheduleTypes.Ventilation:
					    minId = (int) ScheduleClass.MinVentialtionTypeNumber;
					    maxId = (int) ScheduleClass.MaxVentialtionTypeNumber;
						break;
				}
				var schedules = context.Schedules.Where(s => s.ObjectId >= minId && s.ObjectId <= maxId).ToList();
				for (var i = minId; i <= maxId; i++)
					if (schedules.All(s => s.ObjectId != i))
						return i;
			    return 0;
		    }
	    }
 /// <summary>
 /// Initialize the state machine
 /// </summary>
 public WateringStateMachine(int zone)
 {
     CurrentState = GreenhouseState.WAITING_FOR_DATA;
     ScheduleType = ScheduleTypes.CONSTANT;
     Zone         = zone;
 }