cat-tracker/util.py
David Westgate e16cf6f686 refactor
2025-04-11 16:18:51 -07:00

47 lines
1.5 KiB
Python

from regs_addr import regs_addr
import RPi.GPIO as GPIO
import time
def rr(spi, addr):
READ_SINGLE = get_addr("READ_SINGLE")
# Send address | 0x80 (read), then 0x00 dummy to clock in response
response = spi.xfer2([READ_SINGLE | addr, 0x00])
sleep(0.1)
return response[1]
def print_gdo_state(GDO0_PIN=17, GDO2_PIN=27):
gdo0 = GPIO.input(GDO0_PIN) # Reads 1 or 0
gdo2 = GPIO.input(GDO2_PIN)
print(f"GDO0 (GPIO{GDO0_PIN}): {gdo0}, GDO2 (GPIO{GDO2_PIN}): {gdo2}")
sleep(0.1)
def get_addr(name):
addr = ""
stop = False
for reg_type, reg_data in regs_addr.items():
for reg_name, reg_addr in reg_data.items():
if reg_name == name:
stop = True
addr = reg_addr
if stop == False:
raise Exception("Failed to find address for "+name)
return addr
def dump_regs(spi, cfgonly = False):
if cfgonly:
for reg_name, reg_addr in regs_addr["CONFIG_REGS"].items():
name :str = reg_name
value = rr(spi, reg_addr)
print((name+":").ljust(15) +hex(value).ljust(4)+"\t"+str(value))
else:
for reg_type, reg_data in regs_addr.items():
for reg_name, reg_addr in reg_data.items():
name :str = reg_name
value = rr(spi, reg_addr)
print((name+":").ljust(15) +hex(value).ljust(4)+"\t"+str(value))
# def disable_crc(spi):
# spi.xfer2([CONFIG_REGS["PKTCTRL0"], 0x01])
def sleep(t):
return time.sleep(t)