utils package#
Submodules#
utils.binary_ops module#
binary_ops.py
file  | 
sturdr/utils/binary_ops.py  | 
brief  | 
Binary operations.  | 
date  | 
October 2024  | 
- utils.binary_ops.CheckBit(data: uint32, idx: uint32)#
 
- utils.binary_ops.ClearBit(data: uint32, idx: uint32)#
 
- utils.binary_ops.FlipBit(data: uint32, idx: uint32)#
 
- utils.binary_ops.GetDataBit(data: uint32, idx: uint32)#
 
- utils.binary_ops.GetDataBits(data: uint32, beg: uint32, end: uint32)#
 
- utils.binary_ops.RotL(data: uint32, size: uint32)#
 
- utils.binary_ops.SetBit(data: uint32, idx: uint32)#
 
- utils.binary_ops.SetBitTo(data: uint32, idx: uint32, val: bool)#
 
- utils.binary_ops.SetDataBitTo(data: uint32, idx: uint32, val: bool)#
 
- utils.binary_ops.TwosCompliment(data: uint32, size: uint32)#
 
utils.constants module#
constants.py
file  | 
sturdr/utils/constants.py  | 
brief  | 
Satellite navigation constants.  | 
date  | 
October 2024  | 
refs  | 
  | 
utils.enums module#
enums.py
file  | 
sturdr/utils/enums.py  | 
brief  | 
Satellite navigation enumerations.  | 
date  | 
October 2024  | 
- class utils.enums.ChannelState(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
 Bases:
IntEnumEnumeration class for channel state according to the defined state machine architecture.
- Attributes:
 denominatorthe denominator of a rational number in lowest terms
imagthe imaginary part of a complex number
numeratorthe numerator of a rational number in lowest terms
realthe real part of a complex number
Methods
as_integer_ratio(/)Return a pair of integers, whose ratio is equal to the original int.
bit_count(/)Number of ones in the binary representation of the absolute value of self.
bit_length(/)Number of bits necessary to represent self in binary.
conjugateReturns self, the complex conjugate of any int.
from_bytes(/, bytes[, byteorder, signed])Return the integer represented by the given array of bytes.
is_integer(/)Returns True.
to_bytes(/[, length, byteorder, signed])Return an array of bytes representing an integer.
- ACQUIRING = 2#
 
- IDLE = 1#
 
- OFF = 0#
 
- TRACKING = 3#
 
- class utils.enums.GnssSignalTypes(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
 Bases:
IntEnumEnumeration class for GNSS satellite broadcast signal types.
- Attributes:
 denominatorthe denominator of a rational number in lowest terms
imagthe imaginary part of a complex number
numeratorthe numerator of a rational number in lowest terms
realthe real part of a complex number
Methods
as_integer_ratio(/)Return a pair of integers, whose ratio is equal to the original int.
bit_count(/)Number of ones in the binary representation of the absolute value of self.
bit_length(/)Number of bits necessary to represent self in binary.
conjugateReturns self, the complex conjugate of any int.
from_bytes(/, bytes[, byteorder, signed])Return the integer represented by the given array of bytes.
is_integer(/)Returns True.
to_bytes(/[, length, byteorder, signed])Return an array of bytes representing an integer.
- GALILEO_E1 = 5#
 
- GALILEO_E5 = 7#
 
- GALILEO_E5a = 8#
 
- GALILEO_E5b = 9#
 
- GALILEO_E6 = 6#
 
- GPS_L1C = 2#
 
- GPS_L1CA = 1#
 
- GPS_L2C = 3#
 
- GPS_L5 = 4#
 
- UNKNOWN = 0#
 
- class utils.enums.GnssSystem(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
 Bases:
IntEnumEnumeration class for GNSS signal constellations.
- Attributes:
 denominatorthe denominator of a rational number in lowest terms
imagthe imaginary part of a complex number
numeratorthe numerator of a rational number in lowest terms
realthe real part of a complex number
Methods
as_integer_ratio(/)Return a pair of integers, whose ratio is equal to the original int.
bit_count(/)Number of ones in the binary representation of the absolute value of self.
bit_length(/)Number of bits necessary to represent self in binary.
conjugateReturns self, the complex conjugate of any int.
from_bytes(/, bytes[, byteorder, signed])Return the integer represented by the given array of bytes.
is_integer(/)Returns True.
to_bytes(/[, length, byteorder, signed])Return an array of bytes representing an integer.
- BEIDOU = 4#
 
- GALILEO = 2#
 
- GLONASS = 3#
 
- GPS = 1#
 
- IRNSS = 6#
 
- QZSS = 5#
 
- SBAS = 7#
 
- UNKNOWN = 0#
 
- class utils.enums.LoopLockState(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
 Bases:
IntEnumEnumeration class for signal lock state of internal tracking loops
- Attributes:
 denominatorthe denominator of a rational number in lowest terms
imagthe imaginary part of a complex number
numeratorthe numerator of a rational number in lowest terms
realthe real part of a complex number
Methods
as_integer_ratio(/)Return a pair of integers, whose ratio is equal to the original int.
bit_count(/)Number of ones in the binary representation of the absolute value of self.
bit_length(/)Number of bits necessary to represent self in binary.
conjugateReturns self, the complex conjugate of any int.
from_bytes(/, bytes[, byteorder, signed])Return the integer represented by the given array of bytes.
is_integer(/)Returns True.
to_bytes(/[, length, byteorder, signed])Return an array of bytes representing an integer.
- NARROW_TRACK = 3#
 
- PULL_IN = 1#
 
- UNKNOWN = 0#
 
- WIDE_TRACK = 2#
 
- class utils.enums.MeasurementType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
 Bases:
IntEnumEnumeration class for measurement types in the navigator.
- Attributes:
 denominatorthe denominator of a rational number in lowest terms
imagthe imaginary part of a complex number
numeratorthe numerator of a rational number in lowest terms
realthe real part of a complex number
Methods
as_integer_ratio(/)Return a pair of integers, whose ratio is equal to the original int.
bit_count(/)Number of ones in the binary representation of the absolute value of self.
bit_length(/)Number of bits necessary to represent self in binary.
conjugateReturns self, the complex conjugate of any int.
from_bytes(/, bytes[, byteorder, signed])Return the integer represented by the given array of bytes.
is_integer(/)Returns True.
to_bytes(/[, length, byteorder, signed])Return an array of bytes representing an integer.
- CN0 = 4#
 
- DOPPLER = 2#
 
- PHASE = 3#
 
- PSEUDORANGE = 1#
 
- UNKNOWN = 0#
 
- class utils.enums.TrackingFlags(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
 Bases:
IntEnumTracking flags to represent the current stage of tracking. They are to be intepreted in binary format, to allow multiple state represesented in one decimal number. Similar to states in https://developer.android.com/reference/android/location/GnssMeasurement
- Attributes:
 denominatorthe denominator of a rational number in lowest terms
imagthe imaginary part of a complex number
numeratorthe numerator of a rational number in lowest terms
realthe real part of a complex number
Methods
as_integer_ratio(/)Return a pair of integers, whose ratio is equal to the original int.
bit_count(/)Number of ones in the binary representation of the absolute value of self.
bit_length(/)Number of bits necessary to represent self in binary.
conjugateReturns self, the complex conjugate of any int.
from_bytes(/, bytes[, byteorder, signed])Return the integer represented by the given array of bytes.
is_integer(/)Returns True.
to_bytes(/[, length, byteorder, signed])Return an array of bytes representing an integer.
- BIT_SYNC = 2#
 
- CODE_LOCK = 1#
 
- EPH_DECODED = 16#
 
- EPH_KNOWN = 64#
 
- FINE_LOCK = 128#
 
- SUBFRAME_SYNC = 4#
 
- TOW_DECODED = 8#
 
- TOW_KNOWN = 32#
 
- UNKNOWN = 0#
 
utils.rf_data_buffer module#
rf_data_buffer.py
file  | 
sturdr/rcvr/rf_data_buffer.py  | 
brief  | 
Helper for reading RF signal data across multiple processes.  | 
date  | 
October 2024  | 
- class utils.rf_data_buffer.RfDataBuffer(*args)#
 Bases:
objectOwner of the RF signal file.
Implemtation of a circular buffer utilizing
multiprocessing.shared_memory.SharedMemoryto quickly and easily share data between python instances!- Attributes:
 - bittype
 - buffer
 - chunk_size_ms
 - dtype
 - file_id
 - filepath
 - is_complex
 - memory
 - nbytes
 - samples_per_ms
 - size
 - write_ptr
 
Methods
Pull(read_ptr, nsamples)Pull data from the circular buffer.
Push(nms)Push new data into the circular buffer.
fclose()Close open signal file
fread(sample_length[, skip])Read specified amount of samples from the signal file
ftell()Tell the current file location
GetNumUnreadSamples
UpdateWritePtr
fseek
- GetNumUnreadSamples(read_ptr: int)#
 
- Pull(read_ptr: int, nsamples: int)#
 Pull data from the circular buffer.
- Parameters:
 - read_ptrint
 Starting index of the requested array
- nsamplesint
 Size of the requested array
- Returns:
 - np.ndarray
 Requested array
- Push(nms: int)#
 Push new data into the circular buffer. Shift the write index/pointer. NOTE: This should only get executed by the ChannelController/Receiver
- Parameters:
 - datanp.ndarray
 New data to be added to the buffer
- nmsint
 Number of milliseconds to push
- Raises:
 - ValueError
 CircularBuffer.maxsize % data.size should be 0!
- UpdateWritePtr(shift: int)#
 
- bittype: dtype#
 
- buffer: ndarray#
 
- chunk_size_ms: int#
 
- dtype: dtype#
 
- fclose()#
 Close open signal file
- file_id: BufferedReader#
 
- filepath: str#
 
- fread(sample_length: int, skip: int = 0)#
 Read specified amount of samples from the signal file
- Parameters:
 - time_lengthint
 Number of milliseconds to read
- skipint, optional
 Number of samples to skip, by GENERAL 0
- Returns:
 - rfdatanp.ndarray
 Data from the file read
- fseek(samp, offset)#
 
- ftell()#
 Tell the current file location
- Returns:
 - int
 Current sample index
- Raises:
 - Warning
 No signal file open
- is_complex: bool#
 
- memory: SharedMemory#
 
- nbytes: int#
 
- samples_per_ms: int#
 
- size: int#
 
- write_ptr: int#