Skip to content
Ruchi Mehta edited this page Jun 3, 2017 · 4 revisions

Welcome to Smart Device Manager Wiki!

TOOLS AND TECHNOLOGIES

Technology: Android

Data encoding: Google Protocol Buffers

IDE: Android Studio

External Libraries: Event Bus, MPAndroidChart, SpeedView, WaveLoadingView

SYSTEM REQUIREMENTS SPECIFICATIONS

Hardware Requirements

* Niyantras automation system
* Bluetooth enabled Android phone
* Wi-Fi enabled Android phone

Software Requirements

* Android operating system version Jelly Bean (4.1) onwards

*SYSTEM ANALYSIS

Functional Requirements

  • Communication Interface:

    • Provide a choice for communication medium and timeout duration for server discovery.
    • This should allow the user to use the application in whichever interface he wants to.
    • Provide ‘Auto’ mode which does Bluetooth discovery for specified time and switches to Wi-Fi if no Bluetooth device found within specified time. This will be helpful when the user doesn’t want to implicitly state the communication medium.
  • Bluetooth interface:

    • Provide discovery to find a Bluetooth server.
    • Exchange data with other device using Bluetooth.
    • Attempt to connect again at various intervals if connection is lost
    • Send ping message at regular interval to sense idle channel.
  • Wi-Fi interface:

    • Provide UDP broadcast discovery to find a server in a connected network.
    • Exchange data with another device in the same network.
    • Attempt to connect again at various intervals if connection is lost
    • Send ping message at regular interval to sense idle or changed channel.
  • Parser to create dynamic user interface: Instead of having a user interface for different systems before hand, the server gives the layout parameters.

    This is useful when version conflict may arise between server and application i.e. Server has new functionalities so now client also needs to keep making new user interfaces in order to remain in sync with the server.

    Support the following type of views:

    • Configuration View

      • Get user input to configure a system.

      Widgets Supported:

      • Edit Box
      • Text Box (Non-editable)
      • Spinner
      • Radio Button
      • Check Box
    • Monitor View

      • Monitor a system by displaying charts and refresh their values periodically.

      Charts Supported:

      • Line Chart
      • Water Tank View
      • Gauge View ( Speedometer, Fuel Meter, Engine Temperature Meter)
    • Operational View:

      • To Control system parameters.

      Widgets Supported:

      • Toggle Switch
      • Seek bar
  • WaveLoadingView library:

    • Enhance the WaveLoadingView open source library to display tank upper level, tank lower level and timestamp of response.

Non-Functional Requirements

  • Secure As soon as two devices are connected, the client will send an authorization request to the server. Unless and until the server authorizes the client, no exchange of data will be permitted to them.

  • User friendly: The user interface will be such that it can be easily learned by all kinds of users.

  • Message Portable: The exchange of data will be language-neutral, platform-neutral. This enables the Android client to communicate with a sensor that works in different languages like C, C++ or Python. The message size will be small, speed will be fast, and structure will be simple.

  • Compatible:

    • The user interface will support various screen sizes.
    • The system will support android versions from Jelly Bean (4.1)