Ускорение и торможение автомобиля с помощью Flutter

Привет, я пытаюсь получить ускорение и замедление автомобиля с помощью флаттера. Также я использую userAccelerometerEvent для вычета гравитации, однако я получаю ошибки в событии.

1) Я хочу знать, как измерить ускорение и замедление с помощью флаттера. 2) Почему возникает ошибка при использовании userAccelerometerEvent

    @override
  void initState() {
    super.initState();

    userAccelerometerEvents.listen((UserAccelerometerEvent event) {
      if (event() >= 2 && event() < 5) {
        print('Between 2 and 5');
      }
      if (event() >= 10 ) {
        print('Greater Than 10');
      }
    });

person X2020    schedule 06.01.2020    source источник


Ответы (1)


Какие ошибки вы видите?

Похоже, вы используете пакет sensors от Flutter, README находится здесь и описывает, как прослушивать различные изменения датчика: README

Глядя на ваш код, похоже, что вы используете параметр event в качестве метода event(). Параметр event представляет собой объект UserAccelerometerEvent со свойствами x, y и z. Вы должны получить доступ к значениям x, y и z, выполнив вместо этого: event.x или event.y или event.z.

У команды флаттера есть пример кода для использования пакета датчиков здесь: Пример кода

Некоторый соответствующий код из примера страницы ниже.

  void initState() {
    super.initState();
    _streamSubscriptions
        .add(userAccelerometerEvents.listen((UserAccelerometerEvent event) {
      setState(() {
        _userAccelerometerValues = <double>[event.x, event.y, event.z];
      });
    }));
  }
person Yusef    schedule 06.01.2020
comment
Спасибо Юсеф за вашу помощь, возможно, поэтому у меня ошибка, я пытаюсь использовать смартфон водителя для измерения ускорения и замедления автомобиля, поэтому я использую UserAccelerometer для измерения, так как я не Не хочу заставлять водителя ставить смартфон в фиксированное положение. Я пытаюсь понять, как различать ускорение и замедление. - person X2020; 07.01.2020
comment
@ X2020 Эти события возвращают скорость устройства относительно пользователя. Вы можете посмотреть на значение event.z: положительное значение означает, что устройство движется к пользователю, а отрицательное значение z означает, что устройство удаляется (при условии, что устройство удерживается вертикально и обращено к пользователю). Вам необходимо измерить изменение скорости по сравнению с изменением времени для определения ускорения. Вы можете сохранить предыдущие значения скорости вместе с отметками времени, чтобы выполнить расчет ускорения. Значение event.z возвращает скорость в м/с^2. - person Yusef; 07.01.2020
comment
Большое спасибо, Юсеф Уда, я попробую :) - person X2020; 07.01.2020