Mock devices improvements (#137)

This commit is contained in:
Aleksander Nowakowski
2024-01-03 13:13:23 +01:00
committed by GitHub
parent c922e69efa
commit de978fd9fc
4 changed files with 23 additions and 13 deletions

View File

@@ -35,7 +35,7 @@ import android.app.Application
import dagger.hilt.android.HiltAndroidApp import dagger.hilt.android.HiltAndroidApp
import no.nordicsemi.android.analytics.AppAnalytics import no.nordicsemi.android.analytics.AppAnalytics
import no.nordicsemi.android.analytics.AppOpenEvent import no.nordicsemi.android.analytics.AppOpenEvent
import no.nordicsemi.android.gls.GlsServer import no.nordicsemi.android.gls.GLSServer
import no.nordicsemi.android.uart.UartServer import no.nordicsemi.android.uart.UartServer
import javax.inject.Inject import javax.inject.Inject
@@ -49,7 +49,7 @@ class NrfToolboxApplication : Application() {
lateinit var uartServer: UartServer lateinit var uartServer: UartServer
@Inject @Inject
lateinit var glsServer: GlsServer lateinit var glsServer: GLSServer
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()

View File

@@ -23,6 +23,7 @@ import no.nordicsemi.android.kotlin.ble.advertiser.BleAdvertiser
import no.nordicsemi.android.kotlin.ble.core.MockServerDevice import no.nordicsemi.android.kotlin.ble.core.MockServerDevice
import no.nordicsemi.android.kotlin.ble.core.advertiser.BleAdvertisingConfig import no.nordicsemi.android.kotlin.ble.core.advertiser.BleAdvertisingConfig
import no.nordicsemi.android.kotlin.ble.core.advertiser.BleAdvertisingData import no.nordicsemi.android.kotlin.ble.core.advertiser.BleAdvertisingData
import no.nordicsemi.android.kotlin.ble.core.advertiser.BleAdvertisingSettings
import no.nordicsemi.android.kotlin.ble.core.data.BleGattPermission import no.nordicsemi.android.kotlin.ble.core.data.BleGattPermission
import no.nordicsemi.android.kotlin.ble.core.data.BleGattProperty import no.nordicsemi.android.kotlin.ble.core.data.BleGattProperty
import no.nordicsemi.android.kotlin.ble.profile.gls.RecordAccessControlPointInputParser import no.nordicsemi.android.kotlin.ble.profile.gls.RecordAccessControlPointInputParser
@@ -39,7 +40,7 @@ private const val STANDARD_DELAY = 1000L
@SuppressLint("MissingPermission") @SuppressLint("MissingPermission")
@Singleton @Singleton
class GlsServer @Inject constructor( class GLSServer @Inject constructor(
private val scope: CoroutineScope, private val scope: CoroutineScope,
@ApplicationContext @ApplicationContext
private val context: Context, private val context: Context,
@@ -151,8 +152,8 @@ class GlsServer @Inject constructor(
fun start( fun start(
context: Context, context: Context,
device: MockServerDevice = MockServerDevice( device: MockServerDevice = MockServerDevice(
name = "GLS Server", name = "Mock Glucose Server",
address = "11:22:33:44:55:66" address = "AA:BB:CC:DD:EE:FF"
), ),
) = scope.launch { ) = scope.launch {
val gmCharacteristic = ServerBleGattCharacteristicConfig( val gmCharacteristic = ServerBleGattCharacteristicConfig(
@@ -199,11 +200,20 @@ class GlsServer @Inject constructor(
logger = { _, log -> println(log) } logger = { _, log -> println(log) }
) )
val advertiser = BleAdvertiser.create(context) BleAdvertiser.create(context)
advertiser.advertise( .advertise(
config = BleAdvertisingConfig(advertiseData = BleAdvertisingData(serviceUuid = ParcelUuid(GLS_SERVICE_UUID))), config = BleAdvertisingConfig(
mock = device settings = BleAdvertisingSettings(
).launchIn(scope) deviceName = "Glucose",
legacyMode = true,
),
advertiseData = BleAdvertisingData(
includeDeviceName = true,
serviceUuid = ParcelUuid(GLS_SERVICE_UUID),
)
),
mock = device)
.launchIn(scope)
launch { launch {
server.connections server.connections

View File

@@ -74,7 +74,7 @@ internal class GLSViewModelTest {
lateinit var viewModel: GLSViewModel lateinit var viewModel: GLSViewModel
lateinit var glsServer: GlsServer lateinit var glsServer: GLSServer
private val device = MockServerDevice( private val device = MockServerDevice(
name = "GLS Server", name = "GLS Server",
@@ -112,7 +112,7 @@ internal class GLSViewModelTest {
})) }))
justRun { viewModel.logAnalytics(any()) } justRun { viewModel.logAnalytics(any()) }
glsServer = GlsServer(CoroutineScope(UnconfinedTestDispatcher()), context, logger) glsServer = GLSServer(CoroutineScope(UnconfinedTestDispatcher()), context, logger)
glsServer.start(spyk(), device) glsServer.start(spyk(), device)
} }
} }

View File

@@ -47,7 +47,7 @@ class UartServer @Inject constructor(
fun start( fun start(
context: Context, context: Context,
device: MockServerDevice = MockServerDevice( device: MockServerDevice = MockServerDevice(
name = "UART Server", name = "Mock UART Server",
address = "66:55:44:33:22:11" address = "66:55:44:33:22:11"
), ),
) = scope.launch { ) = scope.launch {