mirror of https://github.com/zmkfirmware/zmk.git
chore: Add some basic encoder tests (#2845)
Adds some encoder tests for rotating, and basic layers. Mock Kscans don't seem to interact nicely, slightly on the hacky side. However, better to have hacky tests than no tests.
This commit is contained in:
parent
af967667b0
commit
c86f0d6ff4
|
|
@ -0,0 +1,44 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan_mock.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
keymap {
|
||||||
|
compatible = "zmk,keymap";
|
||||||
|
|
||||||
|
default_layer {
|
||||||
|
bindings = <
|
||||||
|
&tog 2 &kp X
|
||||||
|
&tog 1 &none
|
||||||
|
>;
|
||||||
|
sensor-bindings = <&inc_dec_kp A B>;
|
||||||
|
};
|
||||||
|
skip_layer {
|
||||||
|
bindings = <
|
||||||
|
&trans &kp Y
|
||||||
|
&none &none
|
||||||
|
>;
|
||||||
|
sensor-bindings = <&inc_dec_kp N M>;
|
||||||
|
};
|
||||||
|
alt_layer {
|
||||||
|
bindings = <
|
||||||
|
&trans &kp Z
|
||||||
|
&none &none
|
||||||
|
>;
|
||||||
|
sensor-bindings = <&inc_dec_kp C D>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mock_encoder: mock_encoder {
|
||||||
|
compatible = "zmk,sensor-encoder-mock";
|
||||||
|
status = "okay";
|
||||||
|
event-startup-delay = <200>;
|
||||||
|
event-period = <200>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sensors: sensors {
|
||||||
|
compatible = "zmk,keymap-sensors";
|
||||||
|
sensors = <&mock_encoder>;
|
||||||
|
triggers-per-rotation = <20>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
s/.*hid_listener_keycode_//p
|
||||||
|
s/.*layer_changed/layer_changed/p
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
layer_changed: layer 2 state 1
|
||||||
|
pressed: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
|
||||||
|
released: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = < ZMK_MOCK_PRESS(0,0,10)
|
||||||
|
ZMK_MOCK_PRESS(1,1,8000)
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&mock_encoder {
|
||||||
|
events = <18>;
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
s/.*hid_listener_keycode_//p
|
||||||
|
s/.*layer_changed/layer_changed/p
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
layer_changed: layer 1 state 1
|
||||||
|
layer_changed: layer 2 state 1
|
||||||
|
pressed: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
|
||||||
|
released: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = < ZMK_MOCK_PRESS(1,0,10) ZMK_MOCK_PRESS(0,0,10)
|
||||||
|
ZMK_MOCK_PRESS(1,1,8000)
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&mock_encoder {
|
||||||
|
events = <18>;
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
s/.*hid_listener_keycode_//p
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
pressed: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
|
||||||
|
released: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
|
||||||
|
pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
|
||||||
|
released: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = < ZMK_MOCK_PRESS(1,1,1000)
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&mock_encoder {
|
||||||
|
events = <18 (-18)>;
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue