Restored files

This commit is contained in:
2021-12-31 12:35:54 +01:00
parent 1e34d84f49
commit 1e071e2de7
4 changed files with 61 additions and 12 deletions

13
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,13 @@
{
"python.languageServer": "Pylance",
"python.linting.pylintEnabled": false,
"python.analysis.diagnosticSeverityOverrides": {
"reportMissingModuleSource": "none"
},
"python.analysis.extraPaths": [
"",
"/home/wholteza/.vscode/extensions/joedevivo.vscode-circuitpython-0.1.15/stubs",
"/home/wholteza/.config/Code/User/globalStorage/joedevivo.vscode-circuitpython/bundle/20211231/adafruit-circuitpython-bundle-py-20211231/lib"
],
"circuitpython.board.version": "7.0.0"
}

44
Keyboard.py Executable file
View File

@@ -0,0 +1,44 @@
import usb_hid
from micropython import const
__BYTE_ARRRAY_LENGTH = const(8)
__MAX_KEYPRESSES = const(6)
class Keyboard():
keyboard_device: usb_hid.Device
report: bytearray
def __init__(self):
self.keyboard_device = usb_hid.Device.KEYBOARD
self.report = bytearray(__BYTE_ARRRAY_LENGTH)
self.report_modifier = memoryview(self.report)[0:__BYTE_ARRRAY_LENGTH-__MAX_KEYPRESSES-1]
self.report_keys = memoryview(self.report)[__BYTE_ARRRAY_LENGTH-__MAX_KEYPRESSES:]
def press(self, *keycodes: int) -> None:
for keycode in keycodes:
self.add_key_to_report(keycode)
self.keyboard_device.send_report(self.report)
def add_key_to_report(self, keycode: int) -> None:
for i in range(__MAX_KEYPRESSES):
if self.report_keys[i] == keycode:
return
for i in range(__MAX_KEYPRESSES):
if self.report_keys[i] == 0:
self.report_keys[i] = keycode
return
raise ValueError(
"bytearray full!"
)
def release(self, *keycodes: int) -> None:
for keycode in keycodes:
self.remove_key_from_report(keycode)
self.keyboard_device.send_report(self.report)
def remove_key_from_report(self, keycode: int) -> None:
for i in range(__MAX_KEYPRESSES):
if self.report_keys[i] == keycode:
self.report_keys[i] = 0
def release_all(self) -> None:
"""Release all"""
for i in range(__BYTE_ARRRAY_LENGTH):
self.report[i] = 0
self.keyboard_device.send_report(self.report)

View File

@@ -1,4 +1,4 @@
from adafruit_hid.keyboard import Keyboard
from Keyboard import Keyboard
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
from adafruit_hid.keycode import Keycode
from adafruit_rgbled import RGBLED
@@ -29,14 +29,11 @@ class KeyboardStateManager:
pinout: list[list[int]]
pins: list[list[digitalio.DigitalInOut]]
keyboard: Keyboard
keyboard_layout: KeyboardLayoutUS
mcp: MCP23017
led: RGBLED
def __init__(self, keymap: list[list[Keycode]]):
self.keymap = keymap
self.keyboard = Keyboard(usb_hid.devices)
self.keyboard_layout = KeyboardLayoutUS(self.keyboard)
self.keyboard = Keyboard()
self.initialize_io_extender()
self.initialize_pins(PINOUT)
self.initialize_led()

View File

@@ -2,12 +2,6 @@ import time
from adafruit_hid.keycode import Keycode
from KeyboardStateManager import KeyboardStateManager
pinout_rows = [
[7, 11, 15, 0],
[8, 4, 14, 1],
[6, 10, 13, 2],
[9, 5, 12, 3]
]
keymap_rows = [
[Keycode.ONE, Keycode.TWO, Keycode.THREE, Keycode.FOUR],
@@ -20,8 +14,9 @@ keymap_rows = [
# Sleep to avoid OS problems
time.sleep(1)
keyboard_state_manager = KeyboardStateManager(pinout_rows, keymap_rows)
keyboard_state_manager = KeyboardStateManager( keymap_rows)
while True:
keyboard_state_manager.loop()
dfssssssssdddfffqqwweererqwerasdxc