예제 #1
0
def get_port_by_snr(snr):
    serial_ports = BLEDriver.enum_serial_ports()
    try:
        serial_port = [d.port for d in serial_ports if d.serial_number.lstrip('0') == snr][0]
    except IndexError:
        raise NordicSemiException('board not found')
    return serial_port
예제 #2
0
def enumerate_ports():
    descs   = BLEDriver.enum_serial_ports()
    click.echo('Please select connectivity serial port:')
    for i, choice in enumerate(descs):
        click.echo('\t{} : {} - {}'.format(i, choice.port, choice.serial_number))

    index = click.prompt('Enter your choice: ', type=click.IntRange(0, len(descs)))
    return descs[index].port
예제 #3
0
def enumerate_ports():
    descs   = BLEDriver.enum_serial_ports()
    if len(descs) == 0:
        return None
    click.echo('Please select connectivity serial port:')
    for i, choice in enumerate(descs):
        click.echo('\t{} : {} - {}'.format(i, choice.port, choice.serial_number))

    index = click.prompt('Enter your choice: ', type=click.IntRange(0, len(descs)))
    return descs[index].port
예제 #4
0
    def test_programming(self):
        settings = Settings.current()

        serial_ports = BLEDriver.enum_serial_ports()

        # Check that from enumeration matches
        # kits provided from settings
        found_ports = list(map(lambda port: port.port, serial_ports))

        for serial_port in settings.serial_ports:
            self.assertIn(serial_port, found_ports)

        for serial_port in serial_ports:
            if serial_port.port in settings.serial_ports:
                serial_number = serial_port.serial_number
                logger.info("%s/%s deleting existing firmware",
                            serial_port.port, serial_number)

                flasher = Flasher(serial_port=serial_port.port)
                flasher.erase()

                self.assertFalse(
                    flasher.fw_check(),
                    "#{} must be programmed because it is erased".format(
                        serial_number),
                )

                flasher.fw_flash()
                logger.info("%s/%s programmed", serial_port.port,
                            serial_number)

                self.assertTrue(
                    flasher.fw_check(),
                    "#{} is programmed, shall not be programmed again".format(
                        serial_number),
                )

                # Try to use the device with leading zeroes in serial number removed
                flasher = Flasher(snr=serial_port.serial_number.lstrip('0'))
                flasher.reset()

                logger.info("%s/%s programmed successfully", serial_port.port,
                            serial_number)
예제 #5
0
def main():
    print('Possible dongles are at:')
    descs = BLEDriver.enum_serial_ports()
    for _, d in enumerate(descs):
        print('  {}: {} Serial Number {}'.format(d.port, d.manufacturer,
                                                 d.serial_number))
    driver = BLEDriver(
        serial_port='COM8',
        auto_flash=True,
    )
    adapter = BLEAdapter(driver)
    collector = BatteryCollector(adapter)
    collector.open()
    conn = collector.connect_and_discover()

    if conn is not None:
        while True:
            pass

    collector.close()
예제 #6
0
def main(port):
    descs = BLEDriver.enum_serial_ports()
    print("enum_serial_ports: {} serial ports found".format(len(descs)))
    for i, d in enumerate(descs):
        print("\nSerial port #{}:".format(i))
        print("|")
        print("|-  Port: \"{}\"".format(d.port))
        print("|-  Manufacturer: \"{}\"".format(d.manufacturer))
        print("|-  Serial Number: \"{}\"".format(d.serial_number))
        print("|-  PnP ID: \"{}\"".format(d.pnp_id))
        print("|-  Location ID: \"{}\"".format(d.location_id))
        print("|-  Vendor ID: \"{}\"".format(d.vendor_id))
        print("|_  Product ID: \"{}\"".format(d.product_id))
    if port != None:
        flasher = Flasher(serial_port=port) 
        if flasher.fw_check():
            print("Port \"{}\" already flashed with connectivity firmware".format(port))
        else:
            print("Flashing Port \"{}\"".format(port))
            flasher.fw_flash()
            print("Firmware flashed")
def main(port):
    descs = BLEDriver.enum_serial_ports()
    print("enum_serial_ports: {} serial ports found".format(len(descs)))
    for i, d in enumerate(descs):
        print("\nSerial port #{}:".format(i))
        print("|")
        print("|-  Port: \"{}\"".format(d.port))
        print("|-  Manufacturer: \"{}\"".format(d.manufacturer))
        print("|-  Serial Number: \"{}\"".format(d.serial_number))
        print("|-  PnP ID: \"{}\"".format(d.pnp_id))
        print("|-  Location ID: \"{}\"".format(d.location_id))
        print("|-  Vendor ID: \"{}\"".format(d.vendor_id))
        print("|_  Product ID: \"{}\"".format(d.product_id))
    if port != None:
        flasher = Flasher(serial_port=port)
        if flasher.fw_check():
            print("Port \"{}\" already flashed with connectivity firmware".
                  format(port))
        else:
            print("Flashing Port \"{}\"".format(port))
            flasher.fw_flash()
            print("Firmware flashed")
예제 #8
0
    for i, it in enumerate(item_list):
        print('\t{} : {}'.format(i, it))
    print(' ')

    while True:
        try:
            choice = int(raw_input('Enter your choice: '))
            if ((choice >= 0) and (choice < len(item_list))):
                break
        except Exception:
            pass
        print('\tTry again...')
    return choice


if __name__ == "__main__":
    serial_port = None
    if len(sys.argv) < 2:
        print("Please specify connectivity IC identifier (NRF51, NRF52)")
        exit(1)
    init(sys.argv[1])
    if len(sys.argv) == 3:
        serial_port = sys.argv[2]
    else:
        descs = BLEDriver.enum_serial_ports()
        choices = ['{}: {}'.format(d.port, d.serial_number) for d in descs]
        choice = item_choose(choices)
        serial_port = descs[choice].port
    main(serial_port)
    quit()
    for i, it in enumerate(item_list):
        print('\t{} : {}'.format(i, it))
    print(' ')

    while True:
        try:
            choice = int(raw_input('Enter your choice: '))
            if ((choice >= 0) and (choice < len(item_list))):
                break
        except Exception:
            pass
        print ('\tTry again...')
    return choice


if __name__ == "__main__":
    serial_port = None
    if len(sys.argv) < 2:
        print("Please specify connectivity IC identifier (NRF51, NRF52)")
        exit(1)
    init(sys.argv[1])
    if len(sys.argv) == 3:
        serial_port = sys.argv[2]
    else:
        descs       = BLEDriver.enum_serial_ports()
        choices     = ['{}: {}'.format(d.port, d.serial_number) for d in descs]
        choice      = item_choose(choices)
        serial_port = descs[choice].port
    main(serial_port)
    quit()