mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-07-24 15:14:00 -06:00
board_pins: Add a new "extras" module to support per-board pin aliases
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
395429be14
commit
bfbcb90751
3 changed files with 51 additions and 2 deletions
|
@ -161,13 +161,25 @@ class PinResolver:
|
|||
raise error("Pin %s reserved for %s - can't reserve for %s" % (
|
||||
pin, self.reserved[pin], reserve_name))
|
||||
self.reserved[pin] = reserve_name
|
||||
def alias_pin(self, alias, pin):
|
||||
if alias in self.aliases and self.aliases[alias] != pin:
|
||||
raise error("Alias %s mapped to %s - can't alias to %s" % (
|
||||
alias, self.aliases[alias], pin))
|
||||
if pin in self.aliases:
|
||||
pin = self.aliases[pin]
|
||||
self.aliases[alias] = pin
|
||||
for existing_alias, existing_pin in self.aliases.items():
|
||||
if existing_pin == alias:
|
||||
self.aliases[existing_alias] = pin
|
||||
def add_pin_mapping(self, mcu_type, mapping_name):
|
||||
if mapping_name == 'arduino':
|
||||
self.aliases = get_aliases_arduino(mcu_type)
|
||||
pin_mapping = get_aliases_arduino(mcu_type)
|
||||
elif mapping_name == 'beaglebone':
|
||||
self.aliases = get_aliases_beaglebone(mcu_type)
|
||||
pin_mapping = get_aliases_beaglebone(mcu_type)
|
||||
else:
|
||||
raise error("Unknown pin alias mapping '%s'" % (mapping_name,))
|
||||
for alias, pin in pin_mapping.items():
|
||||
self.alias_pin(alias, pin)
|
||||
def update_command(self, cmd):
|
||||
def pin_fixup(m):
|
||||
name = m.group('name')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue