Ejemplo n.º 1
0
def _get_devices(br_serial):
    logging.info('Looking for devices...')
    ncps = []
    brouter = kiserial.find_devices(has_br=True, has_snum=br_serial)[0]
    brouter = kiserial.KiSerial(brouter.port, debug=kiserial.KiDebug(1))
    devices = kiserial.find_devices()
    for dev in devices:
        if not dev.snum in br_serial:
            ncps.append(kiserial.KiSerial(dev.port, debug=kiserial.KiDebug(1)))
    logging.info('%d devices found' % len(ncps))
    return brouter, ncps
Ejemplo n.º 2
0
def _find_device(snum):
    '''Find the serial device with the required serial number'''
    if snum:
        logging.info('Trying to find device with serial %s.', snum)
        kirale_devs = kiserial.find_devices(has_snum=snum)
        if kirale_devs:
            return kirale_devs[0].port
    # Attempt to find any attached KiNOS device
    logging.info('Trying to find a KiNOS device...')
    kirale_devs = kiserial.find_devices(has_br=True)
    if kirale_devs:
        logging.info('KiNOS device was found on %s!', kirale_devs[0].port)
        return kirale_devs[0].port
    logging.error('No KiNOS devices found.')
    sys.exit()
Ejemplo n.º 3
0
def kbi_find_and_flash(dfu_file):
    '''Flash a DFU file'''
    # Count DFU devices
    kidevs = kiserial.find_devices(has_uart=True)

    # Flash bootloader running devices
    if kidevs:
        print('\nFound the following KBI devices:')
        for dev in kidevs:
            print('  %s' % dev)
        try_input('Press Enter to flash them all.')
    else:
        sys_exit('No KBI devices found.')

    # Program the devices
    start = time.time()
    results = parallel_program(kbi_flash, kidevs, dfu_file)
    flash_summary(results, start)
Ejemplo n.º 4
0
def _get_device():
    '''Ask user to choose a port among the availalbe connected
    Kirale devices'''
    print('Scanning ports...', end='')
    kirale_devs = kiserial.find_devices()
    if kirale_devs:
        print('\rAvailable Kirale devices:')
        for num, dev in enumerate(kirale_devs):
            print('%s%d%s:  %s' %
                  (colorama.Fore.GREEN, num + 1, colorama.Fore.RESET, dev))
        # Don't ask the user if there is only one option
        if len(kirale_devs) == 1:
            return kirale_devs[0].port
        # Ask the user for port selection
        index = 0
        while index not in range(1, len(kirale_devs) + 1):
            typed = kifwu.try_input('Enter port index: ')
            if typed.isdigit():
                index = int(typed)
        return kirale_devs[index - 1].port
    sys.exit('No Kirale devices available.')
    return None