Browse Source

added method to read all configuration registers

Fabian Peter Hammerle 3 years ago
parent
commit
e011a34031
2 changed files with 24 additions and 0 deletions
  1. 16 0
      cc1101/__init__.py
  2. 8 0
      examples/show_config.py

+ 16 - 0
cc1101/__init__.py

@@ -314,6 +314,22 @@ class CC1101:
         """
         return self._read_single_byte(ConfigurationRegisterAddress.PKTLEN)
 
+    def get_configuration_register_values(
+        self,
+        start_register: ConfigurationRegisterAddress = min(
+            ConfigurationRegisterAddress
+        ),
+        end_register: ConfigurationRegisterAddress = max(ConfigurationRegisterAddress),
+    ) -> typing.Dict[ConfigurationRegisterAddress, int]:
+        assert start_register <= end_register, (start_register, end_register)
+        values = self._read_burst(
+            start_register=start_register, length=end_register - start_register + 1
+        )
+        return {
+            ConfigurationRegisterAddress(start_register + i): v
+            for i, v in enumerate(values)
+        }
+
     def _flush_tx_fifo_buffer(self) -> None:
         # > Only issue SFTX in IDLE or TXFIFO_UNDERFLOW states.
         _LOGGER.debug("flushing tx fifo buffer")

+ 8 - 0
examples/show_config.py

@@ -0,0 +1,8 @@
+import cc1101
+
+
+with cc1101.CC1101() as transceiver:
+    for register, value in transceiver.get_configuration_register_values().items():
+        print(
+            f"0x{register:02x}\t{register.name}\t=\t0x{value:02x}\t{value}\t0b{value:08b}"
+        )