Browse Source

added method _get_power_amplifier_setting_index

Fabian Peter Hammerle 3 years ago
parent
commit
f1da47d36b
2 changed files with 24 additions and 0 deletions
  1. 6 0
      cc1101/__init__.py
  2. 18 0
      tests/config/test_0x22_frend0.py

+ 6 - 0
cc1101/__init__.py

@@ -465,6 +465,12 @@ class CC1101:
             )
         self._set_preamble_length_index(int(index))
 
+    def _get_power_amplifier_setting_index(self) -> int:
+        """
+        see ._set_power_amplifier_setting_index
+        """
+        return self._read_single_byte(ConfigurationRegisterAddress.FREND0) & 0b111
+
     def _set_power_amplifier_setting_index(self, setting_index: int) -> None:
         """
         FREND0.PA_POWER

+ 18 - 0
tests/config/test_0x22_frend0.py

@@ -22,6 +22,24 @@ import pytest
 # pylint: disable=protected-access
 
 
+@pytest.mark.parametrize(
+    ("frend0", "setting_index"),
+    [
+        (0b01000, 0),
+        (0b01001, 1),
+        (0b01111, 7),
+        (0b10000, 0),
+        (0b10001, 1),
+        (0b10111, 7),
+        (0b10101, 5),
+    ],
+)
+def test__get_power_amplifier_setting_index(transceiver, frend0, setting_index):
+    transceiver._spi.xfer.return_value = [15, frend0]
+    assert transceiver._get_power_amplifier_setting_index() == setting_index
+    transceiver._spi.xfer.assert_called_once_with([0x22 | 0x80, 0])
+
+
 @pytest.mark.parametrize(
     ("frend0_before", "frend0_after", "setting_index"),
     [