Example #1
0
        public override ValidationResult ParseMessageAndUpdateModel(byte[] message)
        {
            var result = new ValidationResult { Result = true, ValidationError = null };
            if ((VariableId)message[1] == VariableId.Read)
            {
                result = this.ParseIncomingValues(message.Skip(3).Take(5).ToArray());
            }

            return result;
        }
Example #2
0
        private ValidationResult ParseIncomingValues(byte[] values)
        {
            var result = new ValidationResult { Result = true, ValidationError = null };
            
            this.LedVoltage = (values[0] * 256) + values[1];
            this.LedVoltage = (this.LedVoltage / 1024) * 3.3 * 11;

            this.LedCurrent = (values[2] * 256) + values[3];
            this.LedCurrent = (this.LedCurrent / 1024) * 3.3 * 1000 / 7.5;
            
            return result;
        }
Example #3
0
        protected ValidationResult ParseIntervalOnHours(int dayNumber, byte[] value)
        {
            var result = new ValidationResult { Result = true, ValidationError = null };
            if (this.ValidateHours(value))
            {
                this.DailyProgramList[dayNumber - (int)VariableId.IntervalOnHourMonday].PeriodList[0].StartHour.Value = value[0];
                this.DailyProgramList[dayNumber - (int)VariableId.IntervalOnHourMonday].PeriodList[1].StartHour.Value = value[1];
                this.DailyProgramList[dayNumber - (int)VariableId.IntervalOnHourMonday].PeriodList[2].StartHour.Value = value[2];
                this.DailyProgramList[dayNumber - (int)VariableId.IntervalOnHourMonday].PeriodList[3].StartHour.Value = value[3];
                this.DailyProgramList[dayNumber - (int)VariableId.IntervalOnHourMonday].PeriodList[4].StartHour.Value = value[4];
                this.DailyProgramList[dayNumber - (int)VariableId.IntervalOnHourMonday].PeriodList[5].StartHour.Value = value[5];
            }
            else
            {
                result.Result = false;
                result.ValidationError = "Mesai içi ısıtıcı açık zaman bilgilerinde hatalı saat bilgisi alındı";
            }

            return result;
        }
        private ValidationResult ParseHeaterStatuses(byte[] value)
        {
            var result = new ValidationResult { Result = true, ValidationError = null };
            for (var i = 0; i < 8; i++)
            {
                var heaters = value[i];
                if (heaters < 64)
                {
                    var heater6 = heaters >= 32;
                    if (heaters >= 32) heaters -= 32;

                    var heater5 = heaters >= 16;
                    if (heaters >= 16) heaters -= 16;

                    var heater4 = heaters >= 8;
                    if (heaters >= 8) heaters -= 8;

                    var heater3 = heaters >= 4;
                    if (heaters >= 4) heaters -= 4;

                    var heater2 = heaters >= 2;
                    if (heaters >= 2) heaters -= 2;

                    var heater1 = heaters == 1;

                    this.ZoneList[i].HeaterList[0].IsOn.Value = heater1;
                    this.ZoneList[i].HeaterList[1].IsOn.Value = heater2;
                    this.ZoneList[i].HeaterList[2].IsOn.Value = heater3;
                    this.ZoneList[i].HeaterList[3].IsOn.Value = heater4;
                    this.ZoneList[i].HeaterList[4].IsOn.Value = heater5;
                    this.ZoneList[i].HeaterList[5].IsOn.Value = heater6;
                }
                else
                {
                    result.Result = false;
                    result.ValidationError = "Isıtıcı açık bilgisinin bulunduğu byte değerinde hata alındı";
                    break;
                }
            }

            for (var i = 8; i < 11; i++)
            {
                var heaters = value[i];
                if (heaters < 4)
                {
                    var heater2 = heaters >= 2;
                    if (heaters >= 2) heaters -= 2;

                    var heater1 = heaters == 1;

                    this.ZoneList[i].HeaterList[0].IsOn.Value = heater1;
                    this.ZoneList[i].HeaterList[1].IsOn.Value = heater2;
                }
                else
                {
                    result.Result = false;
                    result.ValidationError = "Isıtıcı açık bilgisinin bulunduğu byte değerinde hata alındı";
                    break;
                }
            }

            return result;
        }
        public override ValidationResult ParseMessageAndUpdateModel(byte[] message)
        {
            var result = new ValidationResult { Result = true, ValidationError = null };
            var messageParsed = false;
            switch ((VariableId)message[1])
            {
                case VariableId.DateTime:
                    result = this.ParseDateTime(message.Skip(3).Take(6).ToArray());
                    messageParsed = true;
                    break;
                case VariableId.HeaterStatus:
                    result = this.ParseHeaterStatuses(message.Skip(3).Take(11).ToArray());
                    messageParsed = true;
                    break;
                case VariableId.AutomaticSettings:
                    result = this.ParseAutomaticSettings(message.Skip(3).Take(11).ToArray(), 11);
                    messageParsed = true;
                    break;
                case VariableId.TemperatureActual:
                    result = this.ParseActualTemperatureValues(message.Skip(3).Take(11).ToArray(), 11);
                    messageParsed = true;
                    break;
                case VariableId.TemperatureWorkTimeSet:
                    result = this.ParseTemperatureWorkTimeSetValues(message.Skip(3).Take(11).ToArray(), 11);
                    messageParsed = true;
                    break;
                case VariableId.TemperatureOffTimeSet:
                    result = this.ParseTemperatureOffTimeSetValues(message.Skip(3).Take(11).ToArray(), 11);
                    messageParsed = true;
                    break;
                case VariableId.FrostControl:
                    result = this.ParseFrostControlSettings(message.Skip(3).Take(11).ToArray(), 11);
                    messageParsed = true;
                    break;
            }

            if (!messageParsed)
            {
                var variableId = message[1];
                if (variableId >= (int)VariableId.IntervalOnHourMonday && variableId <= (int)VariableId.IntervalOnHourSunday)
                {
                    result = this.ParseIntervalOnHours(variableId, message.Skip(3).Take(6).ToArray());
                }
                else if (variableId >= (int)VariableId.IntervalOnMinuteMonday && variableId <= (int)VariableId.IntervalOnMinuteSunday)
                {
                    result = this.ParseIntervalOnMinutes(variableId, message.Skip(3).Take(6).ToArray());
                }
                else if (variableId >= (int)VariableId.IntervalOffHourMonday && variableId <= (int)VariableId.IntervalOffHourSunday)
                {
                    result = this.ParseIntervalOffHours(variableId, message.Skip(3).Take(6).ToArray());
                }
                else if (variableId >= (int)VariableId.IntervalOffMinuteMonday && variableId <= (int)VariableId.IntervalOffMinuteSunday)
                {
                    result = this.ParseIntervalOffMinutes(variableId, message.Skip(3).Take(6).ToArray());
                }
            }

            return result;
        }
Example #6
0
        private ValidationResult ValidateInput()
        {
            var validationResult = new ValidationResult { Result = true, ValidationError = string.Empty };
            if (this.Username.Length < 4)
            {
                validationResult.Result = false;
                validationResult.ValidationError = "Kullanıcı adı en az 4 karakter olmalıdır";
                return validationResult;
            }

            if (this.Password.Length < 6)
            {
                validationResult.Result = false;
                validationResult.ValidationError = "Sisteme giriş şifresi en az 6 karakter olmalıdır";
                return validationResult;
            }

            if (!this.Password.Equals(this.PasswordRepeat))
            {
                validationResult.Result = false;
                validationResult.ValidationError = "Girmiş olduğunuz şifreler uyuşmamaktadır";
                return validationResult;
            }

            return validationResult;
        }
Example #7
0
        protected ValidationResult ParseFrostControlSettings(byte[] value, int zoneCount)
        {
            var result = new ValidationResult { Result = true, ValidationError = null };
            if (this.ValidateOnOffValues(value))
            {
                for (var i = 0; i < zoneCount; i++)
                {
                    this.ZoneList[i].IsFrostControl.Value = value[i] == 1;
                }
            }
            else
            {
                result.Result = false;
                result.ValidationError = "Don kontrol on off değerlerinde hata ile karşılaşıldı";
            }

            return result;
        }
Example #8
0
        protected ValidationResult ParseTemperatureOffTimeSetValues(byte[] value, int zoneCount)
        {
            var result = new ValidationResult { Result = true, ValidationError = null };

            if (this.ValidateValuesWithInterval(value, 1, 9))
            {
                for (var i = 0; i < zoneCount; i++)
                {
                    this.ZoneList[i].TemperatureOffTimeSet.Value = (sbyte)value[i];
                }
            }
            else
            {
                result.Result = false;
                result.ValidationError = "Bölge mesai dışı sıcaklık set değerlerinde hata ile karşılaşıldı";
            }

            return result;
        }
Example #9
0
        protected ValidationResult ParseDateTime(byte[] value)
        {
            var result = new ValidationResult { Result = true, ValidationError = null };

            var day = value[0];
            var month = value[1];
            var year = value[2];
            var dayOfWeek = value[3];
            var hour = value[4];
            var minute = value[5];

            if (day < 1 || day > 31)
            {
                result.Result = false;
                result.ValidationError = "Gün 1 - 31 aralığında değil";
            }
            else if (month < 1 || month > 12)
            {
                result.Result = false;
                result.ValidationError = "Ay 1 - 12 aralığında değil";
            }
            else if (year < 15 || year > 99)
            {
                result.Result = false;
                result.ValidationError = "Yıl 15 - 99 aralığında değil";
            }
            else if (dayOfWeek < 0 || dayOfWeek > 6)
            {
                result.Result = false;
                result.ValidationError = "Haftanın günü 0 - 6 aralığında değil";
            }
            else if (hour < 0 || hour > 23)
            {
                result.Result = false;
                result.ValidationError = "Saat 0 - 23 aralığında değil";
            }
            else if (minute < 0 || minute > 59)
            {
                result.Result = false;
                result.ValidationError = "Dakika 0 - 59 aralığında değil";
            }
            else
            {
                this.DeviceTime = new DateTime(2000 + year, month, day, hour, minute, 0);
                this.DeviceDay = (DayTr)dayOfWeek;
            }

            return result;
        }