add documentation
This commit is contained in:
parent
7ff77b97bb
commit
f7dac9e96e
@ -126,3 +126,25 @@ If you require a different type of scanner, you can create your own by
|
|||||||
providing a subclass of `Scanner`. This is a very simple interface, it only
|
providing a subclass of `Scanner`. This is a very simple interface, it only
|
||||||
contains a single method, `scan_for_changes(self)` which returns a key report
|
contains a single method, `scan_for_changes(self)` which returns a key report
|
||||||
if one exists, or `None` otherwise.
|
if one exists, or `None` otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
## Advanced Configuration
|
||||||
|
|
||||||
|
### Multiple Scanners
|
||||||
|
|
||||||
|
Sometimes a single scanner doesn't cover all hardware configurations. For
|
||||||
|
example: The bulk of the keyboard may be scanned with a matrix scanner, but a
|
||||||
|
couple of additional keys are directly connected to GPIOs.
|
||||||
|
In that case KMK allows you to define multiple scanners. The `KMKKeyboard.matrix` attribute can either be assigned a single scanner, or a list of scanners.
|
||||||
|
KMK assumes that successive scanner keys are consecutive, and populates
|
||||||
|
`KMKKeyboard.coord_mapping` accordingly; for convenience you may have to supply a `coord_mapping` that resembles your physical layout more closely.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```python
|
||||||
|
class MyKeyboard(KMKKeyboard):
|
||||||
|
self.matrix = [
|
||||||
|
MatrixScanner(...),
|
||||||
|
KeysScanner(...),
|
||||||
|
# etc...
|
||||||
|
]
|
||||||
|
```
|
||||||
|
Loading…
x
Reference in New Issue
Block a user