コード例 #1
0
        public MowController(
            IMowControlConfig config,
            IPowerSwitch powerSwitch,
            IWeatherForecast weatherForecast,
            ISystemTime systemTime,
            IHomeSensor homeSensor,
            IMowLogger logger,
            IRainSensor rainSensor,
            bool?mowerIsHome = null)
        {
            Config          = config;
            PowerSwitch     = powerSwitch;
            WeatherForecast = weatherForecast;
            SystemTime      = systemTime;
            HomeSensor      = homeSensor;
            Logger          = logger;
            RainSensor      = rainSensor;

            if (mowerIsHome.HasValue)
            {
                _mowerIsHome = mowerIsHome.Value;
            }
            else
            {
                _mowerIsHome = HomeSensor.IsHome;
            }
        }
コード例 #2
0
        public LogAnalyzer(IMowLogger logger, bool homeFromStart)
        {
            _logger = logger;
            _mowingTimePerDayList       = new List <TimePerDayItem>();
            _actualMowingTimePerDayList = new List <TimePerDayItem>();
            _mowerAwayList = new List <TimePerDayItem>();

            IsLost   = false;
            IsMowing = false;
            IsHome   = homeFromStart;
            _isAway  = !homeFromStart;
            IsStuck  = false;

            if (!homeFromStart)
            {
                var startTime = _logger.LogItems.First(x => x.Type == LogType.MowControllerStarted).Time;
                LastMowerLeftTime           = new DateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, startTime.Minute, 0);
                LastActualMowingStartedTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, startTime.Minute, 0);
            }

            if (_logger != null)
            {
                PerformLogAnalyzis();
            }
        }