Exemplo n.º 1
0
 public SensorErrorTests()
 {
     registry     = new SensorRegistry();
     peakyService = new PeakyService(
         configureServices: s => s.AddSingleton(registry));
     apiClient  = peakyService.CreateHttpClient();
     sensorName = Any.AlphanumericString(10, 20);
 }
Exemplo n.º 2
0
        public void When_registered_sensor_is_a_method_then_name_is_derived_from_its_name()
        {
            var registry = new SensorRegistry {
                SensorNameTester
            };

            registry.Count(s => s.Name == "SensorNameTester").Should().Be(1);
        }
Exemplo n.º 3
0
        public SensorRoutingTests()
        {
            registry = new SensorRegistry(DiagnosticSensor.DiscoverSensors());

            var peaky = new PeakyService(configureServices: s => s.AddSingleton(registry));

            apiClient = peaky.CreateHttpClient();

            sensorName = Any.AlphanumericString(10, 20);
        }
Exemplo n.º 4
0
        public override void SetRegistry(SensorRegistry registry)
        {
            base.SetRegistry(registry);

            try{
                this.stoich = double.Parse(registry.VehicleParameters["stoich"], UnitsConverter.DefaultNumberFormat);
            }catch (Exception e) {
                Logger.info("LitersPerHourSensor", "Using default stoich ratio", e);
            }
        }
Exemplo n.º 5
0
        public void When_registered_sensor_is_a_method_then_DeclaringType_is_the_containing_type()
        {
            var registry = new SensorRegistry {
                StaticTestSensors.ExceptionSensor
            };

            var sensor = registry.Single(s => s.Name == "ExceptionSensor");

            sensor.DeclaringType.Should().Be(typeof(StaticTestSensors));
        }
Exemplo n.º 6
0
        public override void SetRegistry(SensorRegistry registry)
        {
            base.SetRegistry(registry);

            try{
                this.cylinders = int.Parse(registry.VehicleParameters["cylinders"]);
            }catch (Exception) {}
            try{
                this.injectorccpm = double.Parse(registry.VehicleParameters["injector-ccpm"], UnitsConverter.DefaultNumberFormat);
            }catch (Exception) {}
        }
Exemplo n.º 7
0
        public override void SetRegistry(SensorRegistry registry)
        {
            base.SetRegistry(registry);

            try{
            this.cylinders = int.Parse(registry.VehicleParameters["cylinders"]);
            }catch(Exception){}
            try{
            this.injectorccpm = double.Parse(registry.VehicleParameters["injector-ccpm"], UnitsConverter.DefaultNumberFormat);
            }catch(Exception){}
        }
Exemplo n.º 8
0
        public void When_a_sensor_does_not_return_a_Task_then_its_IsAsync_Property_returns_false()
        {
            var sensorName = Any.Paragraph(5);
            var registry   = new SensorRegistry {
                { () => "hi!", sensorName }
            };

            var sensor = registry.Single(s => s.Name == sensorName);

            sensor.IsAsync.Should().BeFalse();
        }
Exemplo n.º 9
0
        public void When_a_sensor_returns_a_Task_then_its_IsAsync_Property_returns_true()
        {
            var sensorName = Any.Paragraph(5);
            var registry   = new SensorRegistry {
                { AsyncTask, sensorName }
            };

            var sensor = registry.Single(s => s.Name == sensorName);

            sensor.IsAsync.Should().BeTrue();
        }
Exemplo n.º 10
0
        public override void SetRegistry(SensorRegistry registry)
        {
            base.SetRegistry(registry);

            try{
                this.stoich       = double.Parse(registry.VehicleParameters["stoich"], UnitsConverter.DefaultNumberFormat);
                this.displacement = double.Parse(registry.VehicleParameters["liters"], UnitsConverter.DefaultNumberFormat);
                this.ve           = double.Parse(registry.VehicleParameters["volumetric-efficiency"], UnitsConverter.DefaultNumberFormat);
            }catch (Exception) {
                Logger.info("LitersPerHourSensor", "Using default displacement and VE ratio");
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Invoked when the application is launched normally by the end user.  Other entry points
        /// will be used such as when the application is launched to open a specific file.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override void OnLaunched(LaunchActivatedEventArgs e)
        {
            this.DeviceWatcher = new CurrentSensorDeviceWatcher();

            object sensorRegistryData = null;

            if (Windows.Storage.ApplicationData.Current.LocalSettings.Values.TryGetValue("SensorRegistry", out sensorRegistryData))
            {
                this.SensorRegistry = SensorRegistry.DeserializeOrDefault(sensorRegistryData as string ?? "");
            }
            else
            {
                this.SensorRegistry = new SensorRegistry();
            }

            this.PowerDistribution       = new PowerDistribution(this.SensorRegistry);
            this.PowerDistributionLogger = new PowerDistributionLogger(this.PowerDistribution);

            this.ViewSettings = new ViewSettings();

            ApplicationView.GetForCurrentView().TryResizeView(new Size(800, 480));

            Frame rootFrame = Window.Current.Content as Frame;

            // Do not repeat app initialization when the Window already has content,
            // just ensure that the window is active
            if (rootFrame == null)
            {
                // Create a Frame to act as the navigation context and navigate to the first page
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;

                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: Load state from previously suspended application
                }

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }

            if (rootFrame.Content == null)
            {
                // When the navigation stack isn't restored navigate to the first page,
                // configuring the new page by passing required information as a navigation
                // parameter
                rootFrame.Navigate(typeof(MainPage), e.Arguments);
            }
            // Ensure the current window is active
            Window.Current.Activate();
        }
Exemplo n.º 12
0
        public async Task When_registered_sensor_is_anonymous_then_DeclaringType_is_the_containing_type()
        {
            var newGuid = Guid.NewGuid();

            var registry = new SensorRegistry {
                () => newGuid
            };

            var sensorsWithReadings = await Task.WhenAll(
                registry.Select(async s => (s, await s.Read())));

            var sensor = sensorsWithReadings.Single(s => s.Item2.Value.Equals(newGuid));

            sensor.Item1.DeclaringType.Should().Be(GetType());
        }
Exemplo n.º 13
0
        public async Task When_registered_sensor_is_anonymous_then_default_name_is_derived_from_method_doing_registration()
        {
            var newGuid = Guid.NewGuid();

            var registry = new SensorRegistry {
                () => newGuid
            };

            var sensorsWithReadings = await Task.WhenAll(
                registry.Select(async s => (s, await s.Read())));

            var sensor = sensorsWithReadings.Single(s => s.Item2.Value.Equals(newGuid)).Item1;

            sensor.Name.Should().Contain(nameof(When_registered_sensor_is_anonymous_then_default_name_is_derived_from_method_doing_registration));
        }
Exemplo n.º 14
0
        public async Task Sensors_can_be_registered_at_runtime()
        {
            var sensorName = nameof(Sensors_can_be_registered_at_runtime);
            var registry   = new SensorRegistry {
                { () => "hello", sensorName }
            };

            var sensor = registry.Single(s => s.Name == sensorName);

            sensor.DeclaringType.Should().Be(GetType());
            sensor.ReturnType.Should().Be(typeof(string));
            var reading = await sensor.Read();

            reading.Value.Should().Be("hello");
        }
Exemplo n.º 15
0
        public override void SetRegistry(SensorRegistry registry)
        {
            base.SetRegistry(registry);

            try{
                this.engine_load_coeff = double.Parse(registry.VehicleParameters["engine-load-coeff"], UnitsConverter.DefaultNumberFormat);
            }catch (Exception) {
                Logger.info("LitersPerHourSensor", "Using default coefficient");
            }

            if (registry.VehicleParameters.ContainsKey("rpm-consumption-coeff"))
            {
                default_matrix = registry.VehicleParameters["rpm-consumption-coeff"];
            }
            if (default_matrix.Length > 1)
            {
                rpm_matrix = default_matrix
                             .Split(new char[] { ',', ' ' })
                             .Where(v => v != "")
                             .Select(v => double.Parse(v, UnitsConverter.DefaultNumberFormat)).ToArray();
                rpm_step = 10000 / rpm_matrix.Length;
            }
        }