-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exposure Notification API #89
Comments
Implement Risk Scoring
Implement Exposure Notification
|
Added some EN functionality - Specify multiple Agents(Diseases), levels, notification criteria, callbacks - Link to analysis API with straightforward mechanism - Variety of tests added via TDD and all passing - Existing tests still passing - Tested on Windows only Signed-off-by: Adam Fowler <[email protected]>
Need to split the current ExposureManager into ExposureRecorder (live RSSIMinute data for 'today') and ExposureStatusManager for confirming exposure sources (SampleIDs) as ill or not, and calculating the aggregated risk score for each source, and then calling the ExposureManager with updates for the risk score for each Agent(Disease). At the moment we're assuming everyone encountered is ill! |
Signed-off-by: Adam Fowler <[email protected]>
…nssl sha256. Part of theheraldproject#89. - Refactoring Exposure API - Added base Exposure tests and implementation class - Added outline for risk and exposure managers - Added OpenSSL v3.1 (Apache-2.0) SHA256 support for non Windows/Mac/Zephyr platforms (linked statically) - Fixed build and tests for linux 64 bit g++ Signed-off-by: Adam Fowler <[email protected]>
Allows SHA256 to be built on Mac OS Signed-off-by: Adam Fowler <[email protected]>
…s added. Part of theheraldproject#89 - Added RiskScore and RiskScoreMetadata types - Separated ExposureMetadata from Exposure - Added Score as a common data class for Exposure and RiskScore - Added TaggedArray to allocatable_array file for an array with a tagged metadata value - Used TaggedArray for a list of Exposures linked to one piece of metadata - Used TaggedArray for a list of RiskScores linked to one piece of RiskScoreMetadata - All tests still pass, some new tests added Signed-off-by: Adam Fowler <[email protected]>
Signed-off-by: Adam Fowler <[email protected]>
Signed-off-by: Adam Fowler <[email protected]>
Various Exposure and RiskScore imnprovements - Ensured all methods and lines covered in tests - Ensured compilation, tests, and coverage works on both gcc and clang on linux x86_64 Signed-off-by: Adam Fowler <[email protected]>
Signed-off-by: Adam Fowler <[email protected]>
Risk and Exposure Windows development - Moved to Windows machine - Tests now pass on Windows CLang 10.0.0 for MSVC Community 2019 amd64 Signed-off-by: Adam Fowler <[email protected]>
Signed-off-by: Adam Fowler <[email protected]>
…now running. Signed-off-by: Adam Fowler <[email protected]>
Exposure change notification work continuing:- - Running true/false now working in manager - Basic change notification caching working (naive, unsafe) - Correct analysis values coming out of exposure manager via notifications Signed-off-by: Adam Fowler <[email protected]>
… running on Windows Signed-off-by: Adam Fowler <[email protected]>
Added multi-variate data analysis - Added Luminosity datatype - Added RunningMean<ValT> datatype for a common data analysis use case - Added extra test with RSSIMinute and RunningMean<Luminosity> analysis runners for exposure API - Some minor analysis API fixes (constness, noexcept) - Tests for risk API not yet passing (Work in progress) Signed-off-by: Adam Fowler <[email protected]>
Test templates refactoring - Created generic dummy source instead of one per type - tests passing - Fixed bug in ExposureManager where the first exposure change period was unset Signed-off-by: Adam Fowler <[email protected]>
Multiple analyses and exposures now working - Fixed bug in UUID == method - Fixed bug in allocatable array readlIndex method (Caused issues in exposure manager linking values to the correct agent) - Multi-variate analyses in analysis API now working - const SampleList iterators now working well - Multiple exposure types supported in exposure manager - RunningMean<ValT> datatype working well with exposure and analysis APIs - Just the final risk score calculation to add now Signed-off-by: Adam Fowler <[email protected]>
Added primitives for RiskManager - Tidied up STL imports in analysis API - Added Sum aggregate to analysis API - Added variety of human parameters (weight, sex, age) and associated Data Types - Added ArrayMap type to represents one instance of each parameter - Added a SampleDiseaseScreeningRiskModel (NOT for real world use) - Added noexcept modifiers to SensorDelegate methods - Shelled out RiskManager but without any methods yet (work in progress) Signed-off-by: Adam Fowler <[email protected]>
…h Risk Manager Various Risk Score Manager changes - More internal state tracking in Risk manager - Links from Risk Manager to callbacks in exposure manager - Invocation of risk models by risk manager - Performance tweaks for dirty regions of risk models' scores - UUID and Allocatable Array and agent class improvements - Still need to complete ExposureManager.aggregate() calls, and need to define all values as full structs, not aliases to intrinsic types (as template creation fails) Signed-off-by: Adam Fowler <[email protected]>
…nother class Abstracted in-memory exposure store to another class - Created FixedMemoryExposureStore - Both ExposureManager and RiskManagerExposureCallbackAdapter use FixedMemoryExposureStore, providing template independence - Added Wrapper<UnderlyingT> template to provide intrinsic data type type safety for values (E.g. Age, Mass, PhenotypicSex) - aggregate and produce methods not yet complete, so tests are still failing - No ExposureStore implementation class or abstraction added yet Signed-off-by: Adam Fowler <[email protected]>
Risk analysis value accuracy changes - Added Const Iterator option for Allocatable Array, which solved a lot of access issues - Added time interval support to RunningMeanAnalyser - Added checks in tests for exposure and risk score values as well as count - Added strong type enforcement for UUID subclasses (Agent, AlgorithmId) - Added FixedMemoryRiskScoreStore for storing risk scoring outputs in memory - Added sinceOrEqual view filter for convenience - Analysis API now includes value if its time is exactly the start of a time interval for analysis - Fixed comment formatting in exposure_risk.h - Completed aggregate() function in exposure manager, and added forEachExposure function for convenience - Corrected bug in RiskScoreMetadata where algorithmId and agentId were being confused Signed-off-by: Adam Fowler <[email protected]>
Exposure and Risk API tests pass - Fixed callbacks for just the exposure values that have changed - Fixed calling risk scoring for each variable change, instead of each risk score change - Fixed boundary issues with Risk and Exposure API processing - All tests pass. Ready for beta2 Signed-off-by: Adam Fowler <[email protected]>
v2.1.0-beta2 released with the latest changes from this branch merged into develop. De-prioritising non-required functionality for this release. Remaining TODOs therefore:- Risk and Exposure stores:-
Exposure Notification:-
Risk Threshold Notification:-
Out of scope:-
|
Some performance and memory tweaks - Compiles successfully on Ubuntu 20.04 again - All tests pass on Windows 10 and Ubuntu 20.04 - Builds wearable and beacon code successfully - Removed use of iostreams in SensorLogger (saving 5.5KB in the binary) - Removed string output methods that were unused on Date - Added StringBuffer class to make temporary string creation efficient - Used strcpy instead of strcpy_s which was only supported on Windows - Added nmsizecsv to output compiled binary sizes as a CSV for later analysis and visualisation - Fixed template compilation bugs found by gcc on Ubuntu that weren't found by arm-gcc or clang on Windows Signed-off-by: Adam Fowler <[email protected]>
Build enhancements for wearable - Supports USB option changes in NCS 1.8/Zephyr 2.7 - Minimised includes used in wearable app, reducing build size by 26KB - Removed most uses of string & date conversion, iostream, reducing build size by 4 KB - V2.1.0 version number fix in CMake file for wearable app Signed-off-by: Adam Fowler <[email protected]>
Built on top of the Analysis API, in order to provide and hit thresholds, and perform some action on hitting them.
The text was updated successfully, but these errors were encountered: