From 4c32a86383ac1e9200c7733c3c8be2ef4d18fa25 Mon Sep 17 00:00:00 2001
From: Eddy Pedroni <eddy@0xf7.com>
Date: Sun, 22 May 2022 15:53:20 +0200
Subject: Added specifications document, first revision

---
 specifications.md | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 specifications.md

diff --git a/specifications.md b/specifications.md
new file mode 100644
index 0000000..6919894
--- /dev/null
+++ b/specifications.md
@@ -0,0 +1,44 @@
+# Use Cases
+
+## Presets
+
+Useful presets are stored persistently (JSON or YAML) and recalled with a single command. Preset configuration is applied to both function generator and oscilloscope. The intention is to quickly restore a state that can then be used for manual tests.
+
+## Screen capture
+
+Capture screen, dump to PNG. File name can be parameterised including special codes for date, time and incrementing counter.
+
+## Frequency response measurement
+
+With a single command, a frequency response sweep is performed.
+
+Parameters:
+* Frequency range (from, to in Hz)
+* Measurement steps
+    * Linear or logarithmic?
+* Signal generator channel
+* Oscilloscope channel(s)
+
+Data is stored in an array of tuples (freq, [measurements]).
+
+Output options:
+* CSV
+* SVG plot?
+* PNG plot?
+* HTML report containing test parameters, data, plot, etc
+
+## Repeated measurement mode
+
+1. User specifies a set of actions to be taken on each round
+    * Record measurement on a specific channel
+    * Screen capture
+    * Frequency response sweep
+2. System goes to measurement mode: whenever a specific key (enter) is pressed, all actions are taken
+    * System provides feedback when ready to accept new input
+3. User exits measurement mode by pressing a special key (q)
+4. Optionally, acquired data is handled. Options:
+    * Save to CSV
+    * Print to console
+    * Pass as argument to user callback
+
+
-- 
cgit v1.2.3