diff --git a/lib/logitech_receiver/diversion.py b/lib/logitech_receiver/diversion.py index 2437e91e..e8fb8e39 100644 --- a/lib/logitech_receiver/diversion.py +++ b/lib/logitech_receiver/diversion.py @@ -364,6 +364,15 @@ def thumb_wheel_down(f, r, d, a): return False +def charging(f, r, d, a): + if (f == _F.BATTERY_STATUS and r == 0 and 1 <= d[2] <= 4) or \ + (f == _F.BATTERY_VOLTAGE and r == 0 and d[2] & (1 << 7)) or \ + (f == _F.UNIFIED_BATTERY and r == 0 and 1 <= d[2] <= 3): + return 1 + else: + return False + + TESTS = { 'crown_right': [lambda f, r, d, a: f == _F.CROWN and r == 0 and d[1] < 128 and d[1], False], 'crown_left': [lambda f, r, d, a: f == _F.CROWN and r == 0 and d[1] >= 128 and 256 - d[1], False], @@ -379,6 +388,7 @@ TESTS = { 'lowres_wheel_down': [lambda f, r, d, a: f == _F.LOWRES_WHEEL and r == 0 and signed(d[0:1]) < 0 and signed(d[0:1]), False], 'hires_wheel_up': [lambda f, r, d, a: f == _F.HIRES_WHEEL and r == 0 and signed(d[1:3]) > 0 and signed(d[1:3]), False], 'hires_wheel_down': [lambda f, r, d, a: f == _F.HIRES_WHEEL and r == 0 and signed(d[1:3]) < 0 and signed(d[1:3]), False], + 'charging': [charging, False], 'False': [lambda f, r, d, a: False, False], 'True': [lambda f, r, d, a: True, False], }