You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<mxCell id="39" style="sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Comic Sans MS;fontSize=16;" parent="1" source="36" target="23" edge="1">
44
+
<mxGeometry relative="1" as="geometry"/>
45
+
</mxCell>
46
+
<mxCell id="36" value="send to master" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Comic Sans MS;fontSize=20;" parent="1" vertex="1">
Copy file name to clipboardExpand all lines: docs/src/split_keyboard.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# Split keyboard
2
2
3
3
<divclass="warning">
4
-
This feature is currently not implemented, this document is a design writeup
4
+
This feature is currently not implemented, this document is a draft writeup
5
5
</div>
6
6
7
7
## Design
@@ -105,16 +105,16 @@ The slave continously scans it's matrix, if there's a key change, or a key press
105
105
106
106
In master, there's a key state cache for each slave, and a separate thread running to continously receives the key states from slave and saves key states to cache.
107
107
108
+
Each slave cache in master runs in different threads, which is an infinite loop that receives all `SplitMessage` from actual slave boards.
109
+
108
110
For master, the matrix scanning has the following steps:
109
111
110
112
1. Scan the master's own key matrix
111
113
2. Read the all slaves' key state caches
112
-
3. Merge them to a final key states, finish matrix scanning
113
-
114
-
Only the changed event should be sent, then the state cache of slave is updated. If the slave state is different from main key state, `changed` is true.
115
-
114
+
3. Merge them to a final key states, finish matrix scanning. If the slave state is different from main key state, `changed` is true.
116
115
4. If the keyboard is running in `async_matrix` mode, each received key states triggers matrix scanning.
117
116
117
+
118
118
### Implementation difference?
119
119
120
120
- single keyboard <-> split master:
@@ -151,7 +151,7 @@ There are several types of split keyboard that RMK should support:
151
151
152
152
The following is a simple table for those four types of split keyboard
0 commit comments