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;
                        }
                    }
                });
            };
        }
Beispiel #2
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();
                });
            };
        }
Beispiel #3
0
        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();
                });
            };
        }
Beispiel #4
0
        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);
 }
Beispiel #8
0
        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();
        }