From e03e2b1214e6c3a285ec75161ff2d9de2df61d24 Mon Sep 17 00:00:00 2001 From: Azalea Gui Date: Tue, 24 Jan 2023 10:56:47 -0500 Subject: [PATCH] [-] Remove contour clock writing --- .../hydev/wearsync/bles/BluetoothHandler.kt | 57 ++++++------------- 1 file changed, 16 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/org/hydev/wearsync/bles/BluetoothHandler.kt b/app/src/main/java/org/hydev/wearsync/bles/BluetoothHandler.kt index 4fee40c..3a177f7 100644 --- a/app/src/main/java/org/hydev/wearsync/bles/BluetoothHandler.kt +++ b/app/src/main/java/org/hydev/wearsync/bles/BluetoothHandler.kt @@ -9,7 +9,6 @@ import org.hydev.wearsync.BluePeri import org.hydev.wearsync.bles.decoders.* import timber.log.Timber import timber.log.Timber.DebugTree -import java.nio.ByteOrder import java.util.* internal class BluetoothHandler private constructor(context: Context) { @@ -25,28 +24,24 @@ internal class BluetoothHandler private constructor(context: Context) { val temperatureChannel = Channel(UNLIMITED) val weightChannel = Channel(UNLIMITED) - private fun handlePeripheral(peripheral: BluePeri) { + private fun BluePeri.handle() { scope.launch { try { - Timber.i("MTU is ${peripheral.requestMtu(185)}") - peripheral.requestConnectionPriority(ConnectionPriority.HIGH) - Timber.i("RSSI is ${peripheral.readRemoteRssi()}") - Timber.i("Received: ${peripheral.read(ManufacturerDecoder())}") - Timber.i("Received: ${peripheral.read(ModelDecoder())}") - Timber.i("Battery level: ${peripheral.read(BatteryDecoder())}") + Timber.i("MTU is ${requestMtu(185)}") + requestConnectionPriority(ConnectionPriority.HIGH) + Timber.i("RSSI is ${readRemoteRssi()}") + Timber.i("Received: ${read(ManufacturerDecoder())}") + Timber.i("Received: ${read(ModelDecoder())}") + Timber.i("Battery level: ${read(BatteryDecoder())}") - peripheral.observe(batteryChannel, BatteryDecoder()) - peripheral.observe(heartRateChannel, HeartRateDecoder()) - peripheral.observe(temperatureChannel, TemperatureDecoder()) - peripheral.observe(weightChannel, WeightDecoder()) - peripheral.observe(bloodPressureChannel, BloodPressureDecoder()) - peripheral.observe(pulseOxSpotChannel, PLXSpotDecoder()) - peripheral.observe(pulseOxContinuousChannel, PLXContinuousDecoder()) - setupGLXnotifications(peripheral) - - peripheral.getCharacteristic(CONTOUR_SERVICE_UUID, CONTOUR_CLOCK)?.let { - writeContourClock(peripheral) - } + observe(batteryChannel, BatteryDecoder()) + observe(heartRateChannel, HeartRateDecoder()) + observe(temperatureChannel, TemperatureDecoder()) + observe(weightChannel, WeightDecoder()) + observe(bloodPressureChannel, BloodPressureDecoder()) + observe(pulseOxSpotChannel, PLXSpotDecoder()) + observe(pulseOxContinuousChannel, PLXContinuousDecoder()) + setupGLXnotifications(this@handle) } catch (e: IllegalArgumentException) { Timber.e(e) } catch (b: GattException) { @@ -55,22 +50,6 @@ internal class BluetoothHandler private constructor(context: Context) { } } - private suspend fun writeContourClock(peripheral: BluePeri) { - val calendar = Calendar.getInstance() - val offsetInMinutes = calendar.timeZone.rawOffset / 60000 - calendar.timeZone = TimeZone.getTimeZone("UTC") - val parser = BluetoothBytesParser(ByteOrder.LITTLE_ENDIAN) - parser.setIntValue(1, BluetoothBytesParser.FORMAT_UINT8) - parser.setIntValue(calendar[Calendar.YEAR], BluetoothBytesParser.FORMAT_UINT16) - parser.setIntValue(calendar[Calendar.MONTH] + 1, BluetoothBytesParser.FORMAT_UINT8) - parser.setIntValue(calendar[Calendar.DAY_OF_MONTH], BluetoothBytesParser.FORMAT_UINT8) - parser.setIntValue(calendar[Calendar.HOUR_OF_DAY], BluetoothBytesParser.FORMAT_UINT8) - parser.setIntValue(calendar[Calendar.MINUTE], BluetoothBytesParser.FORMAT_UINT8) - parser.setIntValue(calendar[Calendar.SECOND], BluetoothBytesParser.FORMAT_UINT8) - parser.setIntValue(offsetInMinutes, BluetoothBytesParser.FORMAT_SINT16) - peripheral.writeCharacteristic(CONTOUR_SERVICE_UUID, CONTOUR_CLOCK, parser.value, WriteType.WITH_RESPONSE) - } - private suspend fun setupGLXnotifications(peripheral: BluePeri) { peripheral.observe(glucoseChannel, GlucoseDecoder()) @@ -138,10 +117,6 @@ internal class BluetoothHandler private constructor(context: Context) { val GLUCOSE_SERVICE_UUID = UUID.fromString("00001808-0000-1000-8000-00805f9b34fb") val GLUCOSE_RECORD_ACCESS_POINT_CHARACTERISTIC_UUID = UUID.fromString("00002A52-0000-1000-8000-00805f9b34fb") - // Contour Glucose Service - val CONTOUR_SERVICE_UUID = UUID.fromString("00000000-0002-11E2-9E96-0800200C9A66") - val CONTOUR_CLOCK = UUID.fromString("00001026-0002-11E2-9E96-0800200C9A66") - private var instance: BluetoothHandler? = null val Context.ble get(): BluetoothHandler { if (instance == null) { @@ -160,7 +135,7 @@ internal class BluetoothHandler private constructor(context: Context) { central.observeConnectionState { peripheral, state -> Timber.i("Peripheral '${peripheral.name}' is $state") when (state) { - ConnectionState.CONNECTED -> handlePeripheral(peripheral) + ConnectionState.CONNECTED -> peripheral.handle() ConnectionState.DISCONNECTED -> scope.launch { delay(15000)