Fix floating point validation on Characteristic Set #956
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
♻️ Current situation
Related:
💡 Proposed solution
The provided fp value must be same with the characteristic value.
Previously, this didn't work because of remainder between provided value and minimum step size.
Therefore, I suggest a new stable constant,
epsilon
, which is 1.This patch fixes the issue by reducing remainder significantly.
The value of the constant is
minimum
.It would crash plugins if the value is under 1.
⚙️ Release Notes
If your accessory have specific "level" of state, you can now change the ranges to 0~100%.
This makes your Siri reads the level of state properly.
➕ Additional Information
No additional information needed
Testing
"should validate Formats.FLOAT with precision with minimum steps" have been added in
Characteristic.spec.ts#L1097
Reviewer Nudging
You don't need hard mathematical understanding!
You can just test it with
eps = 0
oreps = 1
.