Fully working split. Needs further testing
This commit is contained in:
		| @@ -64,6 +64,7 @@ class Firmware: | |||||||
|  |  | ||||||
|     split_type = None |     split_type = None | ||||||
|     split_offsets = () |     split_offsets = () | ||||||
|  |     split_flip = True | ||||||
|     split_master_left = True |     split_master_left = True | ||||||
|     uart = None |     uart = None | ||||||
|  |  | ||||||
| @@ -86,6 +87,7 @@ class Firmware: | |||||||
|     def _handle_update(self, update): |     def _handle_update(self, update): | ||||||
|         # if self.split_type is not None and not self.split_master_left: |         # if self.split_type is not None and not self.split_master_left: | ||||||
|             # update[1] += self.split_offsets[update[1]] |             # update[1] += self.split_offsets[update[1]] | ||||||
|  |         print(update[1]) | ||||||
|  |  | ||||||
|         if update is not None: |         if update is not None: | ||||||
|             self._state.matrix_changed( |             self._state.matrix_changed( | ||||||
| @@ -115,9 +117,6 @@ class Firmware: | |||||||
|             if self.uart is None: |             if self.uart is None: | ||||||
|                 self.uart = busio.UART(board.TX, board.RX, timeout=1) |                 self.uart = busio.UART(board.TX, board.RX, timeout=1) | ||||||
|  |  | ||||||
|             # Update column with offset |  | ||||||
|             # if self.split_master_left: |  | ||||||
|                 # update[1] += self.split_offsets[update[1]] |  | ||||||
|  |  | ||||||
|             self.uart.write(update) |             self.uart.write(update) | ||||||
|  |  | ||||||
| @@ -126,7 +125,10 @@ class Firmware: | |||||||
|             if self.uart is None: |             if self.uart is None: | ||||||
|                 self.uart = busio.UART(board.TX, board.RX, timeout=1) |                 self.uart = busio.UART(board.TX, board.RX, timeout=1) | ||||||
|  |  | ||||||
|             update = self.uart.read(nbytes=3) |             if self.uart.in_waiting > 0: | ||||||
|  |                 update = bytearray(self.uart.read()) | ||||||
|  |                 if self.split_master_left: | ||||||
|  |                     update[1] += self.split_offsets[update[0]] | ||||||
|                 return update |                 return update | ||||||
|  |  | ||||||
|         return None |         return None | ||||||
| @@ -137,6 +139,9 @@ class Firmware: | |||||||
|         assert self.col_pins, 'no GPIO pins defined for matrix columns' |         assert self.col_pins, 'no GPIO pins defined for matrix columns' | ||||||
|         assert self.diode_orientation is not None, 'diode orientation must be defined' |         assert self.diode_orientation is not None, 'diode orientation must be defined' | ||||||
|  |  | ||||||
|  |         if self.split_flip and not supervisor.runtime.serial_connected: | ||||||
|  |             self.col_pins = list(reversed(self.col_pins)) | ||||||
|  |  | ||||||
|         self.matrix = MatrixScanner( |         self.matrix = MatrixScanner( | ||||||
|             cols=self.col_pins, |             cols=self.col_pins, | ||||||
|             rows=self.row_pins, |             rows=self.row_pins, | ||||||
| @@ -153,15 +158,15 @@ class Firmware: | |||||||
|         while True: |         while True: | ||||||
|             if self.split_type is not None and supervisor.runtime.serial_connected: |             if self.split_type is not None and supervisor.runtime.serial_connected: | ||||||
|                 update = self._receive_from_slave() |                 update = self._receive_from_slave() | ||||||
|                 print(str(update)) |  | ||||||
|                 if update is not None: |                 if update is not None: | ||||||
|  |                     print(str(update)) | ||||||
|                     self._handle_update(update) |                     self._handle_update(update) | ||||||
|  |  | ||||||
|             for update in self.matrix.scan_for_changes(): |             for update in self.matrix.scan_for_changes(): | ||||||
|                 if update is not None: |                 if update is not None: | ||||||
|                     # Abstract this later. Bluetooth will fail here |                     # Abstract this later. Bluetooth will fail here | ||||||
|                     if supervisor.runtime.serial_connected: |                     if supervisor.runtime.serial_connected: | ||||||
|                         if update is not None: |                         print(str(update)) | ||||||
|                         self._handle_update(update) |                         self._handle_update(update) | ||||||
|  |  | ||||||
|                     else: |                     else: | ||||||
|   | |||||||
| @@ -20,7 +20,8 @@ keyboard.tap_time = 900 | |||||||
| keyboard.leader_timeout = 2000 | keyboard.leader_timeout = 2000 | ||||||
| keyboard.debug_enabled = True | keyboard.debug_enabled = True | ||||||
| keyboard.split_type = "UART" | keyboard.split_type = "UART" | ||||||
| keyboard.split_offsets = [5, 5, 5, 5] | keyboard.split_flip = True | ||||||
|  | keyboard.split_offsets = [6, 6, 6, 6] | ||||||
|  |  | ||||||
| emoticons = compile_unicode_string_sequences({ | emoticons = compile_unicode_string_sequences({ | ||||||
|     # Emoticons, but fancier |     # Emoticons, but fancier | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user