Skip to content

Software requirements

Context

This repository contains the sensor libraries and flash drivers for the Manikin Resuscitation System, a standalone CPR training device for infant resuscitation.

The system is designed to support realistic training by measuring the quality of chest compressions and ventilations using integrated sensors. It provides trainees with real-time performance feedback to help improve their CPR skills.

Functional requirements

These are the functional requirements for this library:

ID Requirement Description Priority Rationale
F1 The software library shall include a module capable of reading distance data from a VL6180X Time-of-Flight (ToF) sensor. Must-have Required to measure compression depth accurately using the selected sensor.
F2 The software library shall include a module capable of reading differential pressure data from an SDP810 sensor. Must-have Required to measure ventilations volume accurately using the selected sensor.
F3 The software library shall include a module capable of reading 8 analog input channels from an ADS7138 ADC. Must-have Required for acquiring raw sensor data that can be used to estimate finger positioning on the chest.
F4 The software library shall include a module capable of reading data from a BMM350 magnetometer sensor. Must-have Provides measurements required for orientation analysis in airway management.
F5 The software library shall include a module capable of reading motion and orientation data from a BHI360 smart sensor. Must-have Enables acquisition of 6-DoF motion data required for airway obstruction detection and orientation tracking.
F6 The software library shall include a module capable of storing all incoming raw sensor data streams in external flash memory (W25QXX128). Must-have Ensures complete data logging for offline analysis, debugging, and traceability.
F7 The software library shall include mechanisms to detect malfunctions in sensor communication (e.g., I²C bus errors) and handle them in a way that preserves data integrity to a defined level. Must-have Ensures system reliability and robustness by preventing corrupted or incomplete data from impacting downstream processing.
F8 The software library shall implement I²C bus recovery mechanisms to restore communication in case of a bus hang or error condition. Must-have Prevents system lock-up and ensures continued data acquisition by recovering from I²C communication failures.
F9 The software library shall be designed to support the integration of additional sensors and software functionalities in a modular and extensible manner. Must-have Facilitates future development, reuse, and customization.

Non-functional requirements

ID Requirement Description Rationale Priority
T1 The code shall follow a functional-safety-oriented coding standard appropriate for the system. Prior research by Gert van Lagen and the project's preliminary study identified specific methods to ensure functional safety. Adhering to these standards ensures code readability and consistency. Must-have
T2 The code shall be continuously tested using appropriate development methods, such as CI testing, unit testing, and static code analysis. These methods are recommended to ensure software quality. Must-have
T3 Documentation for the software shall follow conventions that make it understandable for a second-year ESE student. The product owner noted that students often struggle to understand existing software. Clear architecture and documentation enable faster development. Should-have