示例#1
0
        public IBsSmReply32Data Build()
        {
            int  targetTemperatureInsideTheCabin = (_replyBytes[3] & 0x0F) - 2;
            int  fanSpeedLevel    = _replyBytes[3] & 0x18;
            bool isWarmFloorOn    = (_replyBytes[3] & 0x20) == 0x20;
            uint astronomicTime   = (uint)(_replyBytes[4] + _replyBytes[5] * 256 + _replyBytes[6] * 65536 + _replyBytes[7] * 16777216);   // TODO: improve converting
            uint delayedStartTime = (uint)(_replyBytes[8] + _replyBytes[9] * 256 + _replyBytes[10] * 65536 + _replyBytes[11] * 16777216); // TODO: improve converting

            int temperatureOutdoor = _replyBytes[12];
            int temperatureIndoor  = _replyBytes[13] & 0x0F;
            var climatMode         = new Shared.BsSm.ClimaticSystemWorkModeBuilderFromInt((_replyBytes[13] & 0xF0) >> 4).Build();
            var wm = new Shared.BsSm.WorkModeReplyBuilderFromByte(_replyBytes[14]).Build();

            Shared.BsSm.State.IBsSmState bsSmState = new Shared.BsSm.State.BuilderFromByte(_replyBytes[15]).Build();
            int bsSmVersionNumber = _replyBytes[16];

            return(new BsSmReply32DataSimple(
                       targetTemperatureInsideTheCabin,
                       fanSpeedLevel,
                       isWarmFloorOn,
                       UnixTimeStampToDateTime(astronomicTime),
                       delayedStartTime,
                       temperatureOutdoor,
                       temperatureIndoor,
                       climatMode,
                       wm,
                       bsSmState,
                       bsSmVersionNumber
                       ));
        }
示例#2
0
        public Contracts.IBsSmAndKsm1DataCommand32Reply Build()
        {
            uint astronomicTime   = (uint)(_replyBytes[3] + _replyBytes[4] * 256 + _replyBytes[5] * 65536 + _replyBytes[6] * 16777216);  // TODO: improve converting
            uint delayedStartTime = (uint)(_replyBytes[7] + _replyBytes[8] * 256 + _replyBytes[9] * 65536 + _replyBytes[10] * 16777216); // TODO: improve converting

            int  temperatureOutdoor = _replyBytes[11];
            int  carType            = _replyBytes[12] & 0x0F;
            bool doorsAreOpen       = (_replyBytes[12] & 0b0001_0000) > 0;
            int  reserve13D5D7      = (_replyBytes[12] & 0b1110_0000) >> 5;


            int targetTemperatureInsideTheCabin = (_replyBytes[13] & 0x0F) - 2;
            var climaticSystemWorkmode14D4D7    = new Shared.BsSm.ClimaticSystemWorkModeBuilderFromInt((_replyBytes[13] & 0xF0) >> 4).Build();

            var workModeAndCompressorSwitch = new Shared.BsSm.WorkModeReplyBuilderFromByte(_replyBytes[14]).Build();

            int allowedPowerConsuptionBy380Vline = _replyBytes[15];

            int reserve17 = _replyBytes[16];
            int reserve18 = _replyBytes[17];

            var ksm2Request = new BsSmAndKsm1DataCommand32RequestBuilderFromCommandPartDataBytes(_replyBytes.Skip(15).ToList()).Build();

            Shared.BsSm.State.IBsSmState contract = new Shared.BsSm.State.BuilderFromByte(_replyBytes[40]).Build();
            int bsSmVersionNumber = _replyBytes[41];

            int reserve43 = _replyBytes[42];
            int reserve44 = _replyBytes[43];
            int reserve45 = _replyBytes[44];

            return(new SimpleRelease.BsSmAndKsm1DataCommand32ReplySimple(
                       UnixTimeStampToDateTime(astronomicTime),
                       delayedStartTime,
                       temperatureOutdoor,
                       carType,
                       doorsAreOpen,
                       reserve13D5D7,
                       targetTemperatureInsideTheCabin,
                       climaticSystemWorkmode14D4D7,
                       workModeAndCompressorSwitch,
                       allowedPowerConsuptionBy380Vline,
                       reserve17,
                       reserve18,
                       ksm2Request,
                       contract,
                       bsSmVersionNumber,
                       reserve43,
                       reserve44,
                       reserve45
                       ));
        }