private void HandleTakeMeasurement()
        {
            // TODO: Implement measurement
            _temperature += 0.01;
            var message = new TemperatureMeasured(Math.Round(_temperature, 2));

            Context.Parent.Tell(message);
        }
示例#2
0
文件: DS18B20.cs 项目: valoni/NETMF44
        /// <summary>
        ///     Reads all DS18B20 Temperature Sensors on the OneWire Bus and raises the <see cref="TemperatureMeasured" /> event.
        /// </summary>
        /// <remarks>
        ///     With multiple DS18B20 devices on the OneWire Bus, the <seealso cref="TemperatureMeasured" /> event will only
        ///     be raised about every three seconds regardless if this method is called more often than every 3 seconnds.
        ///     This is due to the time it takes to poll the OneWire Bus with multiple devices.
        /// </remarks>
        public void ReadTemperature()
        {
            lock (Temperature.SyncRoot)
            {
                _list.Clear();
                Temperature.Clear();

                _list = _ow.FindAllDevices();

                if (_list.Count <= 0)
                {
                    return;
                }

                foreach (byte[] s in _list)
                {
                    Temperature.Add(s[0] + "-" + s[1] + "-" + s[2] + "-" + s[3] + "-" + s[4] + "-" + s[5] + "-" + s[6] + "-" + s[7], ReadTemperture(s));
                }

                TemperatureMeasured tempEvent = TemperatureEventFired;
                tempEvent(this, Temperature);
            }
        }
示例#3
0
 protected virtual void OnTemperatureMeasured(MeasureEventArgs e)
 {
     TemperatureMeasured?.Invoke(this, e);
 }