private void ConnectToBand() { if(_band != null) { //Don't try to connect twice return; } _band = new Band.Band(); _band.ConnectionStateChanged += (s, e) => { BandConnectionArrow.SetConnectionStatus(e.NewState); if(e.NewState == Band.ConnectionState.Connected) { CalibrateButton.Enabled = true; BandConnected(); } }; _band.StartConnecting(); }
public override void ViewDidLoad () { base.ViewDidLoad (); _calibrationData = SharedSettings.GetCalibrationData (); UpdateUI (); _band = new Band.Band (); var acc = _band.GetAccelerometer (); acc.ReadingChanged += (sender, e) => { _calibrationData.Calibrated = true; AccelXMeter.Progress = (float)(e.SensorReading.AccelerationX / 5); AccelYMeter.Progress = (float)(e.SensorReading.AccelerationY / 5); AccelZMeter.Progress = (float)(e.SensorReading.AccelerationZ / 5); if(e.SensorReading.AccelerationX > xMax) xMax = e.SensorReading.AccelerationX; if(e.SensorReading.AccelerationY > yMax) yMax = e.SensorReading.AccelerationY; if(e.SensorReading.AccelerationZ > zMax) zMax = e.SensorReading.AccelerationZ; var currMax = Enumerable.Max(new []{xMax, yMax, zMax}); if(_calibrationData.CalibrationValue <= currMax) { _calibrationData.CalibrationValue = currMax; if(xMax > Math.Max(yMax, zMax)) _calibrationData.CalibrationAxis = AccelerometerAxis.X; else if(yMax > Math.Max(xMax, zMax)) _calibrationData.CalibrationAxis = AccelerometerAxis.Y; else _calibrationData.CalibrationAxis = AccelerometerAxis.Z; UpdateUI(); } }; acc.StartReadings (); }