Skip to content

Commit

Permalink
Preserve RSSI expiration on ranged beacon commit
Browse files Browse the repository at this point in the history
This fixes #627 which is a regression of
#523
(AltBeacon/android-beacon-library-reference#30). It was introduced in
commit f084042 (PR #484) where
the `RunningAverageRssiFilter` has it's value constantly reset after
every cycle in [`RangedBeacon#commitMeasurements`](f084042#diff-65311818bc092d4192549ca6a7932a8aR50).
  • Loading branch information
cupakromer committed Dec 12, 2017
1 parent 8cd351f commit 476c0bb
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
Bug Fixes:
- Fix performance problems when using identifiers 3-15 bytes caused by
Identifier#toHexString(). (#615, David G. Young)
- Fix regression with `RunningAverageRssiFilter.setSampleExpirationMilliseconds`
being overwritten when committing ranged beacon measurements. (#xyz, Aaron Kromer)

### 2.12.3 / 2017-10-14

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ public Beacon getBeacon() {

// Done at the end of each cycle before data are sent to the client
public void commitMeasurements() {
RunningAverageRssiFilter.setSampleExpirationMilliseconds(sampleExpirationMilliseconds);
if (!getFilter().noMeasurementsAvailable()) {
double runningAverage = getFilter().calculateRssi();
mBeacon.setRunningAverageRssi(runningAverage);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,21 @@ public void rangedBeaconDoesNotOverrideSampleExpirationMillisecondsText() {
assertEquals("RunningAverageRssiFilter sampleExprirationMilliseconds should not be altered by constructing RangedBeacon", 33l, RunningAverageRssiFilter.getSampleExpirationMilliseconds());
}

@Test
public void regressionCheckRangedBeaconCommitDoesNotOverrideSampleExpirationMilliseconds() {
RangedBeacon.setSampleExpirationMilliseconds(20000);
RunningAverageRssiFilter.setSampleExpirationMilliseconds(20000);
Beacon beacon = new Beacon.Builder().setId1("1").build();
RangedBeacon rb = new RangedBeacon(beacon);
RunningAverageRssiFilter.setSampleExpirationMilliseconds(33l);
rb.commitMeasurements();
assertEquals(
"RunningAverageRssiFilter sampleExprirationMilliseconds should not be altered by committing RangedBeacon",
33l,
RunningAverageRssiFilter.getSampleExpirationMilliseconds()
);
}

@Test
public void legacySetSampleExpirationMillisecondsWorksText() {
RangedBeacon.setSampleExpirationMilliseconds(20000);
Expand Down

0 comments on commit 476c0bb

Please sign in to comment.