Add firmware function events
This commit is contained in:
38
docs/firmware_proto_transport.md
Normal file
38
docs/firmware_proto_transport.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Firmware Proto Transport
|
||||
|
||||
## Goal
|
||||
|
||||
Add CDC and GATT private communication without rewriting the existing keyboard,
|
||||
time, theme, and LED business logic.
|
||||
|
||||
The firmware side should:
|
||||
|
||||
- keep standard HID behavior for normal keys
|
||||
- receive host commands over CDC and GATT
|
||||
- report private state and function key events over CDC and GATT
|
||||
- reuse existing modules where possible
|
||||
|
||||
## Completed Nodes
|
||||
|
||||
### Node 1: internal function events
|
||||
|
||||
Files:
|
||||
|
||||
- `src/events/function_bitmap_event.h`
|
||||
- `src/events/function_bitmap_event.c`
|
||||
- `src/events/function_key_event.h`
|
||||
- `src/events/function_key_event.c`
|
||||
|
||||
Design notes:
|
||||
|
||||
- `function_bitmap_event` carries the 29-byte function bitmap from host
|
||||
- `function_key_event` carries usage + action when a configured function key
|
||||
is pressed or released
|
||||
- these events isolate transport modules from keyboard internals
|
||||
|
||||
## Planned next nodes
|
||||
|
||||
- keyboard split logic uses `function_bitmap_event`
|
||||
- CDC transport module
|
||||
- GATT transport module
|
||||
- nanopb integration and generated protocol code
|
||||
Reference in New Issue
Block a user