Source code for tropicsquare.config.uap_pairing_key

"""UAP Pairing Key configuration classes"""

from tropicsquare.config.uap_base import UapMultiSlotConfig, UapPermissionField
from tropicsquare.config.constants import (
    UAP_PKEY_SLOT_0_POS,
    UAP_PKEY_SLOT_1_POS,
    UAP_PKEY_SLOT_2_POS,
    UAP_PKEY_SLOT_3_POS
)


[docs] class PairingKeyConfig(UapMultiSlotConfig): """UAP Pairing Key base configuration""" @property def pkey_slot_0(self) -> UapPermissionField: """Permission field for pairing key slot 0 write.""" return self._get_slot_field(UAP_PKEY_SLOT_0_POS) @pkey_slot_0.setter def pkey_slot_0(self, field) -> None: self._set_slot_field(UAP_PKEY_SLOT_0_POS, field) @property def pkey_slot_1(self) -> UapPermissionField: """Permission field for pairing key slot 1 write.""" return self._get_slot_field(UAP_PKEY_SLOT_1_POS) @pkey_slot_1.setter def pkey_slot_1(self, field) -> None: self._set_slot_field(UAP_PKEY_SLOT_1_POS, field) @property def pkey_slot_2(self) -> UapPermissionField: """Permission field for pairing key slot 2 write.""" return self._get_slot_field(UAP_PKEY_SLOT_2_POS) @pkey_slot_2.setter def pkey_slot_2(self, field) -> None: self._set_slot_field(UAP_PKEY_SLOT_2_POS, field) @property def pkey_slot_3(self) -> UapPermissionField: """Permission field for pairing key slot 3 write.""" return self._get_slot_field(UAP_PKEY_SLOT_3_POS) @pkey_slot_3.setter def pkey_slot_3(self, field) -> None: self._set_slot_field(UAP_PKEY_SLOT_3_POS, field)
[docs] def to_dict(self) -> dict: """Export fields as dictionary.""" return { 'pkey_slot_0': self.pkey_slot_0.to_dict(), 'pkey_slot_1': self.pkey_slot_1.to_dict(), 'pkey_slot_2': self.pkey_slot_2.to_dict(), 'pkey_slot_3': self.pkey_slot_3.to_dict() }
[docs] def __str__(self) -> str: """Table row with pairing key slot specific field names.""" s0 = str(self.pkey_slot_0) s1 = str(self.pkey_slot_1) s2 = str(self.pkey_slot_2) s3 = str(self.pkey_slot_3) return "{:26s} | {} || {} || {} || {} |".format( self.__class__.__name__, s0, s1, s2, s3 )
[docs] class PairingKeyWriteConfig(PairingKeyConfig): """UAP Pairing Key Write configuration (CFG_UAP_PAIRING_KEY_WRITE @ 0x20). Controls which pairing key slots can write to each pairing key slot. Has 4 slots, each with 8-bit permission field. """
[docs] class PairingKeyReadConfig(PairingKeyConfig): """UAP Pairing Key Read configuration (CFG_UAP_PAIRING_KEY_READ @ 0x24). Controls which pairing key slots can read from each pairing key slot. """
[docs] class PairingKeyInvalidateConfig(PairingKeyConfig): """UAP Pairing Key Invalidate configuration (CFG_UAP_PAIRING_KEY_INVALIDATE @ 0x28). Controls which pairing key slots can invalidate each pairing key slot. """