Esempio n. 1
0
        private void GetValue()
        {
            try
            {
                var arduinoBytes = new byte[10];
                _device.Read(arduinoBytes);

                var sonarWidth = (ushort)(arduinoBytes[0] << 8 | arduinoBytes[1]);

                //var adcReading1 = (ushort)(arduinoBytes[2] << 8 | arduinoBytes[3]);
                //var adcReading2 = (ushort)(arduinoBytes[4] << 8 | arduinoBytes[5]);
                //var adcReading3 = (ushort)(arduinoBytes[6] << 8 | arduinoBytes[7]);
                //var adcReading4 = (ushort)(arduinoBytes[8] << 8 | arduinoBytes[9]);

                ProximityReceived?.Invoke(this, new ProximtyEventArgs
                {
                    RawValue  = sonarWidth,
                    Proximity = Math.Max(0, ((sonarWidth / 2d) / 2.91d) - 0.5d) //The sensors are about 5mm inside the casing of the device.
                });
            }
            catch (Exception ex)
            {
                SensorException?.Invoke(this, new ExceptionEventArgs
                {
                    Exception = ex,
                    Message   = "An error occurred reading values from Arduino Sensor Device"
                });
            }
        }
        private void _simulatorTimer_Tick(ThreadPoolTimer timer)
        {
            var random = new Random();

            ProximityReceived?.Invoke(this, new ProximtyEventArgs
            {
                RawValue = random.Next(2000, 2500)
            });

            AmbientLightReceived?.Invoke(this, new AmbientLightEventArgs
            {
                RawValue = random.Next(150, 500)
            });
        }
Esempio n. 3
0
        private Task TakeProximityMeasurements()
        {
            var proxTask = Task.Factory.StartNew(() =>
            {
                var rawProximity  = RawProximity;
                var proximityArgs = new ProximtyEventArgs
                {
                    RawValue  = rawProximity,
                    Proximity = _proximityConverter.GetDistance(rawProximity)
                };
                ProximityReceived?.Invoke(this, proximityArgs);
            });

            return(proxTask);
        }