Use Cases¶
Manage Dive Computer Data¶
Dive Computer Backup¶
Pre: dive computer is correctly connected
Input: dive computer, backup file name
Diver |
UI |
Logbook |
Drivers |
Dive Computer |
---|---|---|---|---|
Start backup. |
Verify input parameters. |
Identify dive computer and find appropriate driver. |
Request raw data. |
Send raw data. |
Convert raw data to dive data. |
||||
Create backup file. Store raw data, dive data and dive computer information into new backup file. Reorder dives. Save new backup file. |
Dive Computer Backup Reprocess¶
Pre: backup file exists
Input: new backup file name
Diver |
UI |
Logbook |
Drivers |
---|---|---|---|
Start backup reprocess. |
Verify input parameters. |
Lookup dive computer original data. Identify dive computer and find dive computer driver. |
|
Convert raw data to dive data. |
|||
Create backup file. Store raw data, dive data and dive computer information into new backup file. Reorder dives. Save new backup file. |
Convert Raw Dive Computer Data¶
Pre: file with raw dive computer data exists
Input: driver name, raw dive computer data, new backup file name
Diver |
UI |
Logbook |
Drivers |
---|---|---|---|
Start conversion. |
Verify input parameters. |
Read raw data. data. Identify dive computer and find dive computer driver. |
|
Convert raw data to dive data. |
|||
Create backup file. Store raw data, dive data and dive computer information into new backup file. Reorder dives. Save new backup file. |
Analyze Data¶
User Story: Data Analysis
Pre: files with dive data exist and dives to analyze exist
Input: script, script arguments, names of files with dive data, dives to analyze
Kenzooid integrates with R statistical package (analytics software) for dive data analysis, therefore a “script” is R script.
A script can be provided by Kenozooid team and distributed with Kenozooid or written by an analyst or other 3rd party. Locating is finding script within Kenozooid directory structure (created due to installation) or loading it using path specified by analyst.
It is up to the R script to present results of data analysis.
Analyst |
UI |
Analytics |
Analytics software |
---|---|---|---|
Start data analysis. |
Verify input parameters. |
Locate script. Load dive data into R space. Load script into R space. Pass script arguments to R script. Start R script execution. |
Execute R script. |
Plot Dive Data¶
User Story: Plot Dive Profile Details, Compare Dive Profiles
Pre: input files exist
Input: input file names, dives to plot, output file name
Output: dive data graphs
The use case reuses Analyze Data use case. Appropriate R script is used for different types of plots described by user stories.
The extension of output file name defines the format of the output file.
Dive Planning¶
Calculate¶
User Story: Simple Calculation
Input: calculator name, calculator parameters
Output: calculator’s output
The diver uses a calculator for dive planning. There are several calculators
pp_o2
pp_n2
ead
mod
rmv
Each calculator has parameters (for example depth or gas mix), which has to be provided by the diver.
Diver |
UI |
Planning |
---|---|---|
Start calculation. |
Verify input parameters. Find calculator function. |
Calculate. |
Output result of the calculation. |
Decompression Dive Planning¶
User Story: Decompression Dive
Input: gas mix list, maximum dive depth, bottom time, dive plan parameters
Output: dive plan
Diver |
UI |
Planning |
---|---|---|
Plan deco dive |
Verify and parse input parameters. |
Prepare dive profile and emergency dive profiles. For each dive profile
|
Send dive plan for rendering. |
Render dive plan. |
|
Display dive plan. |
Manage Logbook¶
Add Dive¶
Input: dive data, logbook file name, optional dive data
Output: dive in logbook file
Dive data is
date
maximum depth
duration
Optional dive data is
time of dive
minimum temperature
buddy
dive site
Diver |
UI |
Logbook |
---|---|---|
Add dive. |
Verify input parameters. |
Open logbook file (create if necessary). Insert dive data and optional dive data into logbook file. Reorder dives. Save logbook file. |
Copy Dives¶
Pre: input files exist
Input: input file names, dives to copy, logbook file name
Output: dives in logbook file
Dive data is copied from input files to logbook file.
The dive data contains links to additional data like gas information, used equipment, dive buddies data or dive site information.
The additional linked data, if does not exist, has to be copied into logbook file as well
gas information
(more in the future)
Exceptions
If no dives copied, then do not save logbook file.
Diver |
UI |
Logbook |
---|---|---|
Copy dives. |
Verify input parameters. |
Open logbook file (create if necessary). Find and copy gases used by dives. Find and copy dives. Reorder dives. Save logbook file. |
Upgrade File Format Version¶
Pre: input file exists and is valid file for previous version of file format
Post: input file is valid file for new version of file format
Input: list of input files with dive data
The use case is about upgrading UDDF files to new version of the standard.
Upgrade path is determined as follows
determine current version of input file
find all next versions from current version till new version of file format
This way, multiple file format versions updating can be supported.
Diver |
UI |
Logbook |
---|---|---|
Start upgrading. |
Verify input parameters. |
Find upgrade path. Upgrade file. Save file. |
Enumerate Dives¶
Pre: input files exist
Input: list of input files with dive data
Dives are enumerated in the input files. The dives and files might be unordered, but order of dives having the same date and time has to be respected, so use stable sort.
Diver |
UI |
Logbook |
---|---|---|
Enumerate dives. |
Verify input parameters. |
Sort all dives from all files and and assign total and day dive numbers. Assign total and day dive number to each dive. Save files. |