private void InitializeDaysFromDeviceData(byte[] deviceData) { if (deviceData.Length != 1536) { throw new Exception("3.Чтение данных из устройства завершилось с ошибкой."); } for (int i = 0; i < this.MonthCollection.Count; i++) { string monthName = this._mothNames[i]; int monthStartIndex = MONTH_LENGHT_INDEX * i; IDaySheduleViewModel economyDaySheduleViewModel = this._monthsCollection[monthName].Last(); economyDaySheduleViewModel.StartHour = deviceData[monthStartIndex + 1]; economyDaySheduleViewModel.StartMinute = deviceData[monthStartIndex]; economyDaySheduleViewModel.StopHour = deviceData[monthStartIndex + 3]; economyDaySheduleViewModel.StopMinute = deviceData[monthStartIndex + 2]; for (int j = 0; j < this._monthsLenghtDictionary[monthName]; j++) { int dayStartIndex = monthStartIndex + j * DAY_LENGHT_INDEX; this._monthsCollection[monthName][j].StartHour = deviceData[dayStartIndex + 5]; this._monthsCollection[monthName][j].StartMinute = deviceData[dayStartIndex + 4]; this._monthsCollection[monthName][j].StopHour = deviceData[dayStartIndex + 7]; this._monthsCollection[monthName][j].StopMinute = deviceData[dayStartIndex + 6]; } } }
private byte[] GetDeviceDataFromView() { byte[] result = new byte[1536]; for (int i = 0; i < this.MonthCollection.Count; i++) { string monthName = this._mothNames[i]; int monthStartIndex = MONTH_LENGHT_INDEX * i; IDaySheduleViewModel economyDaySheduleViewModel = this._monthsCollection[monthName].Last(); result[monthStartIndex + 1] = (byte)economyDaySheduleViewModel.StartHour; result[monthStartIndex] = (byte)economyDaySheduleViewModel.StartMinute; result[monthStartIndex + 3] = (byte)economyDaySheduleViewModel.StopHour; result[monthStartIndex + 2] = (byte)economyDaySheduleViewModel.StopMinute; for (int j = 0; j < this._monthsLenghtDictionary[monthName]; j++) { int dayStartIndex = monthStartIndex + j * DAY_LENGHT_INDEX; result[dayStartIndex + 5] = (byte)this._monthsCollection[monthName][j].StartHour; result[dayStartIndex + 4] = (byte)this._monthsCollection[monthName][j].StartMinute; result[dayStartIndex + 7] = (byte)this._monthsCollection[monthName][j].StopHour; result[dayStartIndex + 6] = (byte)this._monthsCollection[monthName][j].StopMinute; } } List <byte> resAsHex = ConvertFromIntAsDecToIntAsHex(result); return(resAsHex.ToArray()); }