Skip to content

Software Specification

Jelle edited this page Feb 18, 2019 · 8 revisions

This page contains the requirements specification and the usecase descriptions of the bGeigieNano - stationary unit.

Requirements

Initial requirements

TODO: Discuss and add more

Type Description
Functional User can switch from mobile mode to stationary mode
Functional User can switch from stationary mode to mobile mode
Functional System uploads reading to the API every 5 minutes
Functional The current mode / state is displayed to the user through a RGB LED
Functional (MobileLedColor) The color for mobile mode is BLUE
Functional (ConnectingLedColor) The color while connecting stationary mode is ORANGE
Functional (StationaryLedColor) The color for stationary mode is GREEN
Functional (ErrorLedColor) The color for various errors is RED
Functional User can set configuration for the wifi and API without reflashing the hardware
Usability bGeigieNano can be used as a stationary unit
Reliability If temporarily disconnected, the system should keep up to 15 (?) minutes worth of data in a buffer
Performance
Supportability The system is compatible with the bGeigieNanoKit
Supportability The system is fully documented

Future additions / requirements

Type Description

Use cases

Use cases of the system. Only those for the esp32 controller are described here. The diagram contains some use cases for the bGeigie controller as well, but are not included in this document. All use cases require the esp32 controller to be connected to the bGeigie, powered on and working correctly (no hardware faults).

Diagram

use case diagram

Descriptions

Set config

  • Pre-conditions: webserver is running
  • Post-conditions: New configurations are saved on flash memory

User connects (browser) to the system through the pre-defined ip address of the esp32. System displays login form. User uses the pre-defined username and password to authenticate. System displays form with configurations, pre-filled with current config. Fields are: SSID, password, API key. User updates the fields and submits the form. System saves the new configurations to the flash memory. System displays a success message to the user.

Note: additional fields might be added later

Set esp stationary mode

  • Pre-conditions: esp is in mobile mode
  • Post-conditions: esp is in stationary mode, LED color is StationaryLedColor

User places the bGeigie in the stationary dock. User presses the button on the esp32. System sets the LED color to ConnectingLedColor. System connects to the wifi based on configurations. System tests API availability. System sets the LED color to StationaryLedColor.

Set esp mobile mode

  • Pre-conditions: esp is in stationary mode
  • Post-conditions: esp is in mobile mode, final data is send to API, LED color is MobileLedColor

User takes the bGeigie from the stationary dock. User presses the button on the esp32. System sends the latest readings to the API. System disconnects the wifi. System sets the LED color to MobileLedColor.

Publish to API

  • Pre-conditions: esp is in stationary mode, 5 minutes have passed since the last send (or connect)
  • Post-conditions: latest data has been send to the API, buffer is empty

TODO

Publish over bluetooth

  • Pre-conditions:
  • Post-conditions:

TODO

Process data

  • Pre-conditions: -
  • Post-conditions: -

Data is received from the bGeigie sensor. TODO

Clone this wiki locally