resolve division by zero

This commit is contained in:
Milos Kozak 2023-08-27 00:48:27 +02:00
parent f07ce97834
commit c77fbcd473
4 changed files with 41 additions and 65 deletions

View file

@ -1,30 +0,0 @@
package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Created by geoff on 5/30/16.
* changed by Andy 10/20/18
*/
public class FrequencyScanResults {
public List<FrequencyTrial> trials = new ArrayList<>();
public double bestFrequencyMHz = 0.0;
public long dateTime;
public void sort() {
Collections.sort(trials, (trial1, trial2) -> {
int res = trial1.averageRSSI.compareTo(trial2.averageRSSI);
if (res == 0) {
return (int)(trial1.frequencyMHz - trial2.frequencyMHz);
} else
return res;
});
}
}

View file

@ -0,0 +1,15 @@
package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data
class FrequencyScanResults {
@JvmField var trials: MutableList<FrequencyTrial> = ArrayList()
@JvmField var bestFrequencyMHz = 0.0
@JvmField var dateTime: Long = 0
fun sort() {
trials.sortWith { trial1: FrequencyTrial, trial2: FrequencyTrial ->
val res = trial1.averageRSSI.compareTo(trial2.averageRSSI)
if (res == 0) (trial1.frequencyMHz - trial2.frequencyMHz).toInt()
else res
}
}
}

View file

@ -1,35 +0,0 @@
package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data;
import java.util.ArrayList;
import java.util.List;
/**
* Created by geoff on 5/30/16.
* changed by Andy 10/20/18
*/
public class FrequencyTrial {
public int tries = 0;
public int successes = 0;
public Double averageRSSI = 0.0;
public double frequencyMHz = 0.0;
public List<Integer> rssiList = new ArrayList<>();
public double averageRSSI2;
public void calculateAverage() {
int sum = 0;
int count = 0;
for (Integer rssi : rssiList) {
sum += Math.abs(rssi);
count++;
}
double avg = (sum / (count * 1.0d));
if (count != 0)
this.averageRSSI = avg * (-1);
else
this.averageRSSI = -99.0d;
}
}

View file

@ -0,0 +1,26 @@
package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data
import kotlin.math.abs
class FrequencyTrial {
@JvmField var tries = 0
@JvmField var successes = 0
@JvmField var averageRSSI = 0.0
@JvmField var frequencyMHz = 0.0
@JvmField var rssiList: List<Int> = ArrayList()
@JvmField var averageRSSI2 = 0.0
fun calculateAverage() {
var sum = 0
var count = 0
for (rssi in rssiList) {
sum += abs(rssi)
count++
}
averageRSSI =
if (count != 0) {
val avg = sum / (count * 1.0)
avg * -1
} else -99.0
}
}