Esempio n. 1
0
def perform_config(dev, args):
    module_config = DEVICE[args.device_type]['config'][args.module]
    module_id = module_config['id']
    device_options = module_config['options']

    config_name = args.option
    value_type = device_options[config_name].type
    recipient = get_device_pid(args.device_type)

    if args.value is None:
        success, val = fetch_config(dev, recipient, config_name,
                                    device_options, module_id)
        if success:
            print('Fetched {}: {}'.format(config_name, val))
        else:
            print('Failed to fetch {}'.format(config_name))
    else:
        try:
            config_value = value_type(args.value)
        except ValueError:
            print('Invalid type for {}. Expected {}'.format(
                config_name, value_type))
            return
        success = change_config(dev, recipient, config_name, config_value,
                                device_options, module_id)

        if success:
            print('{} set to {}'.format(config_name, config_value))
        else:
            print('Failed to set {}'.format(config_name))
Esempio n. 2
0
def perform_fwinfo(dev, args):
    recipient = get_device_pid(args.device_type)

    info = fwinfo(dev, recipient)

    if info:
        print(info)
    else:
        print('FW info request failed')
Esempio n. 3
0
def perform_fwreboot(dev, args):
    recipient = get_device_pid(args.device_type)

    success = fwreboot(dev, recipient)

    if success:
        print('Firmware rebooted')
    else:
        print('FW reboot request failed')
def perform_led_stream(dev, args):
    recipient = get_device_pid(args.device_type)

    if args.file is not None:
        send_music_led_stream(dev, recipient, DEVICE[args.device_type],
                              args.led_id, args.freq, args.file)
    else:
        send_continuous_led_stream(dev, recipient, DEVICE[args.device_type],
                                   args.led_id, args.freq)
Esempio n. 5
0
def perform_dfu(dev, args):
    dfu_image = args.dfu_image
    recipient = get_device_pid(args.device_type)

    success = dfu_transfer(dev, recipient, dfu_image, progress_bar)

    if success:
        print('DFU transfer completed')
    else:
        print('DFU transfer failed')
Esempio n. 6
0
def perform_dfu(dev, args):
    dfu_image = args.dfu_image
    recipient = get_device_pid(args.device_type)

    img_ver_file = get_dfu_image_version(dfu_image)
    if img_ver_file is None:
        print('Cannot read image version from file')
        return

    info = fwinfo(dev, recipient)
    if info is None:
        print('Cannot get FW info from device')
        return
    img_ver_dev = info.get_fw_version()

    print('Current FW version from device: ' +
          '.'.join([str(i) for i in img_ver_dev]))
    print('Current FW version from file: ' +
          '.'.join([str(i) for i in img_ver_file]))
    print('Perform update? [y/n]')

    if not args.autoconfirm:
        rsp = input().lower()
        if rsp == 'y':
            pass

        elif rsp == 'n':
            print('DFU rejected by user')
            return

        else:
            print('Improper user input. Operation terminated.')
            return

    success = dfu_transfer(dev, recipient, dfu_image, progress_bar)

    if success:
        success = fwreboot(dev, recipient)

    if success:
        print('DFU transfer completed')
    else:
        print('DFU transfer failed')
Esempio n. 7
0
def perform_config(dev, args):
    module_config = DEVICE[args.device_type]['config'][args.module]
    module_id = module_config['id']
    device_options = module_config['options']

    config_name = args.option
    recipient = get_device_pid(args.device_type)

    if args.value is None:
        success, val = fetch_config(dev, recipient, config_name,
                                    device_options, module_id)
        if success:
            print('Fetched {}: {}'.format(config_name, val))
        else:
            print('Failed to fetch {}'.format(config_name))
    else:
        config_value = int(args.value)
        success = change_config(dev, recipient, config_name, config_value,
                                device_options, module_id)

        if success:
            print('{} set to {}'.format(config_name, config_value))
        else:
            print('Failed to set {}'.format(config_name))
Esempio n. 8
0
def perform_led_stream(dev, args):
    recipient = get_device_pid(args.device_type)
    send_continuous_led_stream(dev, recipient, DEVICE[args.device_type],
                               args.led_id, args.freq)
Esempio n. 9
0
 def __init__(self, device_type):
     self.type = device_type
     self.pid = get_device_pid(device_type)
     self.dev = open_device(device_type)