Example #1
0
        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];
                }
            }
        }
Example #2
0
        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());
        }