provisional: ELC Editorの倍マトリクスの操作を合意事項に移す
倍マトリクスモードはELCに保存しない配線補助の設定とし、プロジェクトのエディタ状態に残してGeneratorの出力設定の初期値に使う。 なぞるときは排他でないキーとの重なりで向きを自動反転し、モード切り替えでは既存の配線を書き換えない。 向きの操作は「相方と交換」(ピンの組単位)と「このキーだけ反転」の2つ、表示は a→b の三角形とする。 二乗マトリクスとの統合は両方の検討後に回し、Generatorの検査の穴は範囲外として記録する。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WRs1RXP4ghZKFWMLPBQ3d8
This commit is contained in:
@@ -14,6 +14,33 @@
|
|||||||
- 倍マトリクスでは、同じrow/colの組が編集中に重なってよい。ダイオードの向きで区別するので衝突にはならない(T-25)。
|
- 倍マトリクスでは、同じrow/colの組が編集中に重なってよい。ダイオードの向きで区別するので衝突にはならない(T-25)。
|
||||||
重なった場合も保存は止めない(T-16)。
|
重なった場合も保存は止めない(T-16)。
|
||||||
|
|
||||||
|
### 倍マトリクス
|
||||||
|
|
||||||
|
- 倍マトリクスモードは配線補助の設定であり、ボードの属性ではない。ELCには保存しない(ELCはトポロジを区分として持たない)。
|
||||||
|
- 途中保存したプロジェクトで設定を復元できるよう、プロジェクト内のエディタの状態として保存する。
|
||||||
|
- Generatorの出力設定を作るときの初期値に使える。常には連動させない(走査方式を決めるのは出力設定)。
|
||||||
|
倍マトリクスの出力はGeneratorが未対応(T-19)なので、効くのは対応後。
|
||||||
|
- rowモード/colモードのどちらで作業中かは保存しない。
|
||||||
|
- エディタはrow/colやCOL2ROWの概念を持たない。順/逆の解釈はGeneratorが行う。エディタ内の規約は次の2つだけ。
|
||||||
|
- rowモードでなぞると端子a、colモードでなぞると端子bに書く。
|
||||||
|
- なぞったときの既定の向きは `a-to-b`。
|
||||||
|
- 倍マトリクスモードでなぞったとき、同じピンの組を持つキーが既にあれば、新しいキーの向きを反転する。
|
||||||
|
- 排他なキー(レイアウトバリアント)との重なりは数えない。排他キーは同じ組を同じ向きで共有するのが正しい。
|
||||||
|
- 判定は両端子が揃った時点で行う。rowモードとcolモードに分けてなぞる場合は、後から付いた端子の時点。
|
||||||
|
- 配線し直すキー自身の旧配線は数えない。
|
||||||
|
- 両方の向きが既に埋まっている場合は反転せず、衝突として警告する。なぞる操作は止めない(T-16)。
|
||||||
|
- モードの切り替えでは既存の配線を書き換えない。モードはこれからなぞる操作の補助だけを決める。
|
||||||
|
- 切り替えた時点では「どちらが二個目か」を決める順序がない(なぞった順はELCに残らない)。
|
||||||
|
- 既存の重なりの振り分けは、切り替えとは別の一回限りのコマンドにする。
|
||||||
|
- 倍から通常へ戻しても配線は変えない。向きの不揃いは検証で拾う。
|
||||||
|
- 向きを変える操作を2つ持つ。どちらも、選択中のキーの向きが混ざっていても、相方を選んでいてもいなくてもよい。
|
||||||
|
- 相方と交換: 選んだキーの(順序のない)ピンの組を重複なく集め、その組を持つ全キーの向きを反転する。
|
||||||
|
組ごとに1回だけ反転するので、相方を同時に選んでいても二重に反転しない。排他キーも一緒に反転する。
|
||||||
|
相方のいないキーは単に反転する。
|
||||||
|
- このキーだけ反転: 選んだキーだけを反転する。同じ向きで衝突している組は、交換では解消できないため。
|
||||||
|
- 向きは三角形のオーバーレイで見せる。ダイオード記号ではないのでカソードの棒は付けず、`a→b` の向きだけを表す。
|
||||||
|
相方のいるキーといないキーの区別も見えるようにする(塗り/白抜きなど)。
|
||||||
|
|
||||||
### ピン提供者
|
### ピン提供者
|
||||||
|
|
||||||
- ボード(Pro Micro互換など、MCUを載せた開発基板)も提供者として扱いたい。多くの利用者はチップではなくボードを使う。
|
- ボード(Pro Micro互換など、MCUを載せた開発基板)も提供者として扱いたい。多くの利用者はチップではなくボードを使う。
|
||||||
@@ -27,9 +54,9 @@
|
|||||||
|
|
||||||
## 要検討
|
## 要検討
|
||||||
|
|
||||||
- 倍マトリクスの向きの指定方法(選択範囲だけダイオードの向きを逆にする、など)。
|
|
||||||
- 二乗マトリクス(同じピンがrowにもcolにも現れ、向きはダイオードだけで区別する)の操作。通常のマトリクスと同じ操作で足りるか。
|
- 二乗マトリクス(同じピンがrowにもcolにも現れ、向きはダイオードだけで区別する)の操作。通常のマトリクスと同じ操作で足りるか。
|
||||||
row/colで表せるかの議論は後で行う。Generatorのプレビューは今のところ「未対応」になる(T-19)。
|
row/colで表せるかの議論は後で行う。Generatorのプレビューは今のところ「未対応」になる(T-19)。
|
||||||
|
倍マトリクスの操作(自動反転・交換)が使えそうだが、いったん別に検討する。統合は両方の検討後に、矛盾がないかを確認して行う。
|
||||||
- directの操作。row/colの指定がなく、片方の端子は電源レールになる。
|
- directの操作。row/colの指定がなく、片方の端子は電源レールになる。
|
||||||
- mux・シフトレジスタを使う場合の操作。rowかcolの一方を親の提供者の論理ピンにする形になるか。
|
- mux・シフトレジスタを使う場合の操作。rowかcolの一方を親の提供者の論理ピンにする形になるか。
|
||||||
マトリクスとの階層化はモデル上は表せるが、デジタル側の提供者の記述は未定義。
|
マトリクスとの階層化はモデル上は表せるが、デジタル側の提供者の記述は未定義。
|
||||||
@@ -38,6 +65,12 @@
|
|||||||
- ピン名の候補の一覧が「今使えるピン」と誤解される問題。ダイアログに分けるなど。ボードを提供者にすれば、外に出ていないピンは候補から消える。
|
- ピン名の候補の一覧が「今使えるピン」と誤解される問題。ダイアログに分けるなど。ボードを提供者にすれば、外に出ていないピンは候補から消える。
|
||||||
- GPIOに直結したLED(インジケータなど)。仕様にないので `backlog/README.md` のELC-P-4とした。
|
- GPIOに直結したLED(インジケータなど)。仕様にないので `backlog/README.md` のELC-P-4とした。
|
||||||
|
|
||||||
|
## ELC Editorの範囲外
|
||||||
|
|
||||||
|
- Generatorのプレビューが倍マトリクスを「未対応」にできない。T-19の検査は両端子が `rowPins`/`colPins` に分かれているかだけを見て、
|
||||||
|
向きが揃っているかを見ない。倍マトリクスの配線は検査を通り、同じ(row, col)を持つキーが2つある設定を出力してしまう。
|
||||||
|
単純なマトリクスに限る(ELC-P-3)なら、向きが揃っていることも検査条件に要る。
|
||||||
|
|
||||||
## モックの実装上の問題
|
## モックの実装上の問題
|
||||||
|
|
||||||
作り直しで解消する前提で、原因の記録だけ残す。
|
作り直しで解消する前提で、原因の記録だけ残す。
|
||||||
|
|||||||
Reference in New Issue
Block a user