private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { //============================================================================================== // Reference D4: Externally sourced program // Purpose: Steps counting Algorithm // Date: 05 Nov 2020 // Source: YouTube Video // Author: Programmer world // Url: https://www.youtube.com/watch?v=o-qpVefrfVA // Adaptation: Got the idea on how to calculate magnitude, //=============================================================================================== // Get the X,Y,Z Acceleration readings from the phone, and saving the, into variables as doubles float valueX = e.Reading.Acceleration.X; float valueY = e.Reading.Acceleration.Y; float valueZ = e.Reading.Acceleration.Z; // Calculates magnitude which represents the vibration on three axis coordinates (X,Y,Z) double currentMagnitude = Math.Sqrt((valueX * valueX) + (valueY * valueY) + (valueZ * valueZ)); // Calculates the difference between the current and the last magnitude & checks how much of those // coordinate calues went up or low double differenceMagnitude = currentMagnitude - lastMagnitude; lastMagnitude = currentMagnitude; // If the difference is greater than 4, Count that step as walking if (differenceMagnitude > 4) { stepCount++; walkingSteps++; } //=============================================================================================== // End reference D4 //=============================================================================================== // If the difference is greater than 6, Count that step as Running else if (differenceMagnitude > 6) { stepCount++; runningSteps++; } walkingCalories = walkingSteps * calorieBurntPerStep; // runningCalories = runningSteps * calorieBurntPerStep; lblSteps.Text = stepCount.ToString(); // Update steps (in circle) lblTotalSteps.Text = stepCount.ToString(); // Update total steps lblWalkSteps.Text = walkingSteps.ToString(); // Update walking steps done so far lblRunSteps.Text = runningSteps.ToString(); // Update running steps done so far lblWalkCalorie.Text = walkingCalories.ToString(); // Update calories burnt when walking lblRunCalorie.Text = runningCalories.ToString(); // Update calories burnt when running var copy = new PersonalData(); copy.MySteps = stepCount; }
void _analyzer_handle(object sender, AccelerometerChangedEventArgs e) { foreach (AnalyzerWrapper analyzer in _analyzerWrapers) { analyzer.ProcessAccelerometer(e.AccelerometerData); } }
void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; sensorData.accelX = data.Acceleration.X; sensorData.accelY = data.Acceleration.Y; sensorData.accelZ = data.Acceleration.Z; CalculateRotationVectors(); if (sensorData.pitch < -17 && CommandService.roverCommand.Left == 0) { CommandService.roverCommand.Left = 1; CommandService.roverCommand.Right = 0; CommandService.SendCommand(); } else if (sensorData.pitch < 7 && sensorData.pitch > -7 && (CommandService.roverCommand.Right == 1 || CommandService.roverCommand.Left == 1)) { CommandService.roverCommand.Left = 0; CommandService.roverCommand.Right = 0; CommandService.SendCommand(); } else if (sensorData.pitch > 17 && CommandService.roverCommand.Right == 0) { CommandService.roverCommand.Right = 1; CommandService.roverCommand.Left = 0; CommandService.SendCommand(); } //Debug.WriteLine("Pitch "+sensorData.pitch+" Roll "+sensorData.roll+" Yaw "+sensorData.yaw); }
private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; double remeberHeadX = currentPosition.X; double remeberHeadY = currentPosition.Y; currentPosition.X += -1 * data.Acceleration.X / 40; currentPosition.Y += data.Acceleration.Y / 40; if (checkHeadBounds()) { if (haveEaten()) { updateApples(); drawTail(new Coordinate(remeberHeadX, remeberHeadY), true); appleCount++; } else { drawTail(new Coordinate(remeberHeadX, remeberHeadY), false); } } else { stopGame(); resetSnake(); } LabelPos.Text = $"Apple count {appleCount}"; }
private void AccelerometerReadingChanged(object sender, AccelerometerChangedEventArgs e) { sensorX = e.Reading.Acceleration.X * 9.81f; sensorY = -e.Reading.Acceleration.Y * 9.81f; ManageSensorValues(); }
void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; Console.WriteLine($"Reading: X: {data.Acceleration.X}, Y: {data.Acceleration.Y}, Z: {data.Acceleration.Z}"); // Process Acceleration X, Y, and Z }
private void OnReadingChanged(object sender, AccelerometerChangedEventArgs e) { ReadingChanged?.Invoke(this, new AccelerometerChangeEventArgs() { X = e.Reading.Acceleration.X, Y = e.Reading.Acceleration.Y, Z = e.Reading.Acceleration.Z }); }
void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; var x = data.Acceleration.X; var y = data.Acceleration.Y; var z = data.Acceleration.Z; var position = CarouselViewer.Position; if (data.Acceleration.X > 0.1) { if (CarouselViewer.Position == images.Count - 1) { CarouselViewer.Position = 0; } else { CarouselViewer.Position = CarouselViewer.Position + 1; } } //else if (data.Acceleration.X > 0.3) //{ // if (CarouselViewer.Position == 0) // { // CarouselViewer.Position = images.Count - 1; // } // else // { // CarouselViewer.Position = CarouselViewer.Position - 1; // } //} }
private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; if (Math.Abs(data.Acceleration.Y) > 0.02) { if (Math.Abs(data.Acceleration.Y) > 150) { CallEmergency(); } Console.WriteLine($"IN REGULAR PROJ: Reading: X: {data.Acceleration.X}, Y: " + $"{data.Acceleration.Y}, Z: {data.Acceleration.Z}"); accelY = data.Acceleration.Y; accelY = data.Acceleration.Y; //actual acceleration in Y axis, measured in Gs //TrackingPage.AccelDisplay.Text = f.ToString("00.000"); AccelerationDataPoint point = new AccelerationDataPoint(); point.time = new DateTime(); point.accelY = accelY; App.Database.SaveItemAsync(point); Console.WriteLine($"Wrote {accelY} to database"); //return accelY; } //return 0.0; }
private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { Device.BeginInvokeOnMainThread(() => { circularGauge.Value = e.Reading.Acceleration.X; }); }
void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { if (!isLaunchedA) { var data = e.Reading; // Process Acceleration X, Y, and Z oldAccX = accX; oldAccY = accY; oldAccZ = accZ; accX = Convert(data.Acceleration.X); accY = Convert(data.Acceleration.Y); accZ = Convert(data.Acceleration.Z); computeDelta(); CheckMoving(); // Log Log.Debug("Dev_Data_Acc_Delta", $"Delta Accelerometer: X: {deltaAccX }, Y: {deltaAccY }, Z: {deltaAccZ}"); Log.Debug("Dev_Data_Acc_Coord", $"Reading Accelerometer: X: {data.Acceleration.X }, Y: {data.Acceleration.Y }, Z: {data.Acceleration.Z}"); Log.Debug("Dev_Data_Acc_Coord", $"Round Accelerometer: X: {accX }, Y: {accY }, Z: {accZ}"); isLaunchedA = true; } }
async void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs args) { await Task.Delay(5); double degree; if (args.Reading.Acceleration.Y >= -1 && args.Reading.Acceleration.Y <= 1) { degree = Math.Asin(args.Reading.Acceleration.Y); degree = degree * (180 / 3.14); degree = degree + 90; int read = (int)Math.Round((decimal)degree); if (read < 10) { read = 0; } if (read > 170) { read = 180; } if (read >= 0 && read <= 180) { myReuslt.Text = read.ToString() + "°"; MessagingCenter.Send <MainPage, int>(this, "tilt", read); } } }
private void OnAccelerometerReadingChanged(object sender, AccelerometerChangedEventArgs e) { CurrentAcceleration = e.Reading.Acceleration; var x = e.Reading.Acceleration.X; if (x < -1.5) { if (AccelerometerThresholdExceeded) { return; } AccelerometerThresholdExceeded = true; SelectedImageIndex--; } else if (x > 1.5) { if (AccelerometerThresholdExceeded) { return; } AccelerometerThresholdExceeded = true; SelectedImageIndex++; } else { AccelerometerThresholdExceeded = false; } }
/// <summary>Updates the accelerometer values and trigger the event.</summary> /// /// <remarks>Jordi Hutjens, 10-11-2018.</remarks> private void UpdateAccValues() { try { AccelerometerChangedEventArgs args = new AccelerometerChangedEventArgs { AccelerometerX = float.Parse(receivedStrFiltered[2]), AccelerometerY = float.Parse(receivedStrFiltered[3]), AccelerometerZ = float.Parse(receivedStrFiltered[4]) }; OnAccelerometerChanged(args); if (CheckParameters.Instance.LHRunning) { lhsend.SendAccDataToLH(args); } } catch (Exception) { AccelerometerChangedEventArgs args = new AccelerometerChangedEventArgs { AccelerometerX = 0.0F, AccelerometerY = 0.0F, AccelerometerZ = 0.0F }; OnAccelerometerChanged(args); } }
private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; oriX = data.Acceleration.X; oriY = data.Acceleration.Y; }
// ================================================================================================= // Accelerometer_ReadingChanged // // The accelerometer posts about 30 readings per timer-event. // This function is entered about 30 times per ONE CPR Compress. // One of the 30+ accelerator events happen to be at the same // moment the timer event happen. // // The first 5 readings are discarded; noise. // // The accelerator axis are: // X / Y parallel to surface ( think north, east) // Z perpendicular to surface ( think down to earth center, up into space) // // If Accelerator Z direction (away from ground) is: // (+, positive), it points down, and we have a CPR Compress. CONTINUE // (-, negative), it points up, and we have a CPR Recoil, STOP. // ================================================================================================= private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { // noise_Readings++; if (noise_Readings <= noiseRead_Level) return;// Skip very first (5) reads; Noise if (inPrinting) return; // in printing, and NO ACTIVITIES!! // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . read_XYZ(e.Reading); // Get the X, Y, Z, total Z, readings. // if (newTimerEvent) // Display at each timer event (100/min, every approx 30th acceleration read) { if (aTotalZ_cnt > 0) // after at least one accelerator read { // Phone must be flat for a valid accelerometer reading if (isPhoneLayingFlat(tilt_40, aX, aY)) // iS tilted IF X/Y > 0.4 (40). { aclAvgZ = aTotalZ / aTotalZ_cnt; // Get average Z thirtyCountProc(); // process CPR count (30, and Sets) Gen_Utility_1.BeepOnce(); // beep if beep is allowed // Only process "Downward" events //if (aclAvgZ < 98) // 98 = rest on a desk displayCPR_Actions(aclAvgZ); // show " Correct CPR ", " Too Shallow ", " Too Deep " showTESTdata(aclAvgZ); // newTimerEvent = false; // turned on inside timer event aTotalZ = 0; // aTotalZ_cnt = 0; // } } } }
void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { // Get the data reading var data = e.Reading; // Refresh the chart with the new value vm.RefreshValuesChart(data.Acceleration.X, data.Acceleration.Y, data.Acceleration.Z); }
void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { AccelerometerData data = e.Reading; valX = data.Acceleration.X; valY = data.Acceleration.Y; valZ = data.Acceleration.Z; }
void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { MainThread.BeginInvokeOnMainThread(() => { xLabel.Text = e.Reading.Acceleration.X.ToString(); yLabel.Text = e.Reading.Acceleration.Y.ToString(); zLabel.Text = e.Reading.Acceleration.Z.ToString(); }); }
void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; Console.WriteLine($"Reading: X: {data.Acceleration.X}, Y: {data.Acceleration.Y}, Z: {data.Acceleration.Z}"); label.Text = String.Format("X: {0,0:F4} G\nY: {1,0:F4} G\nZ: {2,0:F4} G", data.Acceleration.X, data.Acceleration.Y, data.Acceleration.Z); // Process Acceleration X, Y, and Z }
private void OnReadingChanged(object sender, AccelerometerChangedEventArgs e) { XAccelleration = e.Reading.Acceleration.X; YAcceleration = e.Reading.Acceleration.Y; ZAcceleration = e.Reading.Acceleration.Z; ReadingsChanged?.Invoke(this, e); }
static void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; if ((data.Acceleration.X > sensor_edge) && (LastPage != nameof(SendEmailPage))) { Shell.Current.GoToAsync($"{nameof(SendEmailPage)}"); } }
public void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; this.AccX = data.Acceleration.X; this.AccY = data.Acceleration.Y; this.AccZ = data.Acceleration.Z; //Console.WriteLine($"Accelerometer: X: {data.Acceleration.X}, Y: {data.Acceleration.Y}, Z: {data.Acceleration.Z}"); }
private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; accX = data.Acceleration.X; accY = data.Acceleration.Y; canvasView.InvalidateSurface(); }
private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { var data = e.Reading; XAccelerationValue = data.Acceleration.X; YAccelerationValue = data.Acceleration.Y; ZAccelerationValue = data.Acceleration.Z; AccelerationAverage = Math.Sqrt(Math.Abs((data.Acceleration.X * data.Acceleration.X) + (data.Acceleration.Y * data.Acceleration.Y) + (data.Acceleration.Z * data.Acceleration.Z))); }
void Accelerometer_ShakeDetected(object sender, AccelerometerChangedEventArgs e) { // Process shake event //ToggleTorchMethodExecute(TorchStatus); var data = e.Reading; //Console.WriteLine($"Reading: X: {data.Acceleration.X}, Y: {data.Acceleration.Y}, Z: {data.Acceleration.Z}"); AccReadings = $"Reading: X: {data.Acceleration.X}, Y: {data.Acceleration.Y}, Z: {data.Acceleration.Z}"; }
protected virtual void OnAccelerometerChanged(AccelerometerChangedEventArgs accEvent) { EventHandler <AccelerometerChangedEventArgs> handler = AccelerometerChanged; if (handler != null) { handler(this, accEvent); } }
private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { Xamarin.Essentials.AccelerometerData reading = e.Reading; Vector3Data data = Acceleration; data.Value = reading.Acceleration; data.TimeStamp = DateTime.UtcNow; data.SendNotification(); }
private void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e) { Coordinate coordinate = new Coordinate(); coordinate.XValue = Math.Round(Convert.ToDouble(e.Reading.Acceleration.X) * 100 / 2.54, 2); coordinate.YValue = Math.Round(Convert.ToDouble(e.Reading.Acceleration.Y) * 100 / 2.54, 2); coordinate.ZValue = Math.Round(Convert.ToDouble(e.Reading.Acceleration.Z) * 100 / 2.54, 2); Coordinates.Add(coordinate); }
private void Myo_AccelerometerDataAcquired(object sender, AccelerometerDataEventArgs a) { AccelerometerChangedEventArgs args = new AccelerometerChangedEventArgs(); args.accelerometerMag = a.Accelerometer.Magnitude(); args.accelerometerX = a.Accelerometer.X; args.accelerometerY = a.Accelerometer.Y; args.accelerometerZ = a.Accelerometer.Z; OnAccelerometerChanged(args); }