mirror of
https://github.com/rt-bishop/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Added more satellite parameters to the map screen
This commit is contained in:
1 parent
488fe352cd
commit
ec553bf429
8 files changed
+112
-60
No files matched your search
@@ -11,6 +11,8 @@ interface ISatelliteManager {
|
||||
|
||||
val calculatedPasses: SharedFlow<List<SatPass>>
|
||||
|
||||
fun getPasses(): List<SatPass>
|
||||
|
||||
suspend fun getPosition(sat: Satellite, pos: GeoPos, time: Long): SatPos
|
||||
|
||||
suspend fun getTrack(sat: Satellite, pos: GeoPos, start: Long, end: Long): List<SatPos>
|
||||
|
||||
@@ -27,9 +27,12 @@ import kotlinx.coroutines.withContext
|
||||
|
||||
class SatelliteManager(private val defaultDispatcher: CoroutineDispatcher) : ISatelliteManager {
|
||||
|
||||
private var passes = listOf<SatPass>()
|
||||
private val _calculatedPasses = MutableSharedFlow<List<SatPass>>(replay = 1)
|
||||
override val calculatedPasses: SharedFlow<List<SatPass>> = _calculatedPasses
|
||||
|
||||
override fun getPasses(): List<SatPass> = passes
|
||||
|
||||
override suspend fun getPosition(sat: Satellite, pos: GeoPos, time: Long): SatPos {
|
||||
return withContext(defaultDispatcher) { sat.getPosition(pos, time) }
|
||||
}
|
||||
@@ -96,14 +99,18 @@ class SatelliteManager(private val defaultDispatcher: CoroutineDispatcher) : ISa
|
||||
minElevation: Double
|
||||
) {
|
||||
if (satList.isEmpty()) {
|
||||
_calculatedPasses.emit(emptyList())
|
||||
val newPasses = emptyList<SatPass>()
|
||||
passes = newPasses
|
||||
_calculatedPasses.emit(newPasses)
|
||||
} else {
|
||||
withContext(defaultDispatcher) {
|
||||
val allPasses = mutableListOf<SatPass>()
|
||||
satList.forEach { satellite ->
|
||||
allPasses.addAll(satellite.getPasses(pos, time, hoursAhead))
|
||||
}
|
||||
_calculatedPasses.emit(allPasses.filter(time, hoursAhead, minElevation))
|
||||
val newPasses = allPasses.filter(time, hoursAhead, minElevation)
|
||||
passes = newPasses
|
||||
_calculatedPasses.emit(newPasses)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user