cli: make probe and config work for wired devices

This commit is contained in:
Peter F. Patel-Schneider 2020-09-17 08:02:10 -04:00
parent ebfd26b3d0
commit aeb8588e06
4 changed files with 16 additions and 7 deletions

View File

@ -31,6 +31,7 @@ class Device(object):
def __init__(self, receiver, number, link_notification=None, info=None):
assert receiver or info
self.receiver = receiver
self.isDevice = True # some devices act as receiver so we need a property to distinguish them
if receiver:
assert number > 0 and number <= receiver.max_devices

View File

@ -53,6 +53,7 @@ class Receiver(object):
self.handle = handle
assert device_info
self.path = device_info.path
self.isDevice = False # some devices act as receiver so we need a property to distinguish them
# USB product id, used for some Nano receivers
self.product_id = device_info.product_id
product_info = _product_information(self.product_id)

View File

@ -152,10 +152,13 @@ def _find_device(receivers, name):
number = None
for r in receivers:
if not r.isDevice: # look for nth device of receiver
if number and number <= r.max_devices:
dev = r[number]
if dev:
return dev
else: # wired device, make a device list from it
r = [r]
for dev in r:
if (
@ -185,7 +188,7 @@ def run(cli_args=None, hidraw_path=None):
try:
c = list(_receivers(hidraw_path))
if action == 'show':
if action == 'show' or action == 'probe' or action == 'config':
c += list(_wired_devices(hidraw_path))
if not c:

View File

@ -22,7 +22,7 @@ from __future__ import absolute_import, division, print_function, unicode_litera
from logitech_receiver import base as _base
from logitech_receiver import hidpp10 as _hidpp10
from logitech_receiver.common import strhex as _strhex
from solaar.cli.show import _print_receiver
from solaar.cli.show import _print_device, _print_receiver
_R = _hidpp10.REGISTERS
@ -38,7 +38,11 @@ def run(receivers, args, find_receiver, _ignore):
else:
receiver = receivers[0]
assert receiver
assert receiver is not None
if receiver.isDevice:
_print_device(receiver, 1)
return
_print_receiver(receiver)