示例#1
0
        private void EnsureSensorsCreated()
        {
            IBandSensorManager sensorMgr = Model.Instance.Client.SensorManager;

            if (accelerometerSensor == null)
            {
                accelerometerSensor = sensorMgr.CreateAccelerometerSensor();
                accelerometerSensor.ReadingChanged += async(sender, e) =>
                {
                    var accelerometerEvent = e.SensorReading;

                    //if(Math.Abs(accelerometerEvent.AccelerationX) > 3) xCount++;
                    if (Math.Abs(accelerometerEvent.AccelerationY) > 3)
                    {
                        yCount++;
                    }
                    if (Math.Abs(accelerometerEvent.AccelerationZ) > 3)
                    {
                        zCount++;
                    }

                    // rudimentary shake detection
                    //if (xCount > 2
                    if (yCount > 2 &&
                        zCount > 2)
                    {
                        // wait 20 seconds below allowing a new answer
                        if (DateTime.Now.Subtract(lastAnswered).TotalSeconds > 20)
                        {
                            xCount       = yCount = zCount = 0;
                            lastAnswered = DateTime.Now;
                            lastAnswer   = Get8BallPrediction();

                            await Model.Instance.Client.NotificationManager.SendMessageTaskAsync(
                                uuid,
                                "8Ball says...",
                                lastAnswer,
                                DateTime.Now,
                                MessageFlags.ShowDialog);
                        }
                    }
                    this.RunOnUiThread(() =>
                    {
//							accelX.Text = string.Format("{0:F3}", accelerometerEvent.AccelerationX);
//							accelY.Text = string.Format("{0:F3}", accelerometerEvent.AccelerationY);
//							accelZ.Text = string.Format("{0:F3}", accelerometerEvent.AccelerationZ);

                        accelZ.Text = xCount + " " + yCount + " " + zCount + " (x,y,x) only (y,z) count";

                        resultText.Text = lastAnswer;
                    });
                };
            }
        }
示例#2
0
        public static Task <bool> RequestHeartRateConsentTaskAsync(this IBandSensorManager sensorManager, Activity activity)
        {
            var t = new TaskCompletionSource <bool>();

            if (sensorManager.CurrentHeartRateConsent == UserConsent.Granted)
            {
                t.SetResult(true);
            }
            else
            {
                sensorManager.RequestHeartRateConsentAsync(activity, result =>
                {
                    t.SetResult(result);
                });
            }
            return(t.Task);
        }
 public static AmbientLightSensor CreateAmbientLightSensor(this IBandSensorManager sensorManager)
 {
     return(new AmbientLightSensor(sensorManager));
 }
 public static AltimeterSensor CreateAltimeterSensor(this IBandSensorManager sensorManager)
 {
     return(new AltimeterSensor(sensorManager));
 }
 public static CaloriesSensor CreateCaloriesSensor(this IBandSensorManager sensorManager)
 {
     return(new CaloriesSensor(sensorManager));
 }
 public GyroscopeSensor(IBandSensorManager sensorManager)
     : base(sensorManager)
 {
 }
示例#7
0
 public CaloriesSensor(IBandSensorManager sensorManager)
     : base(sensorManager)
 {
 }
 public UVSensor(IBandSensorManager sensorManager)
     : base(sensorManager)
 {
 }
示例#9
0
 public ContactSensor(IBandSensorManager sensorManager)
     : base(sensorManager)
 {
 }
示例#10
0
 public BarometerSensor(IBandSensorManager sensorManager)
     : base(sensorManager)
 {
 }
示例#11
0
 public AccelerometerSensor(IBandSensorManager sensorManager)
     : base(sensorManager)
 {
     listener          = new IBandAccelerometerEventListenerImplementor(this);
     listener.Handler += (sender, e) => OnReadingChanged(e);
 }
示例#12
0
 public SkinTemperatureSensor(IBandSensorManager sensorManager)
     : base(sensorManager)
 {
     listener          = new IBandSkinTemperatureEventListenerImplementor(this);
     listener.Handler += (sender, e) => OnReadingChanged(e);
 }
示例#13
0
 public SkinTemperatureSensor(IBandSensorManager sensorManager)
     : base(sensorManager)
 {
 }
示例#14
0
        //
        // Sensor event handlers
        //
        private void EnsureSensorsCreated()
        {
            IBandSensorManager sensorMgr = Model.Instance.Client.SensorManager;

            if (accelerometerSensor == null)
            {
                accelerometerSensor = sensorMgr.CreateAccelerometerSensor();
                accelerometerSensor.ReadingChanged += (sender, e) =>
                {
                    Activity.RunOnUiThread(() =>
                    {
                        var accelerometerEvent = e.SensorReading;
                        mTextAccX.Text         = string.Format("{0:F3}", accelerometerEvent.AccelerationX);
                        mTextAccY.Text         = string.Format("{0:F3}", accelerometerEvent.AccelerationY);
                        mTextAccZ.Text         = string.Format("{0:F3}", accelerometerEvent.AccelerationZ);
                    });
                };
            }

            if (contactSensor == null)
            {
                contactSensor = sensorMgr.CreateContactSensor();
                contactSensor.ReadingChanged += (sender, e) =>
                {
                    Activity.RunOnUiThread(() =>
                    {
                        var contactEvent  = e.SensorReading;
                        mTextContact.Text = contactEvent.ContactStatus.ToString();
                    });
                };
            }

            if (distanceSensor == null)
            {
                distanceSensor = sensorMgr.CreateDistanceSensor();
                distanceSensor.ReadingChanged += (sender, e) =>
                {
                    Activity.RunOnUiThread(() =>
                    {
                        var distanceEvent       = e.SensorReading;
                        mTextTotalDistance.Text = string.Format("{0:D} cm", distanceEvent.TotalDistance);
                        mTextSpeed.Text         = string.Format("{0:F2} cm/s", distanceEvent.Speed);
                        mTextPace.Text          = string.Format("{0:F2} ms/m", distanceEvent.Pace);
                        mTextPedometerMode.Text = distanceEvent.PedometerMode.ToString();
                    });
                };
            }

            if (gyroscopeSensor == null)
            {
                gyroscopeSensor = sensorMgr.CreateGyroscopeSensor();
                gyroscopeSensor.ReadingChanged += (sender, e) =>
                {
                    Activity.RunOnUiThread(() =>
                    {
                        var gyroscopeEvent = e.SensorReading;
                        mTextGyroAccX.Text = string.Format("{0:F3}", gyroscopeEvent.AccelerationX);
                        mTextGyroAccY.Text = string.Format("{0:F3}", gyroscopeEvent.AccelerationY);
                        mTextGyroAccZ.Text = string.Format("{0:F3}", gyroscopeEvent.AccelerationZ);
                        mTextGyroAngX.Text = string.Format("{0:F2}", gyroscopeEvent.AngularVelocityX);
                        mTextGyroAngY.Text = string.Format("{0:F2}", gyroscopeEvent.AngularVelocityY);
                        mTextGyroAngZ.Text = string.Format("{0:F2}", gyroscopeEvent.AngularVelocityZ);
                    });
                };
            }

            if (heartRateSensor == null)
            {
                heartRateSensor = sensorMgr.CreateHeartRateSensor();
                heartRateSensor.ReadingChanged += (sender, e) =>
                {
                    Activity.RunOnUiThread(() =>
                    {
                        var heartRateEvent         = e.SensorReading;
                        mTextHeartRate.Text        = Convert.ToString(heartRateEvent.HeartRate);
                        mTextHeartRateQuality.Text = heartRateEvent.Quality.ToString();
                    });
                };
            }

            if (pedometerSensor == null)
            {
                pedometerSensor = sensorMgr.CreatePedometerSensor();
                pedometerSensor.ReadingChanged += (sender, e) =>
                {
                    Activity.RunOnUiThread(() =>
                    {
                        var pedometerEvent   = e.SensorReading;
                        mTextTotalSteps.Text = string.Format("{0:D}", pedometerEvent.TotalSteps);
                    });
                };
            }

            if (skinTemperatureSensor == null)
            {
                skinTemperatureSensor = sensorMgr.CreateSkinTemperatureSensor();
                skinTemperatureSensor.ReadingChanged += (sender, e) =>
                {
                    Activity.RunOnUiThread(() =>
                    {
                        var skinTemperatureEvent  = e.SensorReading;
                        mTextSkinTemperature.Text = string.Format("{0:F1}", skinTemperatureEvent.Temperature);
                    });
                };
            }

            if (uvSensor == null)
            {
                uvSensor = sensorMgr.CreateUVSensor();
                uvSensor.ReadingChanged += (sender, e) =>
                {
                    Activity.RunOnUiThread(() =>
                    {
                        var uvEvent           = e.SensorReading;
                        mTextUltraviolet.Text = uvEvent.UVIndexLevel.ToString();
                    });
                };
            }
        }