aboutsummaryrefslogtreecommitdiff
path: root/docs/ja/newbs_testing_debugging.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ja/newbs_testing_debugging.md')
-rw-r--r--docs/ja/newbs_testing_debugging.md107
1 files changed, 107 insertions, 0 deletions
diff --git a/docs/ja/newbs_testing_debugging.md b/docs/ja/newbs_testing_debugging.md
new file mode 100644
index 000000000..9cf5c6520
--- /dev/null
+++ b/docs/ja/newbs_testing_debugging.md
@@ -0,0 +1,107 @@
1# テストとデバッグ
2
3<!---
4 grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
5 original document: ed0575fc8:docs/newbs_testing_debugging.md
6 git diff ed0575fc8 HEAD docs/newbs_testing_debugging.md | cat
7-->
8
9カスタムファームウェアをキーボードへ書き込んだら、テストする準備が整います。運が良ければ全て問題なく動作しているはずですが、もしそうでなければこのドキュメントがどこが悪いのか調べるのに役立ちます。
10
11## テスト
12
13通常、キーボードをテストするのは非常に簡単です。全てのキーをひとつずつ押して、期待されるキーが送信されていることを確認します。キーを押したことを見逃さないためのプログラムもあります。
14
15メモ: これらのプログラムはQMKによって提供・承認されたものではありません。
16
17* [QMK Configurator](https://config.qmk.fm/#/test/) (Web Based)
18* [Switch Hitter](https://web.archive.org/web/20190413233743/https://elitekeyboards.com/switchhitter.php) (Windows Only)
19* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Mac Only)
20* [Keyboard Tester](http://www.keyboardtester.com) (Web Based)
21* [Keyboard Checker](http://keyboardchecker.com) (Web Based)
22
23## デバッグ
24
25`rules.mk`へ`CONSOLE_ENABLE = yes`の設定をするとキーボードはデバッグ情報を出力します。デフォルトの出力は非常に限られたものですが、デバッグモードをオンにすることでデバッグ情報の量を増やすことが出来ます。キーマップの`DEBUG`キーコードを使用するか、デバッグモードを有効にする [Command](ja/feature_command.md) 機能を使用するか、以下のコードをキーマップに追加します。
26
27```c
28void keyboard_post_init_user(void) {
29 // Customise these values to desired behaviour
30 debug_enable=true;
31 debug_matrix=true;
32 //debug_keyboard=true;
33 //debug_mouse=true;
34}
35```
36
37### QMK Toolboxを使ったデバッグ
38
39互換性のある環境では、[QMK Toolbox](https://github.com/qmk/qmk_toolbox)を使うことでキーボードからのデバッグメッセージを表示できます。
40
41### hid_listenを使ったデバッグ
42
43ターミナルベースの方法がお好みですか?PJRCが提供する[hid_listen](https://www.pjrc.com/teensy/hid_listen.html)もデバッグメッセージの表示に使用できます。ビルド済みの実行ファイルはWindows, Linux, MacOS用が用意されています。
44
45<!-- FIXME: Describe the debugging messages here. -->
46
47## 独自のデバッグメッセージを送信する
48
49[custom code](ja/custom_quantum_functions.md)内からデバッグメッセージを出力すると便利な場合があります。それはとても簡単です。ファイルの先頭に`print.h`のインクルードを追加します:
50
51 #include <print.h>
52
53そのあとは、いくつかの異なったprint関数を使用することが出来ます。
54
55* `print("string")`: シンプルな文字列を出力します
56* `uprintf("%s string", var)`: フォーマットされた文字列を出力します
57* `dprint("string")` デバッグモードが有効な場合のみ、シンプルな文字列を出力します
58* `dprintf("%s string", var)`: デバッグモードが有効な場合のみ、フォーマットされた文字列を出力します
59
60## デバッグの例
61
62以下は現実世界での実際のデバッグ手法の例を集めたものです。追加情報は[Debugging/Troubleshooting QMK](ja/faq_debug.md)を参照してください。
63
64### マトリックス上のどの場所でキー押下が起こったか?
65
66移植する、PCBの問題を診断する場合、キー入力が正しくスキャンされているかどうかを確認することが役立つ場合があります。この手法でのロギングを有効化するには、`keymap.c`へ以下のコードを追加します。
67
68```c
69bool process_record_user(uint16_t keycode, keyrecord_t *record) {
70 // コンソールが有効化されている場合、マトリックス上の位置とキー押下状態を出力します
71#ifdef CONSOLE_ENABLE
72 uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
73#endif
74 return true;
75}
76```
77
78出力の例
79```text
80Waiting for device:.......
81Listening:
82KL: kc: 169, col: 0, row: 0, pressed: 1
83KL: kc: 169, col: 0, row: 0, pressed: 0
84KL: kc: 174, col: 1, row: 0, pressed: 1
85KL: kc: 174, col: 1, row: 0, pressed: 0
86KL: kc: 172, col: 2, row: 0, pressed: 1
87KL: kc: 172, col: 2, row: 0, pressed: 0
88```
89
90### キースキャンにかかる時間の測定
91
92パフォーマンスの問題をテストする場合、スイッチマトリックスをスキャンする頻度を知ることが役立ちます。この手法でのロギングを有効化するには`config.h`へ以下のコードを追加します。
93
94
95```c
96#define DEBUG_MATRIX_SCAN_RATE
97```
98
99出力例
100```text
101 > matrix scan frequency: 315
102 > matrix scan frequency: 313
103 > matrix scan frequency: 316
104 > matrix scan frequency: 316
105 > matrix scan frequency: 316
106 > matrix scan frequency: 316
107```