Skip to content

Commit

Permalink
Tools: add devid encode/decode
Browse files Browse the repository at this point in the history
This helps us better understand/maintain items in the parameter files.

SW-159
  • Loading branch information
robertlong13 authored and loki077 committed Jun 15, 2024
1 parent 6f02d5d commit 787c5e7
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
27 changes: 27 additions & 0 deletions Tools/Carbonix_scripts/devid-decode.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Decode an ArduPilot device id

import argparse

parser = argparse.ArgumentParser(description='Decode a device id')
parser.add_argument('device_id', type=int, help='Device ID to decode')
args = parser.parse_args()

bus_types = {
0: 'UNKNOWN',
1: 'I2C',
2: 'SPI',
3: 'UAVCAN',
4: 'SITL',
5: 'MSP',
6: 'SERIAL',
7: 'QSPI',
}

device_id = args.device_id
bus_type = device_id & 0x7
bus = (device_id >> 3) & 0x1f
address = (device_id >> 8) & 0xff
devtype = (device_id >> 16) & 0xff

print(f"Device ID: {device_id}")
print(f"{bus_types[bus_type]}{bus}, address {address}, devtype {devtype}")
21 changes: 21 additions & 0 deletions Tools/Carbonix_scripts/devid-encode.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Encode an ArduPilot device ID

# prompt the user for the bus type
print("Bus types:")
print("0: UNKNOWN")
print("1: I2C")
print("2: SPI")
print("3: UAVCAN")
print("4: SITL")
print("5: MSP")
print("6: SERIAL")
print("7: QSPI")
bus_type = int(input("Enter the bus type (0-7): "))

# prompt the user for the bus number
bus = int(input("Enter the bus number (0-31): "))
address = int(input("Enter the address (0-255): "))
devtype = int(input("Enter the device type (0-255): "))
device_id = bus_type | (bus << 3) | (address << 8) | (devtype << 16)

print(f"Device ID: {device_id}")

0 comments on commit 787c5e7

Please sign in to comment.