requested changes
This commit is contained in:
@@ -31,19 +31,20 @@ class BLE_Split(Extension):
|
||||
self._advertising = False
|
||||
self._uart_interval = uart_interval
|
||||
self._psave_enable = False
|
||||
self._debug_enabled = False
|
||||
|
||||
def __repr__(self):
|
||||
return f'BLE_SPLIT({self._to_dict()})'
|
||||
|
||||
def _to_dict(self):
|
||||
return f'''
|
||||
BLE_Split( _ble={self._ble}
|
||||
_ble_last_scan={self._ble_last_scan}
|
||||
_is_target={self._is_target}
|
||||
_uart_buffer={self._uart_buffer}
|
||||
_split_flip={self.split_flip}
|
||||
_split_side={self.split_side} )
|
||||
'''
|
||||
return {
|
||||
'_ble': self._ble,
|
||||
'_ble_last_scan': self._ble_last_scan,
|
||||
'_is_target': self._is_target,
|
||||
'uart_buffer': self._uart_buffer,
|
||||
'_split_flip': self.split_flip,
|
||||
'_split_side': self.split_side,
|
||||
}
|
||||
|
||||
def on_runtime_enable(self, keyboard):
|
||||
return
|
||||
@@ -52,15 +53,17 @@ class BLE_Split(Extension):
|
||||
return
|
||||
|
||||
def during_bootup(self, keyboard):
|
||||
self._debug_enabled = keyboard.debug_enabled
|
||||
self._ble.name = str(getmount('/').label)
|
||||
if self._ble.name.endswith('L'):
|
||||
# If name ends in 'L' assume left and strip from name
|
||||
self._is_target = True
|
||||
elif self._ble.name.endswith('R'):
|
||||
# If name ends in 'R' assume right and strip from name
|
||||
self._is_target = False
|
||||
else:
|
||||
self._is_target = bool(self.split_side == 'Left')
|
||||
if self.split_side is None:
|
||||
if self._ble.name.endswith('L'):
|
||||
# If name ends in 'L' assume left and strip from name
|
||||
self._is_target = True
|
||||
elif self._ble.name.endswith('R'):
|
||||
# If name ends in 'R' assume right and strip from name
|
||||
self._is_target = False
|
||||
else:
|
||||
self._is_target = bool(self.split_side == 0)
|
||||
|
||||
if self.split_flip and not self._is_target:
|
||||
keyboard.col_pins = list(reversed(keyboard.col_pins))
|
||||
@@ -127,23 +130,27 @@ class BLE_Split(Extension):
|
||||
break
|
||||
|
||||
if not self._uart:
|
||||
print('Scanning')
|
||||
if self._debug_enabled:
|
||||
print('Scanning')
|
||||
self._ble.stop_scan()
|
||||
for adv in self._ble.start_scan(ProvideServicesAdvertisement, timeout=20):
|
||||
print('Scanning')
|
||||
if self._debug_enabled:
|
||||
print('Scanning')
|
||||
if UARTService in adv.services and adv.rssi > -70:
|
||||
self._uart_connection = self._ble.connect(adv)
|
||||
self._uart_connection.connection_interval = 11.25
|
||||
self._uart = self._uart_connection[UARTService]
|
||||
self._ble.stop_scan()
|
||||
print('Scan complete')
|
||||
if self._debug_enabled:
|
||||
print('Scan complete')
|
||||
break
|
||||
self._ble.stop_scan()
|
||||
|
||||
def _target_advertise(self):
|
||||
'''Advertises the target for the initiator to find'''
|
||||
self._ble.stop_advertising()
|
||||
print('Advertising')
|
||||
if self._debug_enabled:
|
||||
print('Advertising')
|
||||
# Uart must not change on this connection if reconnecting
|
||||
if not self._uart:
|
||||
self._uart = UARTService()
|
||||
@@ -156,7 +163,8 @@ class BLE_Split(Extension):
|
||||
self._connection_count = len(self._ble.connections)
|
||||
if self._connection_count > 1:
|
||||
self.ble_time_reset()
|
||||
print('Advertising complete')
|
||||
if self._debug_enabled:
|
||||
print('Advertising complete')
|
||||
break
|
||||
self._ble.stop_advertising()
|
||||
|
||||
@@ -178,8 +186,11 @@ class BLE_Split(Extension):
|
||||
try:
|
||||
self._uart.disconnect()
|
||||
except: # noqa: E722
|
||||
print('UART disconnect failed')
|
||||
print('Connection error')
|
||||
if self._debug_enabled:
|
||||
print('UART disconnect failed')
|
||||
|
||||
if self._debug_enabled:
|
||||
print('Connection error')
|
||||
self._uart_connection = None
|
||||
self._uart = None
|
||||
return update
|
||||
|
@@ -23,6 +23,12 @@ class Layers(Extension):
|
||||
|
||||
def __init__(self):
|
||||
# Layers
|
||||
self.start_time = {
|
||||
LayerType.LT: None,
|
||||
LayerType.TG: None,
|
||||
LayerType.TT: None,
|
||||
LayerType.LM: None,
|
||||
}
|
||||
make_argumented_key(
|
||||
validator=layer_key_validator,
|
||||
names=('MO',),
|
||||
@@ -57,13 +63,6 @@ class Layers(Extension):
|
||||
on_release=self._tt_released,
|
||||
)
|
||||
|
||||
start_time = {
|
||||
LayerType.LT: None,
|
||||
LayerType.TG: None,
|
||||
LayerType.TT: None,
|
||||
LayerType.LM: None,
|
||||
}
|
||||
|
||||
def on_runtime_enable(self, keyboard):
|
||||
return
|
||||
|
||||
|
@@ -64,7 +64,16 @@ class LED(Extension):
|
||||
return 'LED({})'.format(self._to_dict())
|
||||
|
||||
def _to_dict(self):
|
||||
return f'LED(_brightness={self._brightness} _pos={self._pos} brightness_step={self.brightness_step} brightness_limit={self.brightness_limit} animation_mode={self.animation_mode} animation_speed={self.animation_speed} breathe_center={self.breathe_center} val={self.val} )'
|
||||
return {
|
||||
'_brightness': self._brightness,
|
||||
'_pos': self._pos,
|
||||
'brightness_step': self.brightness_step,
|
||||
'brightness_limit': self.brightness_limit,
|
||||
'animation_mode': self.animation_mode,
|
||||
'animation_speed': self.animation_speed,
|
||||
'breathe_center': self.breathe_center,
|
||||
'val': self.val,
|
||||
}
|
||||
|
||||
def on_runtime_enable(self, keyboard):
|
||||
return
|
||||
|
@@ -31,13 +31,13 @@ class Power(Extension):
|
||||
return f'Power({self._to_dict()})'
|
||||
|
||||
def _to_dict(self):
|
||||
return f'''Power(
|
||||
enable={self.enable}
|
||||
powersave_pin={self.powersave_pin}
|
||||
_powersave_start={self._powersave_start}
|
||||
_usb_last_scan={self._usb_last_scan}
|
||||
_psp={self._psp} )
|
||||
'''
|
||||
return {
|
||||
'enable': self.enable,
|
||||
'powersave_pin': self.powersave_pin,
|
||||
'_powersave_start': self._powersave_start,
|
||||
'_usb_last_scan': self._usb_last_scan,
|
||||
'_psp': self._psp,
|
||||
}
|
||||
|
||||
def on_runtime_enable(self, keyboard):
|
||||
return
|
||||
@@ -82,7 +82,6 @@ class Power(Extension):
|
||||
|
||||
def enable_powersave(self, keyboard):
|
||||
'''Enables power saving features'''
|
||||
print('Psave True')
|
||||
if keyboard.i2c_deinit_count >= self._i2c and self.powersave_pin:
|
||||
# Allows power save to prevent RGB drain.
|
||||
# Example here https://docs.nicekeyboards.com/#/nice!nano/pinout_schematic
|
||||
@@ -96,7 +95,6 @@ class Power(Extension):
|
||||
|
||||
def disable_powersave(self):
|
||||
'''Disables power saving features'''
|
||||
print('Psave False')
|
||||
if self.powersave_pin:
|
||||
# Allows power save to prevent RGB drain.
|
||||
# Example here https://docs.nicekeyboards.com/#/nice!nano/pinout_schematic
|
||||
|
@@ -52,19 +52,20 @@ class Split(Extension):
|
||||
self._is_target = True
|
||||
except OSError:
|
||||
self._is_target = False
|
||||
l_or_r = str(getmount('/').label)
|
||||
if l_or_r.endswith('L'):
|
||||
# If name ends in 'L' assume left and strip from name
|
||||
self.split_side = 'Left'
|
||||
elif l_or_r.endswith('R'):
|
||||
# If name ends in 'R' assume right and strip from name
|
||||
self.split_side = 'Right'
|
||||
if self.split_side is None:
|
||||
l_or_r = str(getmount('/').label)
|
||||
if l_or_r.endswith('L'):
|
||||
# If name ends in 'L' assume left and strip from name
|
||||
self.split_side = 0
|
||||
elif l_or_r.endswith('R'):
|
||||
# If name ends in 'R' assume right and strip from name
|
||||
self.split_side = 1
|
||||
|
||||
if self.split_flip and not self._is_target:
|
||||
keyboard.col_pins = list(reversed(keyboard.col_pins))
|
||||
if self.split_side == 'Left':
|
||||
if self.split_side == 0:
|
||||
self.split_target_left = self._is_target
|
||||
elif self.split_side == 'Right':
|
||||
elif self.split_side == 0:
|
||||
self.split_target_left = not self._is_target
|
||||
|
||||
if self.uart_pin is not None:
|
||||
|
@@ -226,7 +226,6 @@ class USBHID(AbstractHID):
|
||||
|
||||
class BLEHID(AbstractHID):
|
||||
try:
|
||||
# TODO FIXME This is wrapped in a try block to prevent crashes on M4 devices
|
||||
from adafruit_ble import BLERadio
|
||||
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
|
||||
from adafruit_ble.services.standard.hid import HIDService
|
||||
@@ -257,7 +256,7 @@ class BLEHID(AbstractHID):
|
||||
@property
|
||||
def devices(self):
|
||||
'''Search through the provided list of devices to find the ones with the
|
||||
send_report attribute.'''
|
||||
send_report attribute.'''
|
||||
if not self.ble.connected:
|
||||
return []
|
||||
|
||||
@@ -328,4 +327,4 @@ class BLEHID(AbstractHID):
|
||||
self.ble.stop_advertising()
|
||||
|
||||
except ImportError:
|
||||
pass
|
||||
print('Bluetooth unsupported')
|
||||
|
@@ -115,11 +115,6 @@ class KMKKeyboard:
|
||||
self._on_matrix_changed(update[0], update[1], update[2])
|
||||
self.state_changed = True
|
||||
|
||||
#####
|
||||
# SPLICE: INTERNAL STATE
|
||||
# TODO FIXME CLEAN THIS
|
||||
#####
|
||||
|
||||
def _find_key_in_map(self, int_coord, row, col):
|
||||
self.state_layer_key = None
|
||||
try:
|
||||
@@ -281,11 +276,6 @@ class KMKKeyboard:
|
||||
|
||||
return self
|
||||
|
||||
#####
|
||||
# SPLICE END: INTERNAL STATE
|
||||
# TODO FIXME REMOVE THIS
|
||||
#####
|
||||
|
||||
def _init_sanity_check(self):
|
||||
'''
|
||||
Ensure the provided configuration is *probably* bootable
|
||||
@@ -310,11 +300,8 @@ class KMKKeyboard:
|
||||
and do an isinstance check, but instead do string detection
|
||||
'''
|
||||
if any(
|
||||
x.__class__.__module__ == 'kmk.extensions.split' for x in self.extensions
|
||||
):
|
||||
return
|
||||
if any(
|
||||
x.__class__.__module__ == 'kmk.extensions.ble_split'
|
||||
x.__class__.__module__
|
||||
in {'kmk.extensions.split', 'kmk.extensions.ble_split'}
|
||||
for x in self.extensions
|
||||
):
|
||||
return
|
||||
@@ -350,8 +337,8 @@ class KMKKeyboard:
|
||||
|
||||
return self
|
||||
|
||||
# Only one GC to allow for extentions to have room.
|
||||
# There are random memory allocations without this
|
||||
# Only one GC to allow for extentions to have room. There are random memory allocations
|
||||
# issues due to some devices not properly cleaning memory on reset
|
||||
gc.collect()
|
||||
|
||||
def go(self, hid_type=HIDModes.USB, **kwargs):
|
||||
@@ -366,9 +353,6 @@ class KMKKeyboard:
|
||||
ext.during_bootup(self)
|
||||
except Exception:
|
||||
print('Failed to load extention', ext)
|
||||
import time
|
||||
|
||||
time.sleep(5)
|
||||
|
||||
self._init_matrix()
|
||||
|
||||
|
Reference in New Issue
Block a user