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))
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')
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)
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')
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')
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))
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)
def __init__(self, device_type): self.type = device_type self.pid = get_device_pid(device_type) self.dev = open_device(device_type)