Skip to content

Advanced interface

Jensah edited this page May 27, 2021 · 26 revisions

The Advanced Interface consists of the following:

Functional Requirements:

  1. The car must be able to recognize and respond to voice commands issued via the app.
  2. The joystick shall animate back to to its original position when released
  3. The app should be able to display the camera feed in the emulator.
  4. The app provides haptic feedback (vibration) when the user toggles between park & driving modes.

Login Screen

Login Screen

Functionalities

Login

AlSet software supports e-mail and password as proper means for logging in.

Functional Requirements:

  • The system shall have a screen that allows the user to login to their AlSet.
    • The system shall allow input for a username and password.
  • The user must have all settings saved to a database when logging out. Upon logging back in, these settings must be exactly how it was when they left it.

Non-functional Requirements:

  • The system should be easy to use
  • The screen should use a modern design language
  • The screen will not be ugly

Debug Mode

This mode allows for faster debugging and should not be used for any other purpose but development.

Functional Requirements:

  • The system should allow for faster debugging for the development team
    • The system should allow the user to be able to login without a username and password
    • The system should save the settings of the debugging user locally

Non-functional Requirements:

Menu Screen

Logged in Screen

Functionalities

Sensitivity

This is where the user selects the desired turning sensitivity of the joystick.

Functional Requirements:

  • The user should be able to choose several driving sensitivities upon driving their car
    • The user should be able to have visual feedback when the specific driving sensitivity is registered into the app
  • The user must have all settings saved to a database when logging out. Upon logging back in, these settings must be exactly how it was when they left it.

Non-functional Requirements:

Drive Button

Takes the user to the Drive Screen.

Drive Screen

DrivingScreenDriving

Functionalities

Functional Requirements:

  • As a user, I would like to interact with a refined and modern-looking user interface, so that I can enjoy the luxury of an AlSet even on the mobile app.
  • The UI should provide a similar experience with the design mockup

Non-functional Requirements:

  • The screen should follow modern design language, e.g. Material Design
  • The screen should be intuitive and easy to use

Park

In park mode, the user is permitted to leave the driving screen.

Drive

In drive mode, the user is prohibited to leave the driving screen.

Voice Command

Running on an Android Virtual Device

  1. Launch your AVD
  2. Go to Extended controls
  3. Select Microphone
  4. Toggle the option "Virtual microphone uses host audio input"
  5. Recompile the application without closing the virtual device.
  6. You should now hear a sound when you press the microphone-button from the drive-screen.

Any problems can usually be solved by doing the following steps:

  1. Go to AVD Manager and select "Wipe Data" on your AVD.
  2. Follow "Running on an Android Virtual Device" steps.

Joystick

The joystick controls the AlSet vehicle's power and steering directions. Up represents forward, and down backwards. The radial bounds of the joystick is controlled by the variable joystickRadiusMax present in DrivingActivity.java:

private final float joystickRadiusMax = 180;

Clone this wiki locally