fix ctypes for uwb / spi stuff
This commit is contained in:
parent
e1647fe331
commit
69c33690af
2 changed files with 32 additions and 8 deletions
|
@ -785,8 +785,8 @@ def normalize_name(name):
|
|||
name = name.lower()
|
||||
else:
|
||||
name = re.sub(
|
||||
r"([a-zA-Z])([A-Z][a-z])",
|
||||
r"\1_\2",
|
||||
r"(([a-z])([A-Z]))|(([a-zA-Z])([A-Z][a-z]))",
|
||||
r"\2\5_\3\6",
|
||||
name
|
||||
).lower()
|
||||
|
||||
|
|
|
@ -61,15 +61,22 @@ class MultipinLedConfig(LedConfig, led_type=LedType.MULTIPIN):
|
|||
gpio_blue: int = field(metadata={"format": SimpleFormat('B')})
|
||||
|
||||
|
||||
@dataclass
|
||||
class BoardSPIConfig(StructType):
|
||||
"""
|
||||
configuration for spi bus used for ETH or UWB
|
||||
"""
|
||||
gpio_miso: int = field(metadata={"format": SimpleFormat('B')})
|
||||
gpio_mosi: int = field(metadata={"format": SimpleFormat('B')})
|
||||
gpio_clk: int = field(metadata={"format": SimpleFormat('B')})
|
||||
|
||||
|
||||
@dataclass
|
||||
class UWBConfig(StructType):
|
||||
"""
|
||||
configuration for the connection to the UWB module
|
||||
"""
|
||||
enable: bool = field(metadata={"format": BoolFormat()})
|
||||
gpio_miso: int = field(metadata={"format": SimpleFormat('B')})
|
||||
gpio_mosi: int = field(metadata={"format": SimpleFormat('B')})
|
||||
gpio_clk: int = field(metadata={"format": SimpleFormat('B')})
|
||||
gpio_cs: int = field(metadata={"format": SimpleFormat('B')})
|
||||
gpio_irq: int = field(metadata={"format": SimpleFormat('B')})
|
||||
gpio_rst: int = field(metadata={"format": SimpleFormat('B')})
|
||||
|
@ -77,6 +84,17 @@ class UWBConfig(StructType):
|
|||
gpio_exton: int = field(metadata={"format": SimpleFormat('B')})
|
||||
|
||||
|
||||
@dataclass
|
||||
class UplinkEthConfig(StructType):
|
||||
"""
|
||||
configuration for the connection to the ETH module
|
||||
"""
|
||||
enable: bool = field(metadata={"format": BoolFormat()})
|
||||
gpio_cs: int = field(metadata={"format": SimpleFormat('B')})
|
||||
gpio_int: int = field(metadata={"format": SimpleFormat('B')})
|
||||
gpio_rst: int = field(metadata={"format": SimpleFormat('b')})
|
||||
|
||||
|
||||
@unique
|
||||
class BoardType(EnumSchemaByNameMixin, IntEnum):
|
||||
CUSTOM = 0x00
|
||||
|
@ -110,33 +128,39 @@ class BoardConfig(StructType, union_type_field="board"):
|
|||
|
||||
@dataclass
|
||||
class CustomBoardConfig(BoardConfig, board=BoardType.CUSTOM):
|
||||
spi: BoardSPIConfig = field(metadata={"as_definition": True})
|
||||
uwb: UWBConfig = field(metadata={"as_definition": True})
|
||||
eth: UplinkEthConfig = field(metadata={"as_definition": True})
|
||||
led: LedConfig = field(metadata={"as_definition": True})
|
||||
|
||||
|
||||
@dataclass
|
||||
class DevkitMBoardConfig(BoardConfig, board=BoardType.ESP32_C3_DEVKIT_M_1):
|
||||
spi: BoardSPIConfig = field(metadata={"as_definition": True})
|
||||
uwb: UWBConfig = field(metadata={"as_definition": True})
|
||||
eth: UplinkEthConfig = field(metadata={"as_definition": True})
|
||||
|
||||
|
||||
@dataclass
|
||||
class Esp32SBoardConfig(BoardConfig, board=BoardType.ESP32_C3_32S):
|
||||
spi: BoardSPIConfig = field(metadata={"as_definition": True})
|
||||
uwb: UWBConfig = field(metadata={"as_definition": True})
|
||||
eth: UplinkEthConfig = field(metadata={"as_definition": True})
|
||||
|
||||
|
||||
@dataclass
|
||||
class UwbBoardConfig(BoardConfig, board=BoardType.C3NAV_UWB_BOARD):
|
||||
pass
|
||||
eth: UplinkEthConfig = field(metadata={"as_definition": True})
|
||||
|
||||
|
||||
@dataclass
|
||||
class LocationPCBRev0Dot1BoardConfig(BoardConfig, board=BoardType.C3NAV_LOCATION_PCB_REV_0_1):
|
||||
pass
|
||||
eth: UplinkEthConfig = field(metadata={"as_definition": True})
|
||||
|
||||
|
||||
@dataclass
|
||||
class LocationPCBRev0Dot2BoardConfig(BoardConfig, board=BoardType.C3NAV_LOCATION_PCB_REV_0_2):
|
||||
pass
|
||||
eth: UplinkEthConfig = field(metadata={"as_definition": True})
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue