Source code for metamoth.enums
"""Enums for the AudioMoth configurations and state."""
from enum import Enum, auto
__all__ = [
"GainSetting",
"BatteryState",
"ExtendedBatteryState",
"RecordingState",
"FilterType",
"BatteryLevelDisplayType",
]
[docs]class GainSetting(Enum):
"""Gain setting."""
AM_GAIN_LOW = 0
AM_GAIN_LOW_MEDIUM = 1
AM_GAIN_MEDIUM = 2
AM_GAIN_MEDIUM_HIGH = 3
AM_GAIN_HIGH = 4
[docs]class BatteryState(Enum):
"""Battery state."""
AM_BATTERY_LOW = 0
AM_BATTERY_3V6 = 1
AM_BATTERY_3V7 = 2
AM_BATTERY_3V8 = 3
AM_BATTERY_3V9 = 4
AM_BATTERY_4V0 = 5
AM_BATTERY_4V1 = 6
AM_BATTERY_4V2 = 7
AM_BATTERY_4V3 = 8
AM_BATTERY_4V4 = 9
AM_BATTERY_4V5 = 10
AM_BATTERY_4V6 = 11
AM_BATTERY_4V7 = 12
AM_BATTERY_4V8 = 13
AM_BATTERY_4V9 = 14
AM_BATTERY_FULL = 15
@property
def volts(self) -> float:
"""Return the battery voltage."""
if self.value == 0:
return 3.6
if self.value == 15:
return 5.0
return (self.value + 35) / 10
[docs]class ExtendedBatteryState(Enum):
"""Extended battery state."""
AM_EXT_BAT_LOW = 0
AM_EXT_BAT_2V5 = 1
AM_EXT_BAT_2V6 = 2
AM_EXT_BAT_2V7 = 3
AM_EXT_BAT_2V8 = 4
AM_EXT_BAT_2V9 = 5
AM_EXT_BAT_3V0 = 6
AM_EXT_BAT_3V1 = 7
AM_EXT_BAT_3V2 = 8
AM_EXT_BAT_3V3 = 9
AM_EXT_BAT_3V4 = 10
AM_EXT_BAT_3V5 = 11
AM_EXT_BAT_3V6 = 12
AM_EXT_BAT_3V7 = 13
AM_EXT_BAT_3V8 = 14
AM_EXT_BAT_3V9 = 15
AM_EXT_BAT_4V0 = 16
AM_EXT_BAT_4V1 = 17
AM_EXT_BAT_4V2 = 18
AM_EXT_BAT_4V3 = 19
AM_EXT_BAT_4V4 = 20
AM_EXT_BAT_4V5 = 21
AM_EXT_BAT_4V6 = 22
AM_EXT_BAT_4V7 = 23
AM_EXT_BAT_4V8 = 24
AM_EXT_BAT_4V9 = 25
AM_EXT_BAT_FULL = 26
@property
def volts(self) -> float:
"""Return the battery voltage."""
if self.value == 0:
return 2.5
if self.value == 26:
return 5.0
return (self.value + 24) / 10
[docs]class RecordingState(Enum):
"""Recording state."""
RECORDING_OKAY = auto()
FILE_SIZE_LIMITED = auto()
SUPPLY_VOLTAGE_LOW = auto()
SWITCH_CHANGED = auto()
MICROPHONE_CHANGED = auto()
MAGNETIC_SWITCH = auto()
SDCARD_WRITE_ERROR = auto()
[docs]class FilterType(Enum):
"""Filter type."""
NO_FILTER = auto()
LOW_PASS = auto()
BAND_PASS = auto()
HIGH_PASS = auto()
[docs]class BatteryLevelDisplayType(Enum):
"""Battery level display type."""
BATTERY_LEVEL = auto()
NIMH_LIPO_BATTERY_VOLTAGE = auto()