pypozyx.definitions package

Submodules

pypozyx.definitions.bitmasks module

pypozyx.definitions.bitmasks - contains all bitmasks used in Pozyx functionality, such as interrupt flags.

class pypozyx.definitions.bitmasks.PozyxBitmasks[source]

Bases: object

ANCHOR = 0
DEVICE_TYPE = 224
FIRMWARE_MAJOR = 240
FIRMWARE_MINOR = 15
INT_MASK_ALL = 31
INT_MASK_ERR = 1
INT_MASK_FUNC = 16
INT_MASK_IMU = 4
INT_MASK_PIN = 128
INT_MASK_POS = 2
INT_MASK_RX_DATA = 8
INT_MASK_TDMA = 64
INT_STATUS_ERR = 1
INT_STATUS_FUNC = 16
INT_STATUS_IMU = 4
INT_STATUS_POS = 2
INT_STATUS_RX_DATA = 8
LED_CTRL_LED1 = 1
LED_CTRL_LED2 = 2
LED_CTRL_LED3 = 4
LED_CTRL_LED4 = 8
SELFTEST_RESULT_ACCELEROMETER = 1
SELFTEST_RESULT_GYRO = 4
SELFTEST_RESULT_MAGNETOMETER = 2
SELFTEST_RESULT_MCU = 8
SELFTEST_RESULT_PRESSURE = 16
SELFTEST_RESULT_UWB = 32
TAG = 32

pypozyx.definitions.constants module

pypozyx.definitions.constants - contains all Pozyx constants, such as error definitions, delays, physical convertions.

class pypozyx.definitions.constants.PozyxConstants[source]

Bases: object

ACCELERATION_DIV_MG = 1.0
ALL_FLASH_SAVE_TYPES = [1, 2, 3, 4]
ALL_GPIO_MODES = [0, 1, 1]
ALL_GPIO_PULLS = [0, 1, 2]
ALL_UWB_BITRATES = [0, 1, 2]
ALL_UWB_CHANNELS = [1, 2, 3, 4, 5, 7]
ALL_UWB_PLENS = [4, 20, 36, 52, 8, 24, 40, 12]
ALL_UWB_PRFS = [1, 2]
ANCHOR_MODE = 1
ANCHOR_SELECT_AUTO = 1
ANCHOR_SELECT_MANUAL = 0
DELAY_FLASH = 0.5
DELAY_INTERRUPT = 0.1
DELAY_LOCAL_FUNCTION = 0.005
DELAY_LOCAL_WRITE = 0.001
DELAY_MODE_CHANGE = 0.02
DELAY_POLLING = 0.002
DELAY_POLLING_FAST = 0.0005
DELAY_RANGING = 0.2
DELAY_REMOTE_FUNCTION = 0.01
DELAY_REMOTE_WRITE = 0.005
DIMENSIONS = [3, 2, 1]
DIMENSION_2D = 2
DIMENSION_2_5D = 1
DIMENSION_3D = 3
DISCOVERY_ALL_DEVICES = 2
DISCOVERY_ANCHORS_ONLY = 0
DISCOVERY_TAGS_ONLY = 1
DISCOVERY_TYPES = [2, 0, 1]
EULER_ANGLES_DIV_DEG = 16.0
FILTER_TYPES = [0, 1, 3, 4]
FILTER_TYPE_FIR = 1
FILTER_TYPE_MOVING_AVERAGE = 3
FILTER_TYPE_MOVING_MEDIAN = 4
FILTER_TYPE_NONE = 0
FLASH_SAVE_ALL = 4
FLASH_SAVE_ANCHOR_IDS = 2
FLASH_SAVE_NETWORK = 3
FLASH_SAVE_REGISTERS = 1
GPIO_DIGITAL_INPUT = 0
GPIO_NO_PULL = 0
GPIO_OPEN_DRAIN = 1
GPIO_PULL_DOWN = 2
GPIO_PULL_UP = 1
GPIO_PUSH_PULL = 1
GYRO_DIV_DPS = 16.0
INTERRUPT_CONFIG = 36
INT_PIN0 = 0
INT_PIN1 = 1
LED_CTRL_LED_RX = 16
LED_CTRL_LED_TX = 32
LED_OFF = False
LED_ON = True
MAGNETOMETER_DIV_UT = 16.0
MAX_BUF_SIZE = 100
MAX_LINEAR_ACCELERATION_DIV_MG = 1.0
MAX_SERIAL_SIZE = 28
MODE_INTERRUPT = 1
MODE_POLLING = 0
PIN_ACTIVE_HIGH = 1
PIN_ACTIVE_LOW = 0
PIN_MODE_OPEN_DRAIN = 1
PIN_MODE_PUSH_PULL = 0
POSITIONING_ALGORITHMS = [0, 4, 3]
POSITIONING_ALGORITHM_NONE = 3
POSITIONING_ALGORITHM_TRACKING = 4
POSITIONING_ALGORITHM_UWB_ONLY = 0
POSITION_DIV_MM = 1.0
PRESSURE_DIV_PA = 1000.0
QUATERNION_DIV = 16384.0
RANGE_PROTOCOL_FAST = 1
RANGE_PROTOCOL_PRECISION = 0
RANGE_PROTOCOL_TEST = 2
RANGING_PROTOCOLS = [0, 1]
REMOTE_DATA = 6
REMOTE_FUNCTION = 8
REMOTE_READ = 2
REMOTE_WRITE = 4
STATUS_FAILURE = 0
STATUS_SUCCESS = 1
STATUS_TIMEOUT = 8
TAG_MODE = 0
TEMPERATURE_DIV_CELSIUS = 1.0
TIMEOUT_OPTIMAL_DISCOVERY = 0.1
TIMEOUT_POSITIONING = 0.2
TIMEOUT_POSITIONING_DATA = 1.0
TIMEOUT_RANGING = 0.025
TIMEOUT_REMOTE_POSITIONING = 0.4
TIMEOUT_REMOTE_POSITIONING_DATA = 1.0
TIMEOUT_REMOTE_RANGING = 0.1
UWB_BITRATE_110_KBPS = 0
UWB_BITRATE_6810_KBPS = 2
UWB_BITRATE_850_KBPS = 1
UWB_PLEN_1024 = 8
UWB_PLEN_128 = 20
UWB_PLEN_1536 = 24
UWB_PLEN_2048 = 40
UWB_PLEN_256 = 36
UWB_PLEN_4096 = 12
UWB_PLEN_512 = 52
UWB_PLEN_64 = 4
UWB_PRF_16_MHZ = 1
UWB_PRF_64_MHZ = 2
class pypozyx.definitions.constants.PozyxErrorCodes[source]

Bases: object

POZYX_ERROR_ANCHOR_ADD = 3
POZYX_ERROR_ANCHOR_NOT_FOUND = 14
POZYX_ERROR_CALIBRATION = 12
POZYX_ERROR_COMM_QUEUE_FULL = 4
POZYX_ERROR_DISCOVERY = 11
POZYX_ERROR_FLASH = 15
POZYX_ERROR_FLASH_INVALID = 9
POZYX_ERROR_FUNC_PARAM = 13
POZYX_ERROR_GENERAL = 255
POZYX_ERROR_I2C_CMDFULL = 2
POZYX_ERROR_I2C_READ = 5
POZYX_ERROR_I2C_WRITE = 1
POZYX_ERROR_MEMORY = 16
POZYX_ERROR_NEW_TASK = 241
POZYX_ERROR_NOACK = 23
POZYX_ERROR_NONE = 0
POZYX_ERROR_NOT_ENOUGH_ANCHORS = 10
POZYX_ERROR_NO_PPS = 240
POZYX_ERROR_OPERATION_QUEUE_FULL = 7
POZYX_ERROR_POSALG = 22
POZYX_ERROR_RANGING = 17
POZYX_ERROR_RTIMEOUT1 = 18
POZYX_ERROR_RTIMEOUT2 = 19
POZYX_ERROR_SNIFF_OVERFLOW = 224
POZYX_ERROR_STARTUP_BUSFAULT = 8
POZYX_ERROR_TDMA = 160
POZYX_ERROR_TXLATE = 20
POZYX_ERROR_UNRECDEV = 254
POZYX_ERROR_UWB_BUSY = 21
POZYX_ERROR_UWB_CONFIG = 6

pypozyx.definitions.registers module

pypozyx.definitions.registers - contains all register definitions used in Pozyx.

It shouldn’t be necessary to use these in basic applications as the library functions should provide a lot of functionality already, but for advanced users looking to implement their own low-level functionality, these might be very useful.

class pypozyx.definitions.registers.PozyxRegisters[source]

Bases: object

ACCELERATION_X = 84
ACCELERATION_Y = 86
ACCELERATION_Z = 88
ADD_DEVICE = 196
ALL_POSITIONING_REGISTERS = [20, 22, 33, 56]
ALL_UWB_REGISTERS = [28, 29, 30, 31]
CALIBRATION_STATUS = 6
CIR_DATA = 200
CLEAR_DEVICES = 195
CONFIG_GPIO_1 = 39
CONFIG_GPIO_2 = 40
CONFIG_GPIO_3 = 41
CONFIG_GPIO_4 = 42
DEVICE_LIST_SIZE = 129
DO_DISCOVERY = 193
DO_POSITIONING = 182
DO_POSITIONING_WITH_DATA = 204
DO_RANGING = 181
ERROR_CODE = 4
EULER_ANGLE_HEADING = 102
EULER_ANGLE_PITCH = 106
EULER_ANGLE_ROLL = 104
EULER_ANGLE_YAW = 102
FIRMWARE_VERSION = 1
GET_DEVICE_COORDINATES = 198
GET_DEVICE_INFO = 197
GET_DEVICE_LIST_IDS = 192
GET_DEVICE_RANGE_INFO = 199
GET_FLASH_DETAILS = 187
GET_POSITIONING_ANCHOR_IDS = 184
GPIO_1 = 133
GPIO_2 = 134
GPIO_3 = 135
GPIO_4 = 136
GRAVITY_VECTOR_X = 122
GRAVITY_VECTOR_Y = 124
GRAVITY_VECTOR_Z = 126
GYRO_X = 96
GYRO_Y = 98
GYRO_Z = 100
HARDWARE_VERSION = 2
HEIGHT = 56
INTERRUPT_MASK = 16
INTERRUPT_PIN = 17
INTERRUPT_STATUS = 5
LED_CONFIGURATION = 21
LED_CONTROL = 177
LINEAR_ACCELERATION_X = 116
LINEAR_ACCELERATION_Y = 118
LINEAR_ACCELERATION_Z = 120
MAGNETIC_X = 90
MAGNETIC_Y = 92
MAGNETIC_Z = 94
MAX_LINEAR_ACCELERATION = 78
NETWORK_ID = 26
OPERATION_MODE = 34
POSITIONING_ALGORITHM = 22
POSITIONING_ERROR_X = 60
POSITIONING_ERROR_XY = 66
POSITIONING_ERROR_XZ = 68
POSITIONING_ERROR_Y = 62
POSITIONING_ERROR_YZ = 70
POSITIONING_ERROR_Z = 64
POSITIONING_FILTER = 20
POSITIONING_INTERVAL = 24
POSITIONING_NUMBER_OF_ANCHORS = 23
POSITION_X = 48
POSITION_Y = 52
POSITION_Z = 56
PRESSURE = 80
QUATERNION_W = 108
QUATERNION_X = 110
QUATERNION_Y = 112
QUATERNION_Z = 114
RANGING_PROTOCOL = 33
READ_RX_DATA = 180
RESET_FLASH_MEMORY = 185
RESET_SYSTEM = 176
RX_DATA_LENGTH = 132
RX_NETWORK_ID = 130
SAVE_FLASH_MEMORY = 186
SELFTEST_RESULT = 3
SEND_TX_DATA = 179
SENSORS_MODE = 35
SET_POSITIONING_ANCHOR_IDS = 183
TEMPERATURE = 128
UWB_CHANNEL = 28
UWB_CRYSTAL_TRIM = 32
UWB_GAIN = 31
UWB_PLEN = 30
UWB_RATES = 29
WHO_AM_I = 0
WRITE_TX_DATA = 178

Module contents

pypozyx.definitions - contains all Pozyx constant definitions.

These definitions are divided in three large groups:
  • constants: physical constants, type definitions…
  • bitmasks: bitmasks used for ANDing register data against, especially useful for interrupt status data.
  • registers: definitions of the register addresses, for more ‘advanced’ use.

When importing this, only the constants will get imported. To import the registers and bitmasks, use the following code:

>>> from pypozyx.definitions.registers import * # or specific registers for best practice
>>> from pypozyx.definitions.bitmasks import * # or specific bitmasks for best practice