示例#1
0
        public IObservable <double> WhenReadingTaken()
        {
            this.observable = this.observable ?? Observable.Create <double>(ob =>
            {
                var handler = new EventHandler <HumiditySensorDataUpdatedEventArgs>((sender, args) =>
                                                                                    ob.OnNext(args.Humidity)
                                                                                    );
                var sensor = new HumiditySensor
                {
                    Interval = 250
                };
                sensor.DataUpdated += handler;
                sensor.Start();

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

            return(this.observable);
        }
示例#2
0
 /// <summary>
 /// Stops sensor and unregisters the listener from a sensor
 /// </summary>
 /// <param name="listener">Event handler registered</param>
 public void Stop(EventHandler <SensorEventArgs> listener)
 {
     sensor.Stop();
     sensor.DataUpdated -= handler;
 }