receiver: read GESTURE2 param defaults

This commit is contained in:
Vinícius 2020-08-30 14:26:25 -03:00 committed by Peter F. Patel-Schneider
parent 09394cfbf5
commit b3751913b2
2 changed files with 16 additions and 3 deletions

View File

@ -838,18 +838,32 @@ class Param(object):
self.size = high & 0x0F
self.show_in_ui = bool(high & 0x1F)
self._value = None
self._default_value = None
self.index = Param.param_index
Param.param_index += 1
@property
def value(self):
return self._value if self._value is not None else self.read()
def read(self): # returns the bytes for the parameter
result = feature_request(self._device, FEATURE.GESTURE_2, 0x70, self.index, 0xFF)
if result:
self._value = result[:self.size]
self._value = _bytes2int(result[:self.size])
return self._value
@property
def default_value(self):
if self._default_value is None:
self._default_value = self._read_default()
return self._default_value
def _read_default(self):
result = feature_request(self._device, FEATURE.GESTURE_2, 0x60, self.index, 0xFF)
if result:
self._default_value = _bytes2int(result[:self.size])
return self._default_value
def write(self, bytes):
self._value = bytes
return feature_request(self._device, FEATURE.GESTURE_2, 0x80, self.index, bytes, 0xFF)
@ -916,7 +930,6 @@ class Gestures(object):
elif field_high & 0xF0 == 0x40:
spec = Spec(device, field_low, field_high)
self.specs[spec.spec] = spec
print(spec)
else:
_log.warn(f'Unimplemented GESTURE_2 field {field_low} {field_high} found.')
index += 1

View File

@ -211,7 +211,7 @@ def _print_device(dev, num=None):
for k in dev.gestures.gestures.values():
print(' %-26s Enabled (%4s): %s' % (k.gesture, k.index, k.enabled()))
for k in dev.gestures.params.values():
print(' %-26s Value (%4s): %s' % (k.param, k.index, k.value()))
print(' %-26s Value (%4s): %s [Default: %s]' % (k.param, k.index, k.value, k.default_value))
for k in dev.gestures.specs.values():
print(' %-26s Spec (%4s): %s' % (k.spec, k.id, k.value))
if dev.online: