Simplify CDC driver layer
This commit is contained in:
59
docs/host_dri_rebuild.md
Normal file
59
docs/host_dri_rebuild.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Host DRI Rebuild
|
||||
|
||||
## Goal
|
||||
|
||||
Keep the device runtime layer small and transport-only.
|
||||
|
||||
The DRI layer should:
|
||||
|
||||
- enumerate endpoints
|
||||
- open and close connections
|
||||
- read raw bytes
|
||||
- write raw bytes
|
||||
|
||||
The DRI layer should not:
|
||||
|
||||
- parse frames
|
||||
- manage protocol state
|
||||
- decide handshake success
|
||||
|
||||
## Completed Nodes
|
||||
|
||||
### Node 1: GATT placeholder
|
||||
|
||||
Files:
|
||||
|
||||
- `KeyBorad/KeyBorad/DRI/GATT/Dri_Gatt.h`
|
||||
- `KeyBorad/KeyBorad/DRI/GATT/Dri_Gatt.cpp`
|
||||
|
||||
Design notes:
|
||||
|
||||
- reserves the BLE transport position early
|
||||
- keeps the implementation small for now
|
||||
- avoids mixing GATT transport with logic concerns
|
||||
|
||||
### Node 2: CDC transport cleanup
|
||||
|
||||
Files updated in this step:
|
||||
|
||||
- `KeyBorad/KeyBorad/DRI/Dri_Cdc.h`
|
||||
- `KeyBorad/KeyBorad/DRI/Dri_Cdc.cpp`
|
||||
|
||||
Design notes:
|
||||
|
||||
- remove frame parsing from the driver
|
||||
- remove handshake ownership from the driver
|
||||
- keep only enumerate/open/close/read-bytes/write-bytes
|
||||
|
||||
Implemented behavior:
|
||||
|
||||
- list ports with `Dri_Cdc_Enum()`
|
||||
- open one port with `Dri_Cdc_Open()`
|
||||
- close one port with `Dri_Cdc_Close()`
|
||||
- read raw bytes with timeout
|
||||
- write raw bytes with timeout
|
||||
|
||||
## Next DRI nodes
|
||||
|
||||
- implement real GATT discovery and notify/write path
|
||||
- provide one simple connection summary for logic layer
|
||||
Reference in New Issue
Block a user