-
-
Notifications
You must be signed in to change notification settings - Fork 4
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
Support Control Point Characteristics and implement Record Access Control Point #29
Conversation
97e2671
to
2a1cc6b
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #29 +/- ##
==========================================
- Coverage 76.57% 75.23% -1.33%
==========================================
Files 84 99 +15
Lines 4041 4505 +464
==========================================
+ Hits 3094 3389 +295
- Misses 947 1116 +169
... and 1 file with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
2a1cc6b
to
06337e5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for all the work that went into the PR and record access functionality @Supereg!
Support Control Point Characteristics and implement Record Access Control Point
♻️ Current situation & Problem
The Record Access Control Point characteristic is a standardized Bluetooth characteristic to model service-specific procedures for management of a set of data records. While the exact format is specific to the service specification using it, both the Glucose Monitor service and Enhanced Blood Pressure service define a similar format for the Record Access Control Point characteristic. Similar, Omron defines a custom service for their Blood Pressure Cuffs with a similar implementation of the Record Access Control Point characteristic.
This PR implements a Record Access Control Point characteristic that is generic an can be instantiated with the respective service specification. Further, it instantiates it using the
GenericOperand
that is common to services like the Glucose Monitor and the Enhanced Blood Pressure service. An instantiation of the Omron option service is done in StanfordSpezi/SpeziDevices#1.To better support control point characteristics, this PR also adds a new
ControlPointCharacteristic
marker protocol that allows to access native support to sending requests and receiving the response to and from a control point characteristic (one async call instead of writing a value and waiting for the notification).⚙️ Release Notes
ControlPointCharacteristic
marker protocol and asendRequest(_:timeout:)
accessor.RecordAccessControlPoint
characteristic.📚 Documentation
Documentation catalog was updated to include those new symbols and new symbols were documented accordingly.
✅ Testing
The new characteristic was fully unit tested. We added additional support within the
TestingSupport
SPI to make unit testing of control point characteristics easier.Functionality was validated against a Omron Bluetooth device for real-world testing.
📝 Code of Conduct & Contributing Guidelines
By submitting creating this pull request, you agree to follow our Code of Conduct and Contributing Guidelines: