public void OnSensorChanged(SensorEvent e)
        {
            var accelerometerEvent = new AccelerometerEvent();

            accelerometerEvent.XAcc = e.Values[0] / 9.81f;
            accelerometerEvent.YAcc = e.Values[1] / 9.81f;
            accelerometerEvent.ZAcc = e.Values[2] / 9.81f;
            AccelerationChanged?.Invoke(this, accelerometerEvent);
        }
예제 #2
0
 public void StartListening()
 {
     _manager = new CMMotionManager();
     _manager.StartAccelerometerUpdates(NSOperationQueue.CurrentQueue, (data, error) =>
     {
         AccelerometerEvent e = new AccelerometerEvent
         {
             XAcc = (float)data.Acceleration.X,
             YAcc = (float)data.Acceleration.Y,
             ZAcc = -(float)data.Acceleration.Z,
         };
         AccelerationChanged?.Invoke(this, e);
     });
 }
예제 #3
0
        private void notifyAccelerometerEvent(int playerIndex, int x, int y, int z, int maxAccelX, int maxAccelY, int maxAccelZ)
        {
            int newX, newY, newZ;

            newX = (int)((x * accelX) / Math.Abs(maxAccelX));
            newY = (int)((y * accelY) / Math.Abs(maxAccelY));
            newZ = (int)((z * accelZ) / Math.Abs(maxAccelZ));

            AccelerometerEvent ae = new AccelerometerEvent(playerIndex, newX, newY, newZ);

            Thread t = new Thread(new ThreadStart(delegate()
            {
                onAcceleratorEvent(ae);
            }));

            t.Start();

            //TODO : lancer le thread qui va appeler la fonction event
        }
예제 #4
0
        private void Initialize()
        {
            _compassTimerCount  = 0;
            _accelTimerCount    = 0;
            _carCrashTimerCount = 0;

            SessionStatus = SessionStatus.Stopped;

            if (CurrentDriver == null)
            {
                CurrentDriver = new Driver {
                    Image = "/Assets/user_unknow.png"
                };
            }

            CompassEvent = new CompassEvent
            {
                HeadingDegrees = 0
            };

            AccelerometerEvent = new AccelerometerEvent
            {
                X = 0000.00,
                Z = 0000.00,
                Y = 0000.00,
            };

            AvailableDrivers = new ObservableCollection <Driver>
            {
                new Driver {
                    Id = 1, LicensePlate = "FGH-9876", Image = "/Assets/Drivers/1.jpg"
                },
                new Driver {
                    Id = 2, LicensePlate = "SLV-4335", Image = "/Assets/Drivers/2.jpg"
                },
                new Driver {
                    Id = 3, LicensePlate = "MAX-9876", Image = "/Assets/Drivers/3.jpg"
                },
                new Driver {
                    Id = 4, LicensePlate = "CCC-1432", Image = "/Assets/Drivers/4.jpg"
                },
                new Driver {
                    Id = 5, LicensePlate = "JNV-9876", Image = "/Assets/Drivers/5.jpg"
                },
                new Driver {
                    Id = 6, LicensePlate = "CUA-1456", Image = "/Assets/Drivers/6.jpg"
                },
                new Driver {
                    Id = 7, LicensePlate = "JOP-9876", Image = "/Assets/Drivers/7.jpg"
                },
                new Driver {
                    Id = 8, LicensePlate = "HTY-1243", Image = "/Assets/Drivers/8.jpg"
                },
                new Driver {
                    Id = 9, LicensePlate = "VVV-4444", Image = "/Assets/Drivers/9.jpg"
                },
                new Driver {
                    Id = 10, LicensePlate = "ERT-1256", Image = "/Assets/Drivers/10.jpg"
                }
            };
        }
예제 #5
0
 public abstract bool onAcceleratorEvent(AccelerometerEvent ae);