blob: 1d635c019c7e8d63c0aca7c88e92d8dc6957d42a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package org.terst.nav.ais
enum class CpaSeverity { CAUTION, WARNING, DANGER }
data class CpaAlert(
val mmsi: Int,
val vesselName: String,
val cpaNm: Double,
val tcpaMin: Double,
val severity: CpaSeverity
)
object CpaThresholds {
const val DANGER_CPA_NM = 0.5
const val WARNING_CPA_NM = 1.0
const val CAUTION_CPA_NM = 2.0
const val MAX_TCPA_MIN = 30.0 // ignore contacts closing in > 30 min
}
fun CpaAlert.label(): String {
val name = if (vesselName.isNotBlank()) vesselName else "MMSI $mmsi"
return "%-12s CPA %.1fnm T+%.0fmin".format(name.take(12), cpaNm, tcpaMin)
}
|