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; }
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; }
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; }
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; }
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; }
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; }
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; }