Cody McGinnis
4 years ago
14 changed files with 82 additions and 72 deletions
@ -1,9 +1,8 @@ |
|||||||
CONFIG_KSCAN=n |
CONFIG_KSCAN=n |
||||||
CONFIG_ZMK_KSCAN_MOCK_DRIVER=y |
CONFIG_ZMK_KSCAN_MOCK_DRIVER=y |
||||||
CONFIG_ZMK_KSCAN_COMPOSITE_DRIVER=y |
|
||||||
CONFIG_ZMK_KSCAN_GPIO_DRIVER=n |
CONFIG_ZMK_KSCAN_GPIO_DRIVER=n |
||||||
CONFIG_GPIO=n |
CONFIG_GPIO=n |
||||||
CONFIG_ZMK_BLE=n |
CONFIG_ZMK_BLE=n |
||||||
CONFIG_LOG=y |
CONFIG_LOG=y |
||||||
CONFIG_KSCAN_LOG_LEVEL_DBG=y |
CONFIG_LOG_BACKEND_SHOW_COLOR=n |
||||||
CONFIG_ZMK_LOG_LEVEL_DBG=y |
CONFIG_ZMK_LOG_LEVEL_DBG=y |
||||||
|
@ -1,79 +1,18 @@ |
|||||||
#include <dt-bindings/zmk/keys.h> |
|
||||||
#include <behaviors.dtsi> |
#include <behaviors.dtsi> |
||||||
#include <zmk/kscan-mock.h> |
#include <dt-bindings/zmk/keys.h> |
||||||
|
#include <dt-bindings/zmk/kscan-mock.h> |
||||||
|
|
||||||
/ { |
/ { |
||||||
chosen { |
chosen { |
||||||
zmk,kscan = &kscan0; |
zmk,kscan = &kscan; |
||||||
zmk,keymap = &keymap0; |
|
||||||
}; |
|
||||||
|
|
||||||
kscan0: kscan_0 { |
|
||||||
compatible = "zmk,kscan-composite"; |
|
||||||
label = "KSCAN_COMP"; |
|
||||||
rows = <2>; |
|
||||||
columns = <4>; |
|
||||||
|
|
||||||
left: left { |
|
||||||
kscan = <&left_hand>; |
|
||||||
}; |
|
||||||
|
|
||||||
right: right { |
|
||||||
kscan = <&right_hand>; |
|
||||||
column-offset = <2>; |
|
||||||
}; |
|
||||||
}; |
|
||||||
|
|
||||||
left_hand: kscan_1 { |
|
||||||
compatible = "zmk,kscan-mock"; |
|
||||||
label = "KSCAN_LEFT"; |
|
||||||
|
|
||||||
rows = <2>; |
|
||||||
columns = <2>; |
|
||||||
events = <ZMK_MOCK_PRESS(0,1,300) ZMK_MOCK_PRESS(0,0,300) ZMK_MOCK_RELEASE(0,0,300) ZMK_MOCK_RELEASE(0,1,300)>; |
|
||||||
// events = <ZMK_MOCK_PRESS(0,0,800) ZMK_MOCK_RELEASE(0,0,800) ZMK_MOCK_PRESS(0,1,800) ZMK_MOCK_RELEASE(0,1,800)>; |
|
||||||
}; |
}; |
||||||
|
|
||||||
right_hand: kscan_2 { |
kscan: kscan { |
||||||
compatible = "zmk,kscan-mock"; |
compatible = "zmk,kscan-mock"; |
||||||
label = "KSCAN_RIGHT"; |
label = "KSCAN_MOCK"; |
||||||
|
|
||||||
rows = <2>; |
rows = <2>; |
||||||
columns = <2>; |
columns = <2>; |
||||||
events = <ZMK_MOCK_PRESS(1,1,800) ZMK_MOCK_RELEASE(1,1,100) ZMK_MOCK_PRESS(0,1,800) ZMK_MOCK_RELEASE(0,1,100)>; |
exit-after; |
||||||
}; |
|
||||||
|
|
||||||
keymap0: keymap { |
|
||||||
compatible = "zmk,keymap"; |
|
||||||
label ="Default keymap"; |
|
||||||
layers = <&default &lower &raise>; |
|
||||||
}; |
|
||||||
|
|
||||||
layers { |
|
||||||
compatible = "zmk,layers"; |
|
||||||
|
|
||||||
default: layer_0 { |
|
||||||
label = "DEFAULT"; |
|
||||||
|
|
||||||
bindings = < |
|
||||||
&kp B &mo 1 &kp C &kp E |
|
||||||
&kp D &kp G &kp F &kp Q>; |
|
||||||
}; |
|
||||||
|
|
||||||
lower: layer_1 { |
|
||||||
label = "LOWER"; |
|
||||||
|
|
||||||
bindings = < |
|
||||||
&cp M_NEXT &trans &kp O &kp Q |
|
||||||
&kp L &kp J &kp P &kp K>; |
|
||||||
}; |
|
||||||
|
|
||||||
raise: layer_2 { |
|
||||||
label = "RAISE"; |
|
||||||
|
|
||||||
bindings = < |
|
||||||
&kp W &kp U &kp I &kp N |
|
||||||
&kp X &kp M &kp C &kp B>; |
|
||||||
}; |
|
||||||
}; |
}; |
||||||
}; |
}; |
||||||
|
@ -0,0 +1,17 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
if [ -z "$1" ]; then |
||||||
|
echo "Usage: ./run-test.sh <path to testcase>" |
||||||
|
exit 1 |
||||||
|
elif [ "$1" = "all" ]; then |
||||||
|
find tests -name native_posix.keymap -exec dirname \{\} \; | xargs -l -P 2 ./run-test.sh |
||||||
|
exit $? |
||||||
|
fi |
||||||
|
|
||||||
|
testcase="$1" |
||||||
|
echo "Running $testcase:" |
||||||
|
|
||||||
|
west build --pristine -d build/$testcase -b native_posix -- -DZMK_CONFIG=$testcase > /dev/null |
||||||
|
./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log |
||||||
|
|
||||||
|
diff -au $testcase/keycode_events.snapshot build/$testcase/keycode_events.log |
@ -0,0 +1,28 @@ |
|||||||
|
#include <dt-bindings/zmk/keys.h> |
||||||
|
#include <behaviors.dtsi> |
||||||
|
#include <dt-bindings/zmk/kscan-mock.h> |
||||||
|
|
||||||
|
/ { |
||||||
|
keymap { |
||||||
|
compatible = "zmk,keymap"; |
||||||
|
label ="Default keymap"; |
||||||
|
|
||||||
|
default_layer { |
||||||
|
bindings = < |
||||||
|
&kp B &mo 1 |
||||||
|
&kp D &kp G>; |
||||||
|
}; |
||||||
|
|
||||||
|
lower_layer { |
||||||
|
bindings = < |
||||||
|
&cp M_NEXT &trans |
||||||
|
&kp L &kp J>; |
||||||
|
}; |
||||||
|
|
||||||
|
raise_layer { |
||||||
|
bindings = < |
||||||
|
&kp W &kp U |
||||||
|
&kp X &kp M>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
@ -0,0 +1 @@ |
|||||||
|
s/.*hid_listener_keycode_//p |
@ -0,0 +1,2 @@ |
|||||||
|
pressed: usage_page 0x0c keycode 0xb5 |
||||||
|
released: usage_page 0x0c keycode 0xb5 |
@ -0,0 +1,5 @@ |
|||||||
|
#include "../behavior_keymap.dtsi" |
||||||
|
|
||||||
|
&kscan { |
||||||
|
events = <ZMK_MOCK_PRESS(0,1,300) ZMK_MOCK_PRESS(0,0,300) ZMK_MOCK_RELEASE(0,0,300) ZMK_MOCK_RELEASE(0,1,300)>; |
||||||
|
}; |
@ -0,0 +1 @@ |
|||||||
|
s/.*hid_listener_keycode_//p |
@ -0,0 +1,2 @@ |
|||||||
|
pressed: usage_page 0x0c keycode 0xb5 |
||||||
|
released: usage_page 0x0c keycode 0xb5 |
@ -0,0 +1,8 @@ |
|||||||
|
#include <dt-bindings/zmk/keys.h> |
||||||
|
#include <behaviors.dtsi> |
||||||
|
#include <dt-bindings/zmk/kscan-mock.h> |
||||||
|
#include "../behavior_keymap.dtsi" |
||||||
|
|
||||||
|
&kscan { |
||||||
|
events = <ZMK_MOCK_PRESS(0,1,300) ZMK_MOCK_PRESS(0,0,300) ZMK_MOCK_RELEASE(0,0,300) ZMK_MOCK_RELEASE(0,1,300)>; |
||||||
|
}; |
Loading…
Reference in new issue