2021-02-27 13:43:55 +08:00
|
|
|
package com.geeksville.mesh.model
|
|
|
|
|
|
2022-05-26 16:23:47 -03:00
|
|
|
import com.geeksville.mesh.ConfigProtos
|
2021-02-27 13:43:55 +08:00
|
|
|
import com.geeksville.mesh.R
|
|
|
|
|
|
2021-03-29 20:33:06 +08:00
|
|
|
enum class ChannelOption(
|
2022-05-26 16:23:47 -03:00
|
|
|
val modemPreset: ConfigProtos.Config.LoRaConfig.ModemPreset,
|
2021-03-29 20:33:06 +08:00
|
|
|
val configRes: Int,
|
|
|
|
|
val minBroadcastPeriodSecs: Int
|
|
|
|
|
) {
|
2022-05-26 16:23:47 -03:00
|
|
|
SHORT_FAST(ConfigProtos.Config.LoRaConfig.ModemPreset.ShortFast, R.string.modem_config_short, 30),
|
|
|
|
|
SHORT_SLOW(ConfigProtos.Config.LoRaConfig.ModemPreset.ShortSlow, R.string.modem_config_slow_short, 30),
|
|
|
|
|
MED_FAST(ConfigProtos.Config.LoRaConfig.ModemPreset.MidFast, R.string.modem_config_medium, 60),
|
|
|
|
|
MED_SLOW(ConfigProtos.Config.LoRaConfig.ModemPreset.MidSlow, R.string.modem_config_slow_medium, 60),
|
|
|
|
|
LONG_FAST(ConfigProtos.Config.LoRaConfig.ModemPreset.LongFast, R.string.modem_config_long, 240),
|
|
|
|
|
LONG_SLOW(ConfigProtos.Config.LoRaConfig.ModemPreset.LongSlow, R.string.modem_config_slow_long, 375),
|
|
|
|
|
VERY_LONG(ConfigProtos.Config.LoRaConfig.ModemPreset.VLongSlow, R.string.modem_config_very_long, 375);
|
2021-02-27 13:43:55 +08:00
|
|
|
|
|
|
|
|
companion object {
|
2022-05-26 16:23:47 -03:00
|
|
|
fun fromConfig(modemPreset: ConfigProtos.Config.LoRaConfig.ModemPreset?): ChannelOption? {
|
2021-02-27 13:43:55 +08:00
|
|
|
for (option in values()) {
|
2022-05-26 16:23:47 -03:00
|
|
|
if (option.modemPreset == modemPreset)
|
2021-02-27 13:43:55 +08:00
|
|
|
return option
|
|
|
|
|
}
|
|
|
|
|
return null
|
|
|
|
|
}
|
2021-03-29 20:33:06 +08:00
|
|
|
|
2021-02-27 13:43:55 +08:00
|
|
|
val defaultMinBroadcastPeriod = VERY_LONG.minBroadcastPeriodSecs
|
|
|
|
|
}
|
2020-06-14 00:11:08 -04:00
|
|
|
}
|