Module idpmodem.constants
IsatData Pro modem constants.
This module provides mapping of constants used within an IDP modem.
Expand source code
# -*- coding: utf-8 -*-
"""IsatData Pro modem constants.
This module provides mapping of constants used within an IDP modem.
"""
from enum import Enum, IntEnum, IntFlag
class MessagePriority(IntEnum):
NONE = 0
HIGH = 1
MEDH = 2
MEDL = 3
LOW = 4
class DataFormat(IntEnum):
TEXT = 1
HEX = 2
BASE64 = 3
CONTROL_STATES = {
0: 'Stopped',
1: 'Waiting for GNSS fix',
2: 'Starting search',
3: 'Beam search',
4: 'Beam found',
5: 'Beam acquired',
6: 'Beam switch in progress',
7: 'Registration in progress',
8: 'Receive only',
9: 'Downloading Bulletin Board',
10: 'Active',
11: 'Blocked',
12: 'Confirm previously registered beam',
13: 'Confirm requested beam',
14: 'Connect to confirmed beam'
}
class SatlliteControlState(IntEnum):
STOPPED = 0
GNSS_WAIT = 1
SEARCH_START = 2
BEAM_SEARCH = 3
BEAM_FOUND = 4
BEAM_ACQUIRED = 5
BEAM_SWITCH = 6
REGISTERING = 7
RECEIVE_ONLY = 8
BB_DOWNLOAD = 9
ACTIVE = 10
BLOCKED = 11
CONFIRM_PREVIOUS_BEAM = 12
CONFIRM_REQUESTED_BEAM = 13
CONNECT_CONFIRMED_BEAM = 14
class BeamSearchState(IntEnum):
IDLE = 0
SEARCH_ANY_TRAFFIC = 1
SEARCH_LAST_TRAFFIC = 2
RESERVED = 3
SEARCH_NEW_TRAFFIC = 4
SEARCH_BULLETIN_BOARD = 5
DELAY_TRAFFIC_SEARCH = 6
class MessageState(IntEnum):
UNAVAILABLE = 0
RX_PENDING = 1
RX_COMPLETE = 2
RX_RETRIEVED = 3
TX_READY = 4
TX_SENDING = 5
TX_COMPLETE = 6
TX_FAILED = 7
TX_CANCELLED = 8
AT_ERROR_CODES = {
0: 'OK',
4: 'ERROR',
100: 'ERR_INVALID_CRC_SEQUENCE',
101: 'ERR_UNKNOWN_COMMAND',
102: 'ERR_INVALID_COMMAND_PARAMETERS',
103: 'ERR_MESSAGE_LENGTH_EXCEEDS_FORMAT_SIZE',
104: 'ERR_RESERVED_104',
105: 'ERR_SYSTEM_ERROR',
106: 'ERR_QUEUE_INSUFFICIENT_RESOURCES',
107: 'ERR_MESSAGE_NAME_ALREADY_IN_USE',
108: 'ERR_TIMEOUT_OCCURRED',
109: 'ERR_UNAVAILABLE',
110: 'ERR_RESERVED_110',
111: 'ERR_RESERVED_111',
112: 'ERR_ATTEMPT_TO_WRITE_READ_ONLY_PARAMETER'
}
WAKEUP_PERIODS = {
0: 'SECONDS_5',
1: 'SECONDS_30',
2: 'MINUTES_1',
3: 'MINUTES_3',
4: 'MINUTES_10',
5: 'MINUTES_30',
6: 'MINUTES_60',
7: 'MINUTES_2',
8: 'MINUTES_5',
9: 'MINUTES_15',
10: 'MINUTES_20'
}
POWER_MODES = {
0: 'MOBILE_POWERED',
1: 'FIXED_POWERED',
2: 'MOBILE_BATTERY',
3: 'FIXED_BATTERY',
4: 'MOBILE_MINIMAL',
5: 'MOBILE_PARKED'
}
class IdpEnum(IntEnum):
@classmethod
def is_valid(cls, value: int) -> bool:
"""True if the value exists in the enumeration."""
return value in [v.value for v in cls.__members__.values()]
class AtErrorCode(IdpEnum):
OK = 0
ERROR = 4
INVALID_CRC = 100
UNKNOWN_COMMAND = 101
INVALID_COMMAND_PARAMETERS = 102
MESSAGE_LENGTH_EXCEEDS_FORMAT_SIZE = 103
RESERVED_104 = 104
SYSTEM_ERROR = 105
QUEUE_INSUFFICIENT_RESOURCES = 106
DUPLICATE_MESSAGE_NAME = 107
GNSS_TIMEOUT = 108
MESSAGE_UNAVAILABLE = 109
RESERVED_110 = 110
RESERVED_111 = 111
READ_ONLY_PARAMETER = 112
class PowerMode(IdpEnum):
MOBILE_POWERED = 0
FIXED_POWERED = 1
MOBILE_BATTERY = 2
FIXED_BATTERY = 3
MOBILE_MINIMAL = 4
MOBILE_PARKED = 5
def gnss_refresh_hours(self):
"""The minimum GNSS refresh interval [hours]."""
if self.value == 0:
return 3
if self.value == 1:
return 24
if self.value == 2:
return 6
if self.value == 3:
return 14 * 24
if self.value == 4:
return 12
if self.value == 5:
return 24
def transmit_lifetime_seconds(self):
"""The maximum duration of a message in the transmit queue [seconds]."""
if self.value in [0, 1]:
return 3 * 3600
return 3 * 60
def beam_search_interval_seconds(self):
"""The minimum time between background beam searches [seconds]."""
if self.value in [0, 2, 4]:
return 20 * 60
return 60 * 60
def short_term_blockage_seconds(self):
"""The time in blockage before initiating a beam search [seconds]."""
if self.value in [0, 1]:
return 5 * 60
if self.value in [2, 3, 4]:
return 20 * 60
return 15 * 60
def beam_search_maximum_seconds(self):
"""The maximum backoff interval between searches when blocked [seconds].
"""
if self.value in [0, 1]:
return 0
return 1600 * 60
class WakeupPeriod(IdpEnum):
SECONDS_5 = 0
SECONDS_30 = 1
MINUTES_1 = 2
MINUTES_3 = 3
MINUTES_10 = 4
MINUTES_30 = 5
MINUTES_60 = 6
MINUTES_2 = 7
MINUTES_5 = 8
MINUTES_15 = 9
MINUTES_20 = 10
def seconds(self):
value = int(self.name.split('_'))[1]
if self.name.startswith('MINUTES'):
return value * 60
return value
class GnssMode(IdpEnum):
GPS = 0
GLONASS = 1
BEIDOU = 2
GALILEO = 3
GPS_GLONASS = 10
GPS_BEIDOU = 11
GLONASS_BEIDOU = 12
GPS_GALILEO = 13
GLONASS_GALILEO = 14
BEIDOU_GALILEO = 15
# Dynamic Platform Model - use with caution
GNSS_DPM_MODES = {
0: 'PORTABLE',
2: 'STATIONARY',
3: 'PEDESTRIAN',
4: 'AUTOMOTIVE',
5: 'SEA',
6: 'AIR_1G',
7: 'AIR_2G',
8: 'AIR_4G'
}
class SignalLevelRegional(Enum):
"""Qualitative descriptors for SNR/CN0 values for a IDP Regional Beam.
BARS_n: *n* is a scale from 0..5 to be used as greaterThan threshold
NONE, MARGINAL, GOOD: a scale to be used as greaterOrEqual threshold
"""
BARS_0 = 0
BARS_1 = 37.0
BARS_2 = 39.0
BARS_3 = 41.0
BARS_4 = 43.0
BARS_5 = 45.5
INVALID = 55.0
class SignalQuality(IntEnum):
NONE = 0
WEAK = 1
LOW = 2
MID = 3
GOOD = 4
STRONG = 5
WARNING = 6
class EventNotification(IntFlag):
GNSS_FIX_NEW = 0b000000000001
MESSAGE_MT_RECEIVED = 0b000000000010
MESSAGE_MO_COMPLETE = 0b000000000100
NETWORK_REGISTERED = 0b000000001000
MODEM_RESET_COMPLETE = 0b000000010000
JAMMING_ANTENNA_CHANGE = 0b000000100000
MODEM_RESET_PENDING = 0b000001000000
WAKEUP_PERIOD_CHANGE = 0b000010000000
UTC_TIME_SYNC = 0b000100000000
GNSS_FIX_TIMEOUT = 0b001000000000
EVENT_TRACE_CACHED = 0b010000000000
NETWORK_PING_ACKNOWLEDGED = 0b100000000000
class TransmitterStatus(IdpEnum):
RX_ONLY_NOT_REGISTERED = 4
OK = 5
SUSPENDED = 6
MUTED = 7
BLOCKED = 8
class EventTraceClass(IdpEnum):
HARDWARE_FAULT = 1
SYSTEM = 2
SATELLITE = 3
GNSS = 4
MESSAGE = 5
class EventTraceSubclass(IdpEnum):
"""Base class for trace subclasses"""
class EventTraceSystem(EventTraceSubclass):
RESET = 1
LOW_POWER = 2
SYSTEM_STATS = 3
SATCOM_STATS = 4
class EventTraceSatellite(EventTraceSubclass):
RX_STATUS = 1
TX_STATUS = 2
BEAM_CONNECT = 3
BEAM_SEARCH_RESULT = 4
GEO_ADJUST = 5
EVENT_LOG = 6
RX_METRICS_SUBFRAME = 16
RX_METRICS_MINUTE = 17
RX_METRICS_HOUR = 18
RX_METRICS_DAY = 19
TX_METRICS_SUBFRAME = 20
TX_METRICS_MINUTE = 21
TX_METRICS_HOUR = 22
TX_METRICS_DAY = 23
class EventTraceGnss(EventTraceSubclass):
FIX_STATS = 1
DOPPLER = 4
class EventTraceMessage(EventTraceSubclass):
RECEIVE_STATS = 1
TRANSMIT_STATS = 2
TRANSMIT_UTILITY = 3
class EventTrace:
def __init__(self,
trace_class: EventTraceClass,
trace_subclass: EventTraceSubclass,
data: 'tuple[str, str|dict|IntEnum]') -> None:
"""Defines an event trace.
Args:
trace_class: The enumerated class
trace_subclass: The enumerated subclass dependent on the class
data: The set of (name, meta) where meta defines either a
data type (e.g. `uint`) or a mapping (`dict` or `IntEnum`)
"""
self.trace_class: EventTraceClass = trace_class
self.trace_subclass: EventTraceSubclass = trace_subclass
self.data: 'tuple[str, str|dict|IntEnum]' = data
EVENT_TRACE_SATELLITE_GENERAL = EventTrace(
trace_class=EventTraceClass.SATELLITE,
trace_subclass=EventTraceSatellite.RX_STATUS,
data=(
('subframe_number', 'uint'),
('traffic_vcid', 'uint'),
('configuration_id', 'uint'),
('beam_number', 'uint'),
('reserved04', 'uint'),
('tx_access_sip', 'uint'),
('tx_access_operator', 'uint'),
('tx_access_user', 'uint'),
('tx_suspend_flags', {
0x1: 'BEAM_REGISTRATION',
0x2: 'BEAM_SWITCH',
0x4: 'RESERVED',
0x8: 'BLOCKED',
}),
('tx_messages_active', 'uint'),
('tx_messages_total', 'uint'),
('tx_packets_active', 'uint'),
('tx_state', {
0: 'ACTIVE',
1: 'SUSPENDING',
2: 'SUSPENDED_PENDING_GNSS'}),
('active_rx_messages', 'uint'),
('beamswitch_averaging_window', 'uint'),
('beamswitch_averaging_count', 'uint'),
('c_n_x100', 'uint'),
('beamsample_threshold', 'uint'),
('beamsample_timer', 'uint'),
('flags', {
0x1: 'REGISTERED',
0x2: 'SENDING_BEAM_REGISTRATION',
0x10: 'BEAM_SEARCH',
0x20: 'BEAM_SAMPLE_REQUIRED',
0x40: 'BEAM_SWITCH_PENDING',
0x100: 'GNSS_VALID',
0x200: 'GNSS_REQUIRED',
0x400: 'GNSS_PENDING',
}),
('gnss_state_timer', 'uint'),
('reserved21', 'uint'),
('satellite_control_state', SatlliteControlState),
('beam_search_state', BeamSearchState),
)
)
EVENT_TRACES = (
EVENT_TRACE_SATELLITE_GENERAL,
)
GEOBEAMS = {
1: 'AMER RB1',
2: 'AMER RB2',
3: 'AMER RB3',
4: 'AMER RB4',
5: 'AMER RB5',
6: 'AMER RB6',
7: 'AMER RB7',
8: 'AMER RB8',
9: 'AMER RB9',
10: 'AMER RB10',
11: 'AMER RB11',
12: 'AMER RB12',
13: 'AMER RB13',
14: 'AMER RB14',
15: 'AMER RB15',
16: 'AMER RB16',
17: 'AMER RB17',
18: 'AMER RB18',
19: 'AMER RB19',
61: 'AORW SC',
21: 'EMEA RB1',
22: 'EMEA RB2',
23: 'EMEA RB3',
24: 'EMEA RB4',
25: 'EMEA RB5',
26: 'EMEA RB6',
27: 'EMEA RB7',
28: 'EMEA RB8',
29: 'EMEA RB9',
30: 'EMEA RB10',
31: 'EMEA RB11',
32: 'EMEA RB12',
33: 'EMEA RB13',
34: 'EMEA RB14',
35: 'EMEA RB15',
36: 'EMEA RB16',
37: 'EMEA RB17',
38: 'EMEA RB18',
39: 'EMEA RB19',
41: 'APAC RB1',
42: 'APAC RB2',
43: 'APAC RB3',
44: 'APAC RB4',
45: 'APAC RB5',
46: 'APAC RB6',
47: 'APAC RB7',
48: 'APAC RB8',
49: 'APAC RB9',
50: 'APAC RB10',
51: 'APAC RB11',
52: 'APAC RB12',
53: 'APAC RB13',
54: 'APAC RB14',
55: 'APAC RB15',
56: 'APAC RB16',
57: 'APAC RB17',
58: 'APAC RB18',
59: 'APAC RB19',
90: 'MEAS RB10',
91: 'MEAS RB11',
92: 'MEAS RB12',
93: 'MEAS RB15',
}
class GeoBeam(IdpEnum):
GLOBAL_BB = 0
AMER_RB1 = 1
AMER_RB2 = 2
AMER_RB3 = 3
AMER_RB4 = 4
AMER_RB5 = 5
AMER_RB6 = 6
AMER_RB7 = 7
AMER_RB8 = 8
AMER_RB9 = 9
AMER_RB10 = 10
AMER_RB11 = 11
AMER_RB12 = 12
AMER_RB13 = 13
AMER_RB14 = 14
AMER_RB15 = 15
AMER_RB16 = 16
AMER_RB17 = 17
AMER_RB18 = 18
AMER_RB19 = 19
AORW_SC = 61
EMEA_RB1 = 21
EMEA_RB2 = 22
EMEA_RB3 = 23
EMEA_RB4 = 24
EMEA_RB5 = 25
EMEA_RB6 = 26
EMEA_RB7 = 27
EMEA_RB8 = 28
EMEA_RB9 = 29
EMEA_RB10 = 30
EMEA_RB11 = 31
EMEA_RB12 = 32
EMEA_RB13 = 33
EMEA_RB14 = 34
EMEA_RB15 = 35
EMEA_RB16 = 36
EMEA_RB17 = 37
EMEA_RB18 = 38
EMEA_RB19 = 39
APAC_RB1 = 41
APAC_RB2 = 42
APAC_RB3 = 43
APAC_RB4 = 44
APAC_RB5 = 45
APAC_RB6 = 46
APAC_RB7 = 47
APAC_RB8 = 48
APAC_RB9 = 49
APAC_RB10 = 50
APAC_RB11 = 51
APAC_RB12 = 52
APAC_RB13 = 53
APAC_RB14 = 54
APAC_RB15 = 55
APAC_RB16 = 56
APAC_RB17 = 57
APAC_RB18 = 58
APAC_RB19 = 59
MEAS_RB10 = 90
MEAS_RB11 = 91
MEAS_RB12 = 92
MEAS_RB15 = 93
def satellite(self):
return self.name.split('_')[0]
def beam(self):
return self.name.split('_')[1]
def id(self):
return self.value
Classes
class AtErrorCode (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class AtErrorCode(IdpEnum): OK = 0 ERROR = 4 INVALID_CRC = 100 UNKNOWN_COMMAND = 101 INVALID_COMMAND_PARAMETERS = 102 MESSAGE_LENGTH_EXCEEDS_FORMAT_SIZE = 103 RESERVED_104 = 104 SYSTEM_ERROR = 105 QUEUE_INSUFFICIENT_RESOURCES = 106 DUPLICATE_MESSAGE_NAME = 107 GNSS_TIMEOUT = 108 MESSAGE_UNAVAILABLE = 109 RESERVED_110 = 110 RESERVED_111 = 111 READ_ONLY_PARAMETER = 112
Ancestors
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var DUPLICATE_MESSAGE_NAME
var ERROR
var GNSS_TIMEOUT
var INVALID_COMMAND_PARAMETERS
var INVALID_CRC
var MESSAGE_LENGTH_EXCEEDS_FORMAT_SIZE
var MESSAGE_UNAVAILABLE
var OK
var QUEUE_INSUFFICIENT_RESOURCES
var READ_ONLY_PARAMETER
var RESERVED_104
var RESERVED_110
var RESERVED_111
var SYSTEM_ERROR
var UNKNOWN_COMMAND
Inherited members
class BeamSearchState (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class BeamSearchState(IntEnum): IDLE = 0 SEARCH_ANY_TRAFFIC = 1 SEARCH_LAST_TRAFFIC = 2 RESERVED = 3 SEARCH_NEW_TRAFFIC = 4 SEARCH_BULLETIN_BOARD = 5 DELAY_TRAFFIC_SEARCH = 6
Ancestors
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var DELAY_TRAFFIC_SEARCH
var IDLE
var RESERVED
var SEARCH_ANY_TRAFFIC
var SEARCH_BULLETIN_BOARD
var SEARCH_LAST_TRAFFIC
var SEARCH_NEW_TRAFFIC
class DataFormat (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class DataFormat(IntEnum): TEXT = 1 HEX = 2 BASE64 = 3
Ancestors
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var BASE64
var HEX
var TEXT
class EventNotification (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class EventNotification(IntFlag): GNSS_FIX_NEW = 0b000000000001 MESSAGE_MT_RECEIVED = 0b000000000010 MESSAGE_MO_COMPLETE = 0b000000000100 NETWORK_REGISTERED = 0b000000001000 MODEM_RESET_COMPLETE = 0b000000010000 JAMMING_ANTENNA_CHANGE = 0b000000100000 MODEM_RESET_PENDING = 0b000001000000 WAKEUP_PERIOD_CHANGE = 0b000010000000 UTC_TIME_SYNC = 0b000100000000 GNSS_FIX_TIMEOUT = 0b001000000000 EVENT_TRACE_CACHED = 0b010000000000 NETWORK_PING_ACKNOWLEDGED = 0b100000000000
Ancestors
- enum.IntFlag
- builtins.int
- enum.Flag
- enum.Enum
Class variables
var EVENT_TRACE_CACHED
var GNSS_FIX_NEW
var GNSS_FIX_TIMEOUT
var JAMMING_ANTENNA_CHANGE
var MESSAGE_MO_COMPLETE
var MESSAGE_MT_RECEIVED
var MODEM_RESET_COMPLETE
var MODEM_RESET_PENDING
var NETWORK_PING_ACKNOWLEDGED
var NETWORK_REGISTERED
var UTC_TIME_SYNC
var WAKEUP_PERIOD_CHANGE
class EventTrace (trace_class: EventTraceClass, trace_subclass: EventTraceSubclass, data: tuple[str, str|dict|IntEnum])
-
Defines an event trace.
Args
trace_class
- The enumerated class
trace_subclass
- The enumerated subclass dependent on the class
data
- The set of (name, meta) where meta defines either a
data type (e.g.
uint
) or a mapping (dict
orIntEnum
)
Expand source code
class EventTrace: def __init__(self, trace_class: EventTraceClass, trace_subclass: EventTraceSubclass, data: 'tuple[str, str|dict|IntEnum]') -> None: """Defines an event trace. Args: trace_class: The enumerated class trace_subclass: The enumerated subclass dependent on the class data: The set of (name, meta) where meta defines either a data type (e.g. `uint`) or a mapping (`dict` or `IntEnum`) """ self.trace_class: EventTraceClass = trace_class self.trace_subclass: EventTraceSubclass = trace_subclass self.data: 'tuple[str, str|dict|IntEnum]' = data
class EventTraceClass (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class EventTraceClass(IdpEnum): HARDWARE_FAULT = 1 SYSTEM = 2 SATELLITE = 3 GNSS = 4 MESSAGE = 5
Ancestors
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var GNSS
var HARDWARE_FAULT
var MESSAGE
var SATELLITE
var SYSTEM
Inherited members
class EventTraceGnss (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class EventTraceGnss(EventTraceSubclass): FIX_STATS = 1 DOPPLER = 4
Ancestors
- EventTraceSubclass
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var DOPPLER
var FIX_STATS
Inherited members
class EventTraceMessage (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class EventTraceMessage(EventTraceSubclass): RECEIVE_STATS = 1 TRANSMIT_STATS = 2 TRANSMIT_UTILITY = 3
Ancestors
- EventTraceSubclass
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var RECEIVE_STATS
var TRANSMIT_STATS
var TRANSMIT_UTILITY
Inherited members
class EventTraceSatellite (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class EventTraceSatellite(EventTraceSubclass): RX_STATUS = 1 TX_STATUS = 2 BEAM_CONNECT = 3 BEAM_SEARCH_RESULT = 4 GEO_ADJUST = 5 EVENT_LOG = 6 RX_METRICS_SUBFRAME = 16 RX_METRICS_MINUTE = 17 RX_METRICS_HOUR = 18 RX_METRICS_DAY = 19 TX_METRICS_SUBFRAME = 20 TX_METRICS_MINUTE = 21 TX_METRICS_HOUR = 22 TX_METRICS_DAY = 23
Ancestors
- EventTraceSubclass
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var BEAM_CONNECT
var BEAM_SEARCH_RESULT
var EVENT_LOG
var GEO_ADJUST
var RX_METRICS_DAY
var RX_METRICS_HOUR
var RX_METRICS_MINUTE
var RX_METRICS_SUBFRAME
var RX_STATUS
var TX_METRICS_DAY
var TX_METRICS_HOUR
var TX_METRICS_MINUTE
var TX_METRICS_SUBFRAME
var TX_STATUS
Inherited members
class EventTraceSubclass (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
Base class for trace subclasses
Expand source code
class EventTraceSubclass(IdpEnum): """Base class for trace subclasses"""
Ancestors
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Subclasses
Inherited members
class EventTraceSystem (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class EventTraceSystem(EventTraceSubclass): RESET = 1 LOW_POWER = 2 SYSTEM_STATS = 3 SATCOM_STATS = 4
Ancestors
- EventTraceSubclass
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var LOW_POWER
var RESET
var SATCOM_STATS
var SYSTEM_STATS
Inherited members
class GeoBeam (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class GeoBeam(IdpEnum): GLOBAL_BB = 0 AMER_RB1 = 1 AMER_RB2 = 2 AMER_RB3 = 3 AMER_RB4 = 4 AMER_RB5 = 5 AMER_RB6 = 6 AMER_RB7 = 7 AMER_RB8 = 8 AMER_RB9 = 9 AMER_RB10 = 10 AMER_RB11 = 11 AMER_RB12 = 12 AMER_RB13 = 13 AMER_RB14 = 14 AMER_RB15 = 15 AMER_RB16 = 16 AMER_RB17 = 17 AMER_RB18 = 18 AMER_RB19 = 19 AORW_SC = 61 EMEA_RB1 = 21 EMEA_RB2 = 22 EMEA_RB3 = 23 EMEA_RB4 = 24 EMEA_RB5 = 25 EMEA_RB6 = 26 EMEA_RB7 = 27 EMEA_RB8 = 28 EMEA_RB9 = 29 EMEA_RB10 = 30 EMEA_RB11 = 31 EMEA_RB12 = 32 EMEA_RB13 = 33 EMEA_RB14 = 34 EMEA_RB15 = 35 EMEA_RB16 = 36 EMEA_RB17 = 37 EMEA_RB18 = 38 EMEA_RB19 = 39 APAC_RB1 = 41 APAC_RB2 = 42 APAC_RB3 = 43 APAC_RB4 = 44 APAC_RB5 = 45 APAC_RB6 = 46 APAC_RB7 = 47 APAC_RB8 = 48 APAC_RB9 = 49 APAC_RB10 = 50 APAC_RB11 = 51 APAC_RB12 = 52 APAC_RB13 = 53 APAC_RB14 = 54 APAC_RB15 = 55 APAC_RB16 = 56 APAC_RB17 = 57 APAC_RB18 = 58 APAC_RB19 = 59 MEAS_RB10 = 90 MEAS_RB11 = 91 MEAS_RB12 = 92 MEAS_RB15 = 93 def satellite(self): return self.name.split('_')[0] def beam(self): return self.name.split('_')[1] def id(self): return self.value
Ancestors
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var AMER_RB1
var AMER_RB10
var AMER_RB11
var AMER_RB12
var AMER_RB13
var AMER_RB14
var AMER_RB15
var AMER_RB16
var AMER_RB17
var AMER_RB18
var AMER_RB19
var AMER_RB2
var AMER_RB3
var AMER_RB4
var AMER_RB5
var AMER_RB6
var AMER_RB7
var AMER_RB8
var AMER_RB9
var AORW_SC
var APAC_RB1
var APAC_RB10
var APAC_RB11
var APAC_RB12
var APAC_RB13
var APAC_RB14
var APAC_RB15
var APAC_RB16
var APAC_RB17
var APAC_RB18
var APAC_RB19
var APAC_RB2
var APAC_RB3
var APAC_RB4
var APAC_RB5
var APAC_RB6
var APAC_RB7
var APAC_RB8
var APAC_RB9
var EMEA_RB1
var EMEA_RB10
var EMEA_RB11
var EMEA_RB12
var EMEA_RB13
var EMEA_RB14
var EMEA_RB15
var EMEA_RB16
var EMEA_RB17
var EMEA_RB18
var EMEA_RB19
var EMEA_RB2
var EMEA_RB3
var EMEA_RB4
var EMEA_RB5
var EMEA_RB6
var EMEA_RB7
var EMEA_RB8
var EMEA_RB9
var GLOBAL_BB
var MEAS_RB10
var MEAS_RB11
var MEAS_RB12
var MEAS_RB15
Methods
def beam(self)
-
Expand source code
def beam(self): return self.name.split('_')[1]
def id(self)
-
Expand source code
def id(self): return self.value
def satellite(self)
-
Expand source code
def satellite(self): return self.name.split('_')[0]
Inherited members
class GnssMode (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class GnssMode(IdpEnum): GPS = 0 GLONASS = 1 BEIDOU = 2 GALILEO = 3 GPS_GLONASS = 10 GPS_BEIDOU = 11 GLONASS_BEIDOU = 12 GPS_GALILEO = 13 GLONASS_GALILEO = 14 BEIDOU_GALILEO = 15
Ancestors
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var BEIDOU
var BEIDOU_GALILEO
var GALILEO
var GLONASS
var GLONASS_BEIDOU
var GLONASS_GALILEO
var GPS
var GPS_BEIDOU
var GPS_GALILEO
var GPS_GLONASS
Inherited members
class IdpEnum (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class IdpEnum(IntEnum): @classmethod def is_valid(cls, value: int) -> bool: """True if the value exists in the enumeration.""" return value in [v.value for v in cls.__members__.values()]
Ancestors
- enum.IntEnum
- builtins.int
- enum.Enum
Subclasses
- AtErrorCode
- EventTraceClass
- EventTraceSubclass
- GeoBeam
- GnssMode
- PowerMode
- TransmitterStatus
- WakeupPeriod
Static methods
def is_valid(value: int) ‑> bool
-
True if the value exists in the enumeration.
Expand source code
@classmethod def is_valid(cls, value: int) -> bool: """True if the value exists in the enumeration.""" return value in [v.value for v in cls.__members__.values()]
class MessagePriority (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class MessagePriority(IntEnum): NONE = 0 HIGH = 1 MEDH = 2 MEDL = 3 LOW = 4
Ancestors
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var HIGH
var LOW
var MEDH
var MEDL
var NONE
class MessageState (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class MessageState(IntEnum): UNAVAILABLE = 0 RX_PENDING = 1 RX_COMPLETE = 2 RX_RETRIEVED = 3 TX_READY = 4 TX_SENDING = 5 TX_COMPLETE = 6 TX_FAILED = 7 TX_CANCELLED = 8
Ancestors
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var RX_COMPLETE
var RX_PENDING
var RX_RETRIEVED
var TX_CANCELLED
var TX_COMPLETE
var TX_FAILED
var TX_READY
var TX_SENDING
var UNAVAILABLE
class PowerMode (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class PowerMode(IdpEnum): MOBILE_POWERED = 0 FIXED_POWERED = 1 MOBILE_BATTERY = 2 FIXED_BATTERY = 3 MOBILE_MINIMAL = 4 MOBILE_PARKED = 5 def gnss_refresh_hours(self): """The minimum GNSS refresh interval [hours].""" if self.value == 0: return 3 if self.value == 1: return 24 if self.value == 2: return 6 if self.value == 3: return 14 * 24 if self.value == 4: return 12 if self.value == 5: return 24 def transmit_lifetime_seconds(self): """The maximum duration of a message in the transmit queue [seconds].""" if self.value in [0, 1]: return 3 * 3600 return 3 * 60 def beam_search_interval_seconds(self): """The minimum time between background beam searches [seconds].""" if self.value in [0, 2, 4]: return 20 * 60 return 60 * 60 def short_term_blockage_seconds(self): """The time in blockage before initiating a beam search [seconds].""" if self.value in [0, 1]: return 5 * 60 if self.value in [2, 3, 4]: return 20 * 60 return 15 * 60 def beam_search_maximum_seconds(self): """The maximum backoff interval between searches when blocked [seconds]. """ if self.value in [0, 1]: return 0 return 1600 * 60
Ancestors
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var FIXED_BATTERY
var FIXED_POWERED
var MOBILE_BATTERY
var MOBILE_MINIMAL
var MOBILE_PARKED
var MOBILE_POWERED
Methods
def beam_search_interval_seconds(self)
-
The minimum time between background beam searches [seconds].
Expand source code
def beam_search_interval_seconds(self): """The minimum time between background beam searches [seconds].""" if self.value in [0, 2, 4]: return 20 * 60 return 60 * 60
def beam_search_maximum_seconds(self)
-
The maximum backoff interval between searches when blocked [seconds].
Expand source code
def beam_search_maximum_seconds(self): """The maximum backoff interval between searches when blocked [seconds]. """ if self.value in [0, 1]: return 0 return 1600 * 60
def gnss_refresh_hours(self)
-
The minimum GNSS refresh interval [hours].
Expand source code
def gnss_refresh_hours(self): """The minimum GNSS refresh interval [hours].""" if self.value == 0: return 3 if self.value == 1: return 24 if self.value == 2: return 6 if self.value == 3: return 14 * 24 if self.value == 4: return 12 if self.value == 5: return 24
def short_term_blockage_seconds(self)
-
The time in blockage before initiating a beam search [seconds].
Expand source code
def short_term_blockage_seconds(self): """The time in blockage before initiating a beam search [seconds].""" if self.value in [0, 1]: return 5 * 60 if self.value in [2, 3, 4]: return 20 * 60 return 15 * 60
def transmit_lifetime_seconds(self)
-
The maximum duration of a message in the transmit queue [seconds].
Expand source code
def transmit_lifetime_seconds(self): """The maximum duration of a message in the transmit queue [seconds].""" if self.value in [0, 1]: return 3 * 3600 return 3 * 60
Inherited members
class SatlliteControlState (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class SatlliteControlState(IntEnum): STOPPED = 0 GNSS_WAIT = 1 SEARCH_START = 2 BEAM_SEARCH = 3 BEAM_FOUND = 4 BEAM_ACQUIRED = 5 BEAM_SWITCH = 6 REGISTERING = 7 RECEIVE_ONLY = 8 BB_DOWNLOAD = 9 ACTIVE = 10 BLOCKED = 11 CONFIRM_PREVIOUS_BEAM = 12 CONFIRM_REQUESTED_BEAM = 13 CONNECT_CONFIRMED_BEAM = 14
Ancestors
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var ACTIVE
var BB_DOWNLOAD
var BEAM_ACQUIRED
var BEAM_FOUND
var BEAM_SEARCH
var BEAM_SWITCH
var BLOCKED
var CONFIRM_PREVIOUS_BEAM
var CONFIRM_REQUESTED_BEAM
var CONNECT_CONFIRMED_BEAM
var GNSS_WAIT
var RECEIVE_ONLY
var REGISTERING
var SEARCH_START
var STOPPED
class SignalLevelRegional (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
Qualitative descriptors for SNR/CN0 values for a IDP Regional Beam.
BARS_n: n is a scale from 0..5 to be used as greaterThan threshold NONE, MARGINAL, GOOD: a scale to be used as greaterOrEqual threshold
Expand source code
class SignalLevelRegional(Enum): """Qualitative descriptors for SNR/CN0 values for a IDP Regional Beam. BARS_n: *n* is a scale from 0..5 to be used as greaterThan threshold NONE, MARGINAL, GOOD: a scale to be used as greaterOrEqual threshold """ BARS_0 = 0 BARS_1 = 37.0 BARS_2 = 39.0 BARS_3 = 41.0 BARS_4 = 43.0 BARS_5 = 45.5 INVALID = 55.0
Ancestors
- enum.Enum
Class variables
var BARS_0
var BARS_1
var BARS_2
var BARS_3
var BARS_4
var BARS_5
var INVALID
class SignalQuality (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class SignalQuality(IntEnum): NONE = 0 WEAK = 1 LOW = 2 MID = 3 GOOD = 4 STRONG = 5 WARNING = 6
Ancestors
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var GOOD
var LOW
var MID
var NONE
var STRONG
var WARNING
var WEAK
class TransmitterStatus (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class TransmitterStatus(IdpEnum): RX_ONLY_NOT_REGISTERED = 4 OK = 5 SUSPENDED = 6 MUTED = 7 BLOCKED = 8
Ancestors
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var BLOCKED
var MUTED
var OK
var RX_ONLY_NOT_REGISTERED
var SUSPENDED
Inherited members
class WakeupPeriod (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class WakeupPeriod(IdpEnum): SECONDS_5 = 0 SECONDS_30 = 1 MINUTES_1 = 2 MINUTES_3 = 3 MINUTES_10 = 4 MINUTES_30 = 5 MINUTES_60 = 6 MINUTES_2 = 7 MINUTES_5 = 8 MINUTES_15 = 9 MINUTES_20 = 10 def seconds(self): value = int(self.name.split('_'))[1] if self.name.startswith('MINUTES'): return value * 60 return value
Ancestors
- IdpEnum
- enum.IntEnum
- builtins.int
- enum.Enum
Class variables
var MINUTES_1
var MINUTES_10
var MINUTES_15
var MINUTES_2
var MINUTES_20
var MINUTES_3
var MINUTES_30
var MINUTES_5
var MINUTES_60
var SECONDS_30
var SECONDS_5
Methods
def seconds(self)
-
Expand source code
def seconds(self): value = int(self.name.split('_'))[1] if self.name.startswith('MINUTES'): return value * 60 return value
Inherited members