Esempio n. 1
0
        public BoardAreaViewModel(BoardArea boardArea)
        {
            BoardArea = boardArea;

            this.WhenAnyValue(vm => vm.PartNumberLength,
                              vm => vm.SerialNumberLength,
                              vm => vm.ProductNameLength,
                              vm => vm.ManuNameLength,
                              vm => vm.FruFileIDLength)
            .Subscribe(x =>
            {
                int length        = (x.Item1 + x.Item2 + x.Item3 + x.Item4 + x.Item5 + 5 + 6 + 1);
                BoardArea.padding = (8 - (length % 8));
                Length            = length + BoardArea.padding; // add padding to length
            });

            this.WhenAnyValue(vm => vm.ManufacturerDateTime).Subscribe(mdt =>
            {
                ManufacturerTime = (int)(mdt.ToUniversalTime() - Hel.timeStartOffset).TotalMinutes;
            });

            this.WhenAnyValue(vm => vm.ManuName, vm => vm.ManuNameType).Subscribe(name =>
            {
                ManuNameLength = ManuName.Length;
            });

            this.WhenAnyValue(vm => vm.ProductName, vm => vm.ProductNameType).Subscribe(name =>
            {
                ProductNameLength = ProductName.Length;
            });

            this.WhenAnyValue(vm => vm.PartNumber, vm => vm.PartNumberType).Subscribe(name =>
            {
                PartNumberLength = PartNumber.Length;
            });

            this.WhenAnyValue(vm => vm.SerialNumber, vm => vm.SerialNumberType).Subscribe(name =>
            {
                SerialNumberLength = SerialNumber.Length;
            });

            this.WhenAnyValue(vm => vm.FruFileID, vm => vm.FruFileIDType).Subscribe(name =>
            {
                FruFileIDLength = FruFileID.Length;
            });

            var ob1 = this.WhenAnyValue(vm => vm.PartNumber,
                                        vm => vm.SerialNumber,
                                        vm => vm.ProductName,
                                        vm => vm.ManuName,
                                        vm => vm.FruFileID);


            var ob2 = this.WhenAnyValue(vm => vm.ManufacturerTime,
                                        vm => vm.ManuNameType,
                                        vm => vm.SerialNumberType,
                                        vm => vm.ProductNameType,
                                        vm => vm.FruFileIDType,
                                        vm => vm.PartNumberType);

            ob1.CombineLatest(ob2).Subscribe(_ =>
            {
                var b    = BoardArea.GetBoardAreaBytes();
                Checksum = b.Last();
                Bytes    = BitConverter.ToString(b.ToArray());
            });

            GenerateBytes = ReactiveCommand.Create(BoardArea.GetBoardAreaBytes, Observable.Return(true));
            GenerateBytes.Subscribe(result =>
            {
                Debug.WriteLine(result);
                Bytes = "0x" + BitConverter.ToString(result.ToArray()).Replace("-", " 0x");
            });

            Bytes = "hello";
        }