import board
import digitalio
import os
import time
import adafruit_rfm69



# Define some stuff
RADIO_FREQ_MHZ = 915.0
CS = digitalio.DigitalInOut(board.RFM_CS)
RESET = digitalio.DigitalInOut(board.RFM_RST)
ENCRYPTION_KEY = os.getenv("ENCRYPTION_KEY")
LISTEN_TIMEOUT = 2


def show_radio_status(radio):
    """For fun. But also could use to show local temp - if it worked!"""

    print("RFM69 status:")
    print("-------------------------")
    print(f"  {radio.bitrate=}")
    print(f"  {radio.frequency_deviation=}")
    print(f"  {radio.rssi=}")
    print(f"  {radio.temperature=}")
    print("-------------------------")
    print()


rfm = adafruit_rfm69.RFM69(board.SPI(), CS, RESET, RADIO_FREQ_MHZ, encryption_key=ENCRYPTION_KEY)

FORCE_IDLE = False

while True:

    if FORCE_IDLE:
        rfm.idle() # force idle mode

    show_radio_status(rfm)

    # Look for a new packet - wait up to given timeout
    print("Listening...")
    packet = rfm.receive(timeout=LISTEN_TIMEOUT)
    print(f" Got {packet=}")

