コード例 #1
0
        public IObservable <double> WhenReadingTaken()
        {
            this.observable = this.observable ?? Observable.Create <double>(ob =>
            {
                var handler = new EventHandler <LightSensorDataUpdatedEventArgs>((sender, args) =>
                                                                                 ob.OnNext(args.Level)
                                                                                 );
                var sensor = new LightSensor
                {
                    Interval = 250
                };
                sensor.DataUpdated += handler;
                sensor.Start();

                return(() =>
                {
                    sensor.Stop();
                    sensor.DataUpdated -= handler;
                    sensor.Dispose();
                });
            })
                              .Publish()
                              .RefCount();

            return(this.observable);
        }
コード例 #2
0
        public LightSensorExample()
        {
            var sensor = new LightSensor(Connectors.GPIO17);

            sensor.Start();
            Console.WriteLine("Light:");
            for (int i = 0; i < 500; i++)
            {
                Console.WriteLine(sensor.Brightness);
                Thread.Sleep(250);
            }
        }
コード例 #3
0
        /// <summary>
        /// Starts sensor and registers listener to a sensor
        /// </summary>
        /// <param name="listener">Event handler to listen sensor events</param>
        public void Start(EventHandler <SensorEventArgs> listener)
        {
            handler = (sender, e) =>
            {
                listener?.Invoke(this,
                                 new SensorEventArgs(new List <float>()
                {
                    e.Level
                }));
            };

            sensor.DataUpdated += handler;
            sensor.Start();
        }