diff --git a/demo/device-collective/src/jvmMain/kotlin/DeviceCollectiveModel.kt b/demo/device-collective/src/jvmMain/kotlin/DeviceCollectiveModel.kt index d8c64dd..510ab3e 100644 --- a/demo/device-collective/src/jvmMain/kotlin/DeviceCollectiveModel.kt +++ b/demo/device-collective/src/jvmMain/kotlin/DeviceCollectiveModel.kt @@ -44,7 +44,7 @@ internal fun VirtualDeviceState( internal class DeviceCollectiveModel( context: Context, val deviceStates: Collection, - val visibilityRange: Distance = 1.kilometers, + val visibilityRange: Distance = 0.5.kilometers, val radioRange: Distance = 5.kilometers, ) : ModelConstructor(context), PeerConnection { diff --git a/demo/device-collective/src/jvmMain/kotlin/debugModel.kt b/demo/device-collective/src/jvmMain/kotlin/debugModel.kt index d0ec384..cdca5cd 100644 --- a/demo/device-collective/src/jvmMain/kotlin/debugModel.kt +++ b/demo/device-collective/src/jvmMain/kotlin/debugModel.kt @@ -44,7 +44,7 @@ internal fun generateModel( } } - val model = DeviceCollectiveModel(context, devices, 0.2.kilometers) + val model = DeviceCollectiveModel(context, devices) return model } diff --git a/demo/device-collective/src/jvmMain/kotlin/main.kt b/demo/device-collective/src/jvmMain/kotlin/main.kt index 1292a0e..b05f038 100644 --- a/demo/device-collective/src/jvmMain/kotlin/main.kt +++ b/demo/device-collective/src/jvmMain/kotlin/main.kt @@ -51,6 +51,7 @@ import space.kscience.maps.coordinates.Gmc import space.kscience.maps.coordinates.meters import space.kscience.maps.features.* import java.nio.file.Path +import kotlin.time.Duration.Companion.seconds @Composable @@ -69,7 +70,7 @@ fun App() { } val collectiveModel = remember { - generateModel(parentContext, 60) + generateModel(parentContext, 100, reportInterval = 1.seconds) } val roster = remember { @@ -83,12 +84,16 @@ fun App() { LaunchedEffect(collectiveModel) { launchCollectiveMagixServer(collectiveModel) + withContext(Dispatchers.IO) { val magixClient = MagixEndpoint.rSocketWithWebSockets("localhost") client.complete(magixClient) - collectiveModel.roster.forEach { (id, config) -> - devices[id] = magixClient.remoteDevice(parentContext, "listener", id, id.parseAsName()) + + collectiveModel.roster.forEach { (id, config) -> + scope.launch { + devices[id] = magixClient.remoteDevice(parentContext, "listener", id, id.parseAsName()) + } } }