From 2db0fa5dbe6332b0045c3c7f86e79bda480fb52b Mon Sep 17 00:00:00 2001 From: Graham Jones Date: Sun, 18 Feb 2018 10:00:21 +0000 Subject: [PATCH] Added some documentation on app structure. --- doc/Android App Structure.odp | Bin 0 -> 20051 bytes doc/Developer_Guide.txt | 62 ++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 doc/Android App Structure.odp create mode 100644 doc/Developer_Guide.txt diff --git a/doc/Android App Structure.odp b/doc/Android App Structure.odp new file mode 100644 index 0000000000000000000000000000000000000000..d9b19b964e54ce92f018dc3cfc500f060c779d6a GIT binary patch literal 20051 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 j=iW%_azHMo6qQ2{D6JO842CCXYU4*t literal 0 HcmV?d00001 diff --git a/doc/Developer_Guide.txt b/doc/Developer_Guide.txt new file mode 100644 index 0000000..97296a5 --- /dev/null +++ b/doc/Developer_Guide.txt @@ -0,0 +1,62 @@ +OpenSeizureDetector Developer Guide (for V3.0 and higher) + +The OpenSeizureDetector main app is the alarm system. It monitors one +or more data sources which send it seizure detector data using broadcast +itents. If alarm conditions are experienced it will raise audible alarms +and SMS alarms if configured in the settings. +If seizure detector data is not received at the expected time, it will raise +fault alarms to warn the user of a problem. + +The OpenSeizureDetector StartUpActivity does the following: +- Start the SdServer background service that does the seizure detector + monitoring. +- Monitors SdServer for a number of conditions to be met, which shows that it + is running correctly. +- Once it is running correctly, StartUpActivity exits, and MainActivity starts + to provide user display of seizure detector data. + +The MainActivity does the following: +- Monitor the status of the SdServer background service, and display data + relating to the server on the screen for the user. +- Provide user interface to cancel audible alarms, accept alarms, and + open settings editing screens to configure OpenSeizureDetector. + +The SdServer background service does the following. +- Reads configuration data from local stored preferences, including which + data sources are to be used. +- Sends a broadcast intent to the required data sources asking them to start. +- Monitors for broadcast intents from the data sources which contain seizure + detector data. +- Checks the time since the last data was received from the data source, and + if it is longer than a specified period, attempts to re-start the data + source. If data is still not received, raises a system fault alarm. +- Checks the seizure detector data received from the data source, and raises + audible and SMS alarms if an alarm state is detected. +- Provieds a web interface to allow users to monitor the seizure detector + status using a web browser or other http client. + + +Indidual Data Source apps are separate .apk packages. They provide: +- A broadcast receiver that will receive start/stop requests from the + main OpenSeizureDetector SdServer process. +- A background SdDataSourceService service that interfaces with the seizure + detector hardware (e.g. a smart watch) and receives data from the hardware. + It carries out the necessary processing to determine if an alarm condition + is present, and sends a broadcast intent to the OpenSeizureDetector SdServer + service with the data when it has been processed. +- A configuration user interface to allow the data source to be configured. + + +Version V3.0 will initially provide two data sources that will reproduce the +functionality of V2.5.x: +- SdDataSourcePebble - pebble watch data source +- SdDataSourceNetwork - actively request data from the web interface of another + OpenSeizureDetector instance. +These will be packages uk.org.openseizuredetector.datasource.pebble and +uk.org.openseizuredetector.datasource.network + +Future data sources will be: +- SdDataSourceGarmin - uses a Garmin ConnectIQ smart watch. +- SdDataSourceAndroidWear - Uses an Android Wear smart watch. +- SdDataSourceAudio - uses the microphone on the phone to detect abnormal sounds. +