blob: 47134a64c5c667d0e9027503955a3add9c78b77e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package mx.trackermap.TrackerMap.client.models
data class UnitInformation(
val device: Device,
val position: Position?
) {
enum class Status {
ONLINE, OFFLINE, UNKNOWN
}
enum class EngineStop {
ON, OFF, UNKNOWN
}
/**
* Status is calculated from speed, because status based on
* the actual connection to the server is useless for our clients.
*/
fun getStatus() = position?.speed?.let {
if (it >= 2) {
Status.ONLINE
} else {
Status.OFFLINE
}
} ?: Status.UNKNOWN
/* Many GPS devices reserve pin 1 for engine stop */
fun getEngineStop() = if (position?.attributes?.containsKey("out1") == true) {
position.attributes["out1"]?.toString()?.let {
when (it) {
"true" -> EngineStop.ON
"false" -> EngineStop.OFF
else -> EngineStop.UNKNOWN
}
} ?: EngineStop.UNKNOWN
} else EngineStop.UNKNOWN
}
|