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