Пример #1
0
        public void ShouldRestoreAuxilaryHeaterStatus_IfThereWasRestart_DuringAuxilaryHeaterWorking()
        {
            AuxilaryHeaterEmulator.Init(2000);
            Launcher.Launch(Launcher.LaunchMode.WPF);
            Settings.Instance.SuspendAuxilaryHeaterResponseEmulation = false;

            ManualResetEvent waitHandle = new ManualResetEvent(false);

            AuxilaryHeater.StatusChanged += (status) =>
            {
                if (status == AuxilaryHeaterStatus.Working)
                {
                    waitHandle.Set();
                }
            };

            IntegratedHeatingAndAirConditioning.StartAuxilaryHeater();
            bool result = waitHandle.Wait(5000);

            Assert.IsTrue(result);


            waitHandle.Reset();
            AuxilaryHeater.Status = AuxilaryHeaterStatus.Unknown;
            result = waitHandle.Wait(3000);
            Assert.IsTrue(result);
            Assert.IsTrue(AuxilaryHeater.Status == AuxilaryHeaterStatus.Working);
        }
Пример #2
0
        public MainWindow()
        {
            InitializeComponent();

            _viewModel  = new ViewModel();
            DataContext = _viewModel;

            InstrumentClusterElectronicsEmulator.Init();
            NavigationModuleEmulator.Init();
            AuxilaryHeaterEmulator.Init();
            RadioEmulator.Init();
            DigitalDieselElectronicsEmulator.Init();
            FrontDisplayEmulator.Init();
            HeadlightVerticalAimControlEmulator.Init();
            IntegratedHeatingAndAirConditioningEmulator.Init();
            VolumioEmulator.Init(_viewModel);

            Launcher.Launch(Launcher.LaunchMode.WPF);

            //AuxilaryHeaterEmulator.FirstMessageAfterWakeup();

            InstrumentClusterElectronics.IgnitionStateChanged += (e) =>
            {
                if (e.PreviousIgnitionState == IgnitionState.Acc && e.CurrentIgnitionState == IgnitionState.Ign)
                {
                    InstrumentClusterElectronicsEmulator.StartAnnounce();
                }

                if (e.PreviousIgnitionState == IgnitionState.Ign && e.CurrentIgnitionState == IgnitionState.Acc)
                {
                    InstrumentClusterElectronicsEmulator.StopAnnounce();
                }
            };

            Bordmonitor.ReplyToScreenUpdates = true;
            Bordmonitor.TextReceived        += Bordmonitor_TextReceived;
            FrontDisplayEmulator.LedChanged += FrontDisplayEmulator_LedChanged;
            InstrumentClusterElectronicsEmulator.OBCTextChanged += InstrumentClusterElectronicsEmulator_OBCTextChanged;

            //BordmonitorMenu.Instance.CurrentScreen = HomeScreen.Instance;

            Manager.Instance.AddMessageReceiverForSourceDevice(DeviceAddress.Radio, m =>
            {
                this.Dispatcher.Invoke(() =>
                {
                    if (m.Data.StartsWith(Radio.DataRadioOn))
                    {
                        EnableRadio();
                    }
                    if (m.Data.StartsWith(Radio.DataRadioOff))
                    {
                        DisableRadio();
                    }
                });
            });
#if !DebugOnRealDeviceOverFTDI
            //Launcher.emulator.IsEnabled = true;
#endif
        }
Пример #3
0
        public void ShouldStartAndStopAuxilaryHeater()
        {
            AuxilaryHeaterEmulator.Init(2000);
            Launcher.Launch(Launcher.LaunchMode.WPF);
            Settings.Instance.SuspendAuxilaryHeaterResponseEmulation = false;

            ManualResetEvent     waitHandle = new ManualResetEvent(false);
            AuxilaryHeaterStatus status1    = AuxilaryHeaterStatus.Unknown;
            AuxilaryHeaterStatus status2    = AuxilaryHeaterStatus.Unknown;
            AuxilaryHeaterStatus status3    = AuxilaryHeaterStatus.Unknown;

            AuxilaryHeater.StatusChanged += (status) =>
            {
                if (status == AuxilaryHeaterStatus.Starting)
                {
                    status1 = AuxilaryHeaterStatus.Starting;
                }

                if (status == AuxilaryHeaterStatus.Started)
                {
                    status2 = AuxilaryHeaterStatus.Started;
                }

                if (status == AuxilaryHeaterStatus.Working)
                {
                    status3 = AuxilaryHeaterStatus.Working;
                }

                if (status == AuxilaryHeaterStatus.Working)
                {
                    waitHandle.Set();
                }
            };

            IntegratedHeatingAndAirConditioning.StartAuxilaryHeater();
            bool result = waitHandle.Wait(5000);

            Assert.IsTrue(result);
            Assert.IsTrue(status1 == AuxilaryHeaterStatus.Starting);
            Assert.IsTrue(status2 == AuxilaryHeaterStatus.Started);
            Assert.IsTrue(status3 == AuxilaryHeaterStatus.Working);


            waitHandle.Reset();
            AuxilaryHeaterStatus status4 = AuxilaryHeaterStatus.Stopping;
            AuxilaryHeaterStatus status5 = AuxilaryHeaterStatus.Stopped;

            AuxilaryHeater.StatusChanged += (status) =>
            {
                if (status == AuxilaryHeaterStatus.Stopping)
                {
                    status4 = AuxilaryHeaterStatus.Stopping;
                }

                if (status == AuxilaryHeaterStatus.Stopped)
                {
                    status5 = AuxilaryHeaterStatus.Stopped;
                }

                if (status == AuxilaryHeaterStatus.Stopped)
                {
                    waitHandle.Set();
                }
            };

            IntegratedHeatingAndAirConditioning.StopAuxilaryHeater();
            result = waitHandle.Wait(3000);
            Assert.IsTrue(result);
            Assert.IsTrue(status4 == AuxilaryHeaterStatus.Stopping);
            Assert.IsTrue(status5 == AuxilaryHeaterStatus.Stopped);
        }