cat-tracker/main.py
David Westgate b4b657b4fd code updates
2025-04-11 12:30:02 -07:00

88 lines
2.5 KiB
Python

import spidev
from util import *
from receive import receive_packet
debug = True
GDO0_PIN=23,
GDO2_PIN=24
def menu():
print("\nMenu")
print("1: Read Reg by name")
print("2: Write reg hex value by name")
print("3: Dump registers")
print("4: Poll for packets")
print("5: Run Read+Write test")
print("0: Quit")
if __name__ == "__main__":
init_gpio(GDO0_PIN, GDO2_PIN)
spi = spidev.SpiDev()
spi.open(0, 0) # Bus 0, CE0 (Pin 24)
# spi.max_speed_hz = 8_000_000 # Safe start speed
spi.max_speed_hz = 100_000 # Safe start speed
spi.mode = 0b00 # SPI mode 0
stop = False
print_gdo_state(GDO0_PIN, GDO2_PIN)
# print("Sending SRES (reset)...")
spi.xfer2([SRES])
sleep(0.5)
# print("Sending SNOP (no-op)...")
status = spi.xfer2([SNOP])[0]
print(f"Status byte: 0x{status:02X}")
# print("Reading MARCSTATE...")
marc = spi.xfer2([MARCSTATE| 0x80, 0x00])[0]
print(f"Marcstate byte: 0x{marc:02X}")
print("Reading VERSION register...")
version = read_register(spi, VERSION)
print(f"CC2500 VERSION register: 0x{version:02X}")
reg_name = ""
reg_hex_val = ""
try:
# if version != 0x0F:
# raise Exception("Expected Version was 0x0F!! Quitting")
test_read_write_reg(spi)
init_regs(spi)
while not stop:
menu()
cmd = int(input("$: "))
if cmd == 0:
stop=True
elif cmd == 1:
reg_name = input("Register name: ")
addr = get_addr(reg_name)
value = read_register(spi,addr)
print("Address: " + hex(addr)+ ", Value: " + hex(value) +" == " + str(value))
elif cmd == 2:
reg_name = input("Register name: ")
addr = get_addr(reg_name)
value = int(input("New Register value (hex): "),16)
write_reg(spi, addr, value)
sleep(0.1)
value_check = read_register(spi,addr)
print("Updated Value: " + hex(value) +" == " + str(value))
elif cmd == 3:
dump_regs(spi, True)
elif cmd == 4:
receive_packet(spi)
elif cmd == 5:
res = test_read_write_reg(spi, True)
print("Test result : "+str(res))
else:
print("Invalid command")
finally:
print("Closing SPI...")
sleep(0.1)
spi.close()
sleep(0.1)