private void StartTimer(AccelerometerReader accelerometerReader, MediaPlayer mp) { System.Timers.Timer Timer1 = new System.Timers.Timer(); Timer1.Start(); Timer1.Interval = 500; Timer1.Enabled = true; Timer1.Elapsed += (object sender, System.Timers.ElapsedEventArgs e) => { RunOnUiThread(() => { accBefore.accX = accNow.accX; accBefore.accY = accNow.accY; accBefore.accZ = accNow.accZ; SetAccPosition(accNow, accelerometerReader); if (accBefore.accX != 0) { if (DisplayVoices(accBefore, accNow, mp, accelerometerReader)) { cpt = 0; } else { cpt += 1; } if (cpt > 20) { cpt = 0; } } }); }; }
// Timer for the data reading public void startTimer() { System.Timers.Timer Timer1 = new System.Timers.Timer(); Timer1.Start(); Timer1.Interval = AccelerometerReader.timeIntervalMs; Timer1.Enabled = true; Timer1.AutoReset = true; Timer1.Elapsed += (object sender, System.Timers.ElapsedEventArgs e) => { RunOnUiThread(() => { Log.Debug("Dev_App", "Timer1 - RunOnUiThread()"); AccelerometerReader.isLaunchedA = false; AccelerometerReader.ToggleAccelerometer(); /*accViewX.Text = "X: " + AccelerometerReader.accX.ToString(); * accViewY.Text = "Y: " + AccelerometerReader.accY.ToString(); * accViewZ.Text = "Z: " + AccelerometerReader.accZ.ToString();*/ //AccelerometerReader.ToggleAccelerometer(); GyroscopeReader.isLaunchedG = false; GyroscopeReader.ToggleGyroscope(); /*gyrViewX.Text = "G X: " + GyroscopeReader.accX.ToString(); * gyrViewY.Text = "G Y: " + GyroscopeReader.accY.ToString(); * gyrViewZ.Text = "G Z: " + GyroscopeReader.accZ.ToString();*/ //GyroscopeReader.ToggleGyroscope(); studyMove(); //studyMove(); }); }; }
public void start(object sender, DialogClickEventArgs e) { // Init accelerometerReader = new AccelerometerReader(); // Gestion des évenèments accelerometerReader.OnRoll += (sender, e) => { int resourceId = -1; switch (voiceMode) { case Constants.VoiceMode.Voix_1: resourceId = Resource.Raw.Voice01_02; break; case Constants.VoiceMode.Voix_2: resourceId = Resource.Raw.Voice02_02; break; } SoundManager.Play(this, resourceId, imageView: babyEmotion); accelerometerReader.OnEnd += AccelerometerReader_OnEnd; }; accelerometerReader.OnLongRoll += (sender, e) => { int resourceId = -1; switch (voiceMode) { case Constants.VoiceMode.Voix_1: resourceId = Resource.Raw.Voice01_03; break; case Constants.VoiceMode.Voix_2: resourceId = Resource.Raw.Voice02_03; break; } SoundManager.Play(this, resourceId, true, imageView: babyEmotion); accelerometerReader.OnEnd += AccelerometerReader_OnEnd; }; // Greetings SoundManager.Play(this, Resource.Raw.Voice02_01); System.Timers.Timer timer = new System.Timers.Timer(); timer.Start(); timer.Interval = 1000; timer.Enabled = true; timer.Elapsed += (object sender, System.Timers.ElapsedEventArgs e) => { RunOnUiThread(() => { accelerometerReader.ToggleAccelerometer(); }); }; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); // Set sensors instances this.AccelerometerReader = new AccelerometerReader(); this.GyroscopeReader = new GyroscopeReader(); this.OrientationReader = new OrientationReader(); this.Vibrate = new Vibrate(); // Init media player this.MediaPlayer = new MediaPlayer(); this.MediaPlayerReading = false; // Find ihm selectors this.TvMessage = FindViewById <TextView>(Resource.Id.tv_message); this.BtVoice1 = FindViewById <Button>(Resource.Id.bt_voice_1); this.BtVoice2 = FindViewById <Button>(Resource.Id.bt_voice_2); this.BtVoiceOff = FindViewById <Button>(Resource.Id.bt_voice_off); this.BtVibrate = FindViewById <Button>(Resource.Id.bt_vibrate); this.Count = 0; this.CountSequences = 0; this.VoiceChoice = 0; this.CountShake = 0; this.DroppedPhoneTable = false; this.DroppedPhoneStatus = false; this.Reset = false; // Callbacks this.BtVibrate.Click += this.OnClick_TestVibrate; this.BtVoice1.Click += this.OnClick_Voice1; this.BtVoice2.Click += this.OnClick_Voice2 ; this.BtVoiceOff.Click += this.OnClick_VoiceOff; if (!this.AccelerometerReader.Started) { this.AccelerometerReader.ToggleAccelerometer(); } }
private void SetAccPosition(AccelerometerPosition accPos, AccelerometerReader accelerometerReader) { accPos.accX = accelerometerReader.AccX; accPos.accY = accelerometerReader.AccY; accPos.accZ = accelerometerReader.AccZ; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Platform.Init(this, savedInstanceState); SetContentView(Resource.Layout.activity_main); Button buttonVoix1 = FindViewById <Button>(Resource.Id.buttonVoix1); Button buttonVoix2 = FindViewById <Button>(Resource.Id.buttonVoix2); Button buttonVoixOff = FindViewById <Button>(Resource.Id.buttonVoixoff); button1 = 1; button2 = 2; cpt = 0; accelerometerReader = new AccelerometerReader(); shakeDetector = new ShakeDetector(); accStart = new AccelerometerPosition(); accBefore = new AccelerometerPosition(); accNow = new AccelerometerPosition(); buttonVoix1.Click += (sender, e) => { Setvoices(button1); SetAccPosition(accStart, accelerometerReader); shakeDetector.ResetShakePlayer(); accelerometerReader.ResetAccPlayer(); cpt = 0; if (player2 != null) { player2.Reset(); } StartTimer(accelerometerReader, player1); if (!Accelerometer.IsMonitoring) { Accelerometer.Start(SensorSpeed.Game); } player1.Start(); }; buttonVoix2.Click += (sender, e) => { Setvoices(button2); SetAccPosition(accStart, accelerometerReader); shakeDetector.ResetShakePlayer(); accelerometerReader.ResetAccPlayer(); cpt = 0; if (player1 != null) { player1.Reset(); } StartTimer(accelerometerReader, player2); if (!Accelerometer.IsMonitoring) { Accelerometer.Start(SensorSpeed.Game); } player2.Start(); }; buttonVoixOff.Click += (sender, e) => { if (Accelerometer.IsMonitoring) { Accelerometer.Stop(); } accelerometerReader.Start = false; shakeDetector.Start = false; }; }
private bool DisplayVoices(AccelerometerPosition accBefore, AccelerometerPosition accNow, MediaPlayer mp, AccelerometerReader accelerometerReader) { if (Math.Abs(accBefore.accX - accNow.accX) > 0.3 || Math.Abs(accBefore.accY - accNow.accY) > 0.3 || Math.Abs(accBefore.accZ - accNow.accZ) > 0.3) { MainThread.BeginInvokeOnMainThread(() => { accelerometerReader.PlayInclinedSongs(shakeDetector); }); return(true); } else if (cpt == 10 || cpt == 20) { MainThread.BeginInvokeOnMainThread(() => { accelerometerReader.PlayStableSongs(shakeDetector); }); } return(false); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); // Init voices lists listShortVoice.AddRange(new int[] { Resource.Raw.Voice01_01, Resource.Raw.Voice01_02, Resource.Raw.Voice01_03, Resource.Raw.Voice01_04, Resource.Raw.Voice01_05, Resource.Raw.Voice01_06, Resource.Raw.Voice01_07, Resource.Raw.Voice01_08, Resource.Raw.Voice01_09, Resource.Raw.Voice01_10 }); listLongVoice.AddRange(new int[] { Resource.Raw.Voice02_01, Resource.Raw.Voice02_02, Resource.Raw.Voice02_03, Resource.Raw.Voice02_04, Resource.Raw.Voice02_05, Resource.Raw.Voice02_06, Resource.Raw.Voice02_07, Resource.Raw.Voice02_08, Resource.Raw.Voice02_09, Resource.Raw.Voice02_10 }); listCurrentVoice = listShortVoice; mediaPlayer = MediaPlayer.Create(this, listCurrentVoice[0]); isMuted = false; initVoice(); // Add onClick Listener Button button = (Button)FindViewById(Resource.Id.bVoice1); button.Click += delegate { OnVoiceClick(button); }; Button button2 = (Button)FindViewById(Resource.Id.bVoice2); button2.Click += delegate { OnVoiceClick(button2); }; Button button3 = (Button)FindViewById(Resource.Id.bVoice3); button3.Click += delegate { OnVoiceClick(button3); }; Button button4 = (Button)FindViewById(Resource.Id.bVoice4); button4.Click += delegate { OnVoiceClick(button4); }; Button button5 = (Button)FindViewById(Resource.Id.bVoice5); button5.Click += delegate { OnVoiceClick(button5); }; Button button6 = (Button)FindViewById(Resource.Id.bVoice6); button6.Click += delegate { OnVoiceClick(button6); }; Button button7 = (Button)FindViewById(Resource.Id.bVoice7); button7.Click += delegate { OnVoiceClick(button7); }; Button button8 = (Button)FindViewById(Resource.Id.bVoice8); button8.Click += delegate { OnVoiceClick(button8); }; Button button9 = (Button)FindViewById(Resource.Id.bVoice9); button9.Click += delegate { OnVoiceClick(button9); }; Button button10 = (Button)FindViewById(Resource.Id.bVoice10); button10.Click += delegate { OnVoiceClick(button10); }; Button buttonOff = (Button)FindViewById(Resource.Id.bVoixOff); buttonOff.Click += delegate { OnOffClick(buttonOff); }; // SET UP for test_layout.xml view /*accView = FindViewById<TextView>(Resource.Id.accView); * accViewX = FindViewById<TextView>(Resource.Id.accViewX); * accViewY = FindViewById<TextView>(Resource.Id.accViewY); * accViewZ = FindViewById<TextView>(Resource.Id.accViewZ); * gyrViewX = FindViewById<TextView>(Resource.Id.gyrViewX); * gyrViewY = FindViewById<TextView>(Resource.Id.gyrViewY); * gyrViewZ = FindViewById<TextView>(Resource.Id.gyrViewZ);*/ gyrRead = new GyroscopeReader(); accRead = new AccelerometerReader(); startTimer(); }