# LEDの識別番号をどの層が持つか (P-11解消) ## 結論 ELCが持つ。IDXは持たない。 LEDの番号は「設計者が恣意的に決めてよい」が、決めた瞬間それは配線の指示になる。 そのためチェーン順序やドライバのアドレスと同じものであり、置き場はELC。 IDXに別の論理インデックスを置くと、ELCの番号と二重管理になり、食い違えばファームが別のLEDを光らせる。 なおP-11は検証で解消したのではなく、決めで解消した。ユーザーの判断「一度エイヤで入れてしまいましょう」。 ## 案の比較 | 案 | 番号の出どころ | 判定 | | --- | --- | --- | | ELCが持つ | チェーン順序 / ドライバのアドレス | 採用 | | IDXが持つ | 設計者が振る論理番号 | ELCの番号と二重管理になる | | PHYが持つ | 配置順 | 配線と無関係な順序になりうる | ## 根拠: QMK RGB Matrix の `g_led_config` - `matrix_co[row][col]` … キーからLEDインデックスを引く - `point{x,y}` … 物理座標。左上 `{0,0}`、右下 `{224,64}` - `flags` … `LED_FLAG_MODIFIER` / `LED_FLAG_UNDERGLOW` / `LED_FLAG_KEYLIGHT` など 効果は主に `point` の座標で計算する。インデックスは座標を引くための識別子であって、 効果の意味を持たない。したがって「効果のためにIDXが番号を振る」必要がない。 インデックスはデータ線の並び順そのものとは限らず、ドライバのアドレス方式に対応する。 WS2812系ならチェーン順序、IS31FL37xx系なら (ドライバ, チャンネル)。 どちらも配線で決まる値なので、ELCが持つという結論は変わらない。 出典: https://docs.qmk.fm/features/rgb_matrix ## per-key以外のLED アンダーグロー・ロゴLEDなど、キーに紐づかないLEDがあるため「キー番号で代用する」ことはできない。 これらはPHYの部品ノードとして位置を持つので、`point` はPHYから、`flags` の区分は per-key LEDか独立した部品ノードかという種別から導ける。ここでもIDXの出番はない。