fix: do not forward invalid payloads
This commit is contained in:
@@ -129,13 +129,25 @@ class KirbyDevice(
|
||||
|
||||
private fun addMeasurement(characteristic: BluetoothGattCharacteristic) {
|
||||
val hexPayload = characteristic.value.toHexString().substring(2)
|
||||
val payload = Payload(hexPayload)
|
||||
val base64Payload = Base64.getEncoder().encodeToString(characteristic.value)
|
||||
val measurement = DecoderIaq.parseMeasurement(hexPayload)
|
||||
var payload : Payload
|
||||
if (measurement == null) {
|
||||
payload = Payload(hexPayload)
|
||||
} else {
|
||||
payload = Payload(measurement.toString())
|
||||
Log.i("BleListener", "Char received: $payload")
|
||||
measurements.add(payload)
|
||||
val base64Payload = Base64.getEncoder().encodeToString(characteristic.value)
|
||||
publishMeasurement(base64Payload)
|
||||
}
|
||||
|
||||
measurements.add(payload)
|
||||
|
||||
if (measurements.size > maxMeasurements) {
|
||||
measurements.removeFirst()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun publishMeasurement(payload: String) {
|
||||
val accessKey = BuildConfig.API_KEY
|
||||
val url = BuildConfig.API_BASE_URL
|
||||
@@ -163,6 +175,7 @@ class KirbyDevice(
|
||||
}
|
||||
|
||||
private val measurements = ArrayList<Payload>()
|
||||
private val maxMeasurements = 20
|
||||
|
||||
private val statuses = EnumSet.noneOf(DeviceStatus::class.java)
|
||||
|
||||
@@ -362,12 +375,8 @@ private fun payloadToMeasurements(payload: Payload): List<Measurement> {
|
||||
}
|
||||
|
||||
override fun getFormattedValue(): String {
|
||||
val measurement = DecoderIaq.parseMeasurement(payload.payload)
|
||||
if(measurement == null) {
|
||||
return payload.payload
|
||||
}
|
||||
return measurement.toString()
|
||||
}
|
||||
|
||||
override fun getIcon(): Int? {
|
||||
return R.drawable.baseline_numbers_24
|
||||
|
||||
Reference in New Issue
Block a user