def display_register(intf, dmxlid, reg): try: value = intf.read_register(dmxlid, reg) Register.dump(reg, value) except RuntimeError as e: if dmxlid == DynamixelBusInterface.INTERFACE_ID: pass # all registers are not relevant for interfaces else: cli.print_err(str(e)) raise except Exception as e: cli.print_err(str(e)) raise
def check(s): """ check that the passed value matches the format <regnum>=<integer_value>""" match = re.match(WriteStatement.RE, s) if match: reg, val = (int(x) for x in match.groups()) try: Register.check_id(reg) if not Register.is_writeable(reg): raise argparse.ArgumentTypeError('read-only register (%d)' % reg) Register.check_value(reg, val) return s except ValueError as e: raise argparse.ArgumentTypeError(e) raise argparse.ArgumentTypeError('invalid write statement (%s)' % s)
def list_registers(): print('AX12 registers ids and names :') for reg in Register: print ('- [%02d] %-30s' % (reg, Register.label(reg)))