diff --git a/CLAUDE.md b/CLAUDE.md index 3ba8def..4b6742b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -54,10 +54,12 @@ ### 02_ENV(環境) -- 開発環境構築手順: docs/02_ENV/ENV_01_開発環境構築手順.md -- ディレクトリ構成: docs/02_ENV/ENV_02_ディレクトリ構成.md -- 依存ライブラリ一覧: docs/02_ENV/ENV_03_依存ライブラリ一覧.md -- ビルド構成とビルドフラグ: docs/02_ENV/ENV_04_ビルド構成とビルドフラグ.md +- 技術スタック: docs/02_ENV/ENV_01_技術スタック.md +- 環境構築手順: docs/02_ENV/ENV_02_環境構築手順.md +- 管理者用環境構築手順: docs/02_ENV/ENV_03_管理者用環境構築手順.md +- 開発コマンド: docs/02_ENV/ENV_04_開発コマンド.md +- ディレクトリ構成: docs/02_ENV/ENV_05_ディレクトリ構成.md +- ビルド構成とビルドフラグ: docs/02_ENV/ENV_06_ビルド構成とビルドフラグ.md ### 03_PLAN(計画) diff --git "a/docs/02_ENV/ENV_01_\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.md" "b/docs/02_ENV/ENV_01_\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.md" new file mode 100644 index 0000000..7a9aff8 --- /dev/null +++ "b/docs/02_ENV/ENV_01_\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.md" @@ -0,0 +1,50 @@ +# 技術スタック (Tech Stack) + +## 開発環境 (Development Environment) + +- IDE: Visual Studio 2022 +- ターゲットフレームワーク: .NET Framework 4.8 + +## NuGet パッケージ (NuGet Packages) + +`packages.config` で管理する.Visual Studio のパッケージ復元で自動取得される. + +**OpenCvSharp4 関連** + +- `OpenCvSharp4` (4.10.0): OpenCV の C# ラッパー本体 +- `OpenCvSharp4.Extensions` (4.10.0): Bitmap 変換等の拡張機能 +- `OpenCvSharp4.runtime.win` (4.10.0): Windows 向けネイティブランタイム +- `OpenCvSharp4.Windows` (4.10.0): Windows Forms 向け統合パッケージ +- `OpenCvSharp4.WpfExtensions` (4.10.0): WPF 向け拡張機能 + +**.NET 補完ライブラリ** + +- `System.Buffers` (4.5.1) +- `System.Drawing.Common` (8.0.0) +- `System.Memory` (4.5.5) +- `System.Numerics.Vectors` (4.5.0) +- `System.Runtime.CompilerServices.Unsafe` (6.0.0) +- `System.ValueTuple` (4.5.0) + +## テストプロジェクト TIASshot.Tests (Test Project) + +テストプロジェクトも `packages.config` で管理する(本体と同じレガシー形式・x64). + +- `NUnit` (3.14.0): テストフレームワーク +- `NUnit3TestAdapter` (4.5.0): テストランナー連携(Visual Studio / vstest) +- `Microsoft.NET.Test.Sdk` (17.8.0): テスト実行基盤 +- ※ `OpenCvSharp4` / `OpenCvSharp4.runtime.win` (4.10.0) も参照する.`Mat` 演算はネイティブ DLL に依存するため,テストプロジェクトも **x64** でビルドする. + +## 外部 SDK(別途インストールが必要) (External SDKs) + +**IC Imaging Control SDK (The Imaging Source)** + +- 用途: ImagingSource 製カメラの制御(DFK33UX178,DFK23UX249) +- 名前空間: `TIS.Imaging` +- インストール: The Imaging Source の公式サイトから取得する + +**Lumenera SDK** + +- 用途: Lumenera 製カメラの制御(Lw110) +- DLL: `lumenera.api.dll`(リポジトリ内に同梱) +- 別途インストール不要(同梱 DLL を参照) diff --git "a/docs/02_ENV/ENV_01_\351\226\213\347\231\272\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" "b/docs/02_ENV/ENV_01_\351\226\213\347\231\272\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" deleted file mode 100644 index 975f2fe..0000000 --- "a/docs/02_ENV/ENV_01_\351\226\213\347\231\272\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" +++ /dev/null @@ -1,114 +0,0 @@ -# 開発環境構築手順 (Development Environment Setup) - -## セットアップ方法の選択 (Setup Method) - -### 自動セットアップ(推奨) - -リポジトリルートの `setup.ps1` を使用することで,Visual Studio のインストール,データフォルダの作成,NuGet パッケージの復元を自動化できる. - -**実行手順** - -1. PowerShell を管理者権限で開く. -2. リポジトリのルートに移動する. - - ```powershell - cd [リポジトリのパス] - ``` - -3. スクリプトの実行ポリシーを一時的に変更する. - - ```powershell - Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass - ``` - -4. セットアップスクリプトを実行する. - - ```powershell - .\setup.ps1 - ``` - -5. スクリプト完了後,IC Imaging Control SDK を手動でインストールする. - - 詳細は「必要なソフトウェア — IC Imaging Control SDK」を参照する. - -**自動化される内容** - -- Visual Studio 2022 のインストール(未インストール時のみ) - - `.vsconfig` により「.NET デスクトップ開発」ワークロードが自動で設定される. -- `C:\TIAS_Data` フォルダの作成(未作成時のみ) -- NuGet パッケージの復元 - -**自動化されない内容(手動対応が必要)** - -- IC Imaging Control SDK のインストール -- 実行時設定ファイルの配置(config.xml,カメラ設定 XML,CSV) - -### 手動セットアップ - -スクリプトを使用しない場合は,以下の「必要なソフトウェア」〜「実行時の準備」の手順に従って手動で構築する. - -## 必要なソフトウェア (Required Software) - -### Visual Studio 2022 - -- 公式サイトからインストーラをダウンロードしてインストールする. -- ワークロード選択で「.NET デスクトップ開発」を有効にする. -- リポジトリルートの `.vsconfig` をインストーラで読み込むと,必要なワークロードが自動で提案される. - -### IC Imaging Control SDK - -- The Imaging Source が提供するカメラ制御ライブラリ. -- ImagingSource 製カメラ(DFK33UX178,DFK23UX249)の使用に必要. -- インストール後,参照 DLL が Visual Studio から認識されることを確認する. - -### Lumenera SDK - -- Lumenera 製カメラ(Lw110)の使用に必要. -- `lumenera.api.dll` はリポジトリ内に同梱されている. - -## リポジトリのセットアップ (Repository Setup) - -1. リポジトリのクローン - - ```bash - git clone [リポジトリURL] - cd TIASshot - ``` - -2. ソリューションを開く - - `TIASshot.sln` を Visual Studio 2022 で開く. - -3. NuGet パッケージの復元 - - Visual Studio のメニューから「ビルド」→「NuGet パッケージの復元」を実行する. - - または,パッケージマネージャーコンソールで以下を実行する. - - ```bash - nuget restore TIASshot.sln - ``` - -4. ビルド - - 「ビルド」→「ソリューションのビルド」を実行し,エラーがないことを確認する. - -## 実行時の準備 (Runtime Preparation) - -### 設定ファイルの配置 - -- `TIASshot/config.xml` が実行ファイルと同じディレクトリに存在することを確認する. -- パラメータの詳細は `SPEC_02_設定ファイル仕様.md` を参照する. - -### カメラ設定ファイルの確認 - -- ImagingSource カメラを使用する場合,以下のファイルが同ディレクトリに必要. - - `DFK33UX178.xml` - - `DFK23UX249.xml` - -### TCC参照ファイルの確認 - -- 以下の CSV ファイルが実行ファイルと同じディレクトリに必要. - - `tcc_srgb.csv`: sRGB 変換の参照値 - - `tcc_xyz.csv`: XYZ 変換の参照値 - -### データ保存フォルダの確認 - -- `config.xml` の `` に指定したフォルダへの書き込み権限があることを確認する. -- デフォルトは `C:\TIAS_Data`. -- `setup.ps1` を実行した場合,このフォルダは自動で作成される. diff --git "a/docs/02_ENV/ENV_02_\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\346\247\213\346\210\220.md" "b/docs/02_ENV/ENV_02_\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\346\247\213\346\210\220.md" deleted file mode 100644 index 180435d..0000000 --- "a/docs/02_ENV/ENV_02_\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\346\247\213\346\210\220.md" +++ /dev/null @@ -1,98 +0,0 @@ -# ディレクトリ構成 (Directory Structure) - -## 全体構成 (Overview) - -```text -TIASshot/ -├── CLAUDE.md ← AI向けガイドライン(ドキュメント・コーディング規則の参照) -├── README.md ← プロジェクト概要 -├── TIASshot.sln ← Visual Studio ソリューションファイル -├── TIASshot/ ← メインプロジェクト -├── TIASshot.Tests/ ← テストプロジェクト(NUnit / x64) -└── docs/ ← ドキュメント -``` - -## メインプロジェクト TIASshot/ (Main Project) - -### ソースコード - -責務ごとにサブフォルダへ分離している(リファクタリング Phase 1〜5 による). - -```text -├── Program.cs ← エントリポイント -├── Config.cs ← config.xml の読み込みユーティリティ -├── LightSource.cs ← 光源(シリアル通信)制御 -├── Cameras/ ← カメラ制御 -│ ├── CameraBase.cs ← カメラ制御の基底クラス(共通処理・撮影/校正の骨格) -│ ├── IScam.cs ← ImagingSource カメラの実装 -│ ├── Lucam.cs ← Lumenera カメラの実装 -│ └── GainCalc.cs ← ゲイン更新比率の計算(純粋ロジック) -├── ChartDetection/ ← チャート検出 -│ └── ChartDetector.cs ← ArUco マーカー検出・マスク生成 -├── ColorCorrection/ ← 色補正 -│ └── ColorCorrector.cs ← TCC 変換行列の計算・色変換 -├── UI/ ← フォーム(WinForms) -│ ├── Form1.cs ← メインフォーム(UI・操作イベント) -│ ├── Form1.Designer.cs ← メインフォームのデザイナー自動生成コード -│ ├── PreviewMonitor.cs ← プレビューモニタフォーム -│ └── PreviewMonitor.Designer.cs ← プレビューモニタのデザイナー自動生成コード -└── Utils/ ← ユーティリティ - ├── IoUtil.cs ← ファイル I/O(CSV・保存フォルダ・撮影情報)・サウンド - └── ImageStats.cs ← 飽和統計算出・JSON 生成(白板撮影用・純粋ロジック) -``` - -### 設定・データファイル - -```text -├── config.xml ← アプリケーション設定(パラメータ定義) -├── DFK33UX178.xml ← ImagingSource DFK33UX178 カメラ設定 -├── DFK23UX249.xml ← ImagingSource DFK23UX249 カメラ設定 -├── tcc_srgb.csv ← TCC sRGB 変換参照値(24色票×3ch) -└── tcc_xyz.csv ← TCC XYZ 変換参照値(24色票×3ch) -``` - -### 外部ライブラリ・リソース - -```text -├── lumenera.api.dll ← Lumenera SDK(同梱) -├── lumenera.api.xml ← Lumenera SDK ドキュメント -├── CalibDone.wav ← キャリブレーション完了音 -├── OneShot.wav ← 1枚撮影完了音 -├── MultiShot.wav ← 連続撮影完了音 -└── main.ico ← アプリケーションアイコン -``` - -### プロジェクト設定 - -```text -├── TIASshot.csproj ← プロジェクトファイル -├── App.config ← .NET アプリケーション設定 -├── packages.config ← NuGet パッケージ一覧 -└── Properties/ - ├── AssemblyInfo.cs ← アセンブリ情報 - ├── Resources.Designer.cs ← リソース自動生成コード - └── Settings.Designer.cs ← アプリ設定自動生成コード -``` - -## テストプロジェクト TIASshot.Tests/ (Test Project) - -```text -TIASshot.Tests/ -├── TIASshot.Tests.csproj ← テストプロジェクトファイル(net48 / x64) -├── packages.config ← NuGet パッケージ一覧(NUnit 等) -├── IoUtilTests.cs ← CSV 読み書き往復のテスト -├── ConfigTests.cs ← config.xml パースのテスト -└── ColorCorrectorTests.cs ← 次元拡張・変換行列・色変換のテスト -``` - -## ドキュメント docs/ (Documents) - -```text -docs/ -├── 01_GUIDE/ ← チームルール・規約(命名,Git,コーディング,コメント) -├── 02_ENV/ ← 開発環境・構成に関するドキュメント(本ディレクトリ) -├── 03_PLAN/ ← 進行計画・要件定義(リファクタリング計画,バグ修正計画) -├── 04_SPEC/ ← ユーザーから見える仕様(機能仕様,設定ファイル仕様) -├── 05_TECH/ ← クラス設計・アルゴリズム等の技術設計(カメラ制御,色補正処理) -└── 06_TEST/ ← テスト計画・品質保証(テスト仕様) -``` diff --git "a/docs/02_ENV/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" "b/docs/02_ENV/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" new file mode 100644 index 0000000..0976cbc --- /dev/null +++ "b/docs/02_ENV/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" @@ -0,0 +1,114 @@ +# 環境構築手順 (Environment Setup) + +## セットアップ方法の選択 (Setup Method) + +### 自動セットアップ(推奨) + +リポジトリルートの `setup.ps1` を使用することで,Visual Studio のインストール,データフォルダの作成,NuGet パッケージの復元を自動化できる. + +**実行手順** + +1. PowerShell を管理者権限で開く. +2. リポジトリのルートに移動する. + + ```powershell + cd [リポジトリのパス] + ``` + +3. スクリプトの実行ポリシーを一時的に変更する. + + ```powershell + Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass + ``` + +4. セットアップスクリプトを実行する. + + ```powershell + .\setup.ps1 + ``` + +5. スクリプト完了後,IC Imaging Control SDK を手動でインストールする. + - 詳細は「必要なソフトウェア — IC Imaging Control SDK」を参照する. + +**自動化される内容** + +- Visual Studio 2022 のインストール(未インストール時のみ) + - `.vsconfig` により「.NET デスクトップ開発」ワークロードが自動で設定される. +- `C:\TIAS_Data` フォルダの作成(未作成時のみ) +- NuGet パッケージの復元 + +**自動化されない内容(手動対応が必要)** + +- IC Imaging Control SDK のインストール +- 実行時設定ファイルの配置(config.xml,カメラ設定 XML,CSV) + +### 手動セットアップ + +スクリプトを使用しない場合は,以下の「必要なソフトウェア」〜「実行時の準備」の手順に従って手動で構築する. + +## 必要なソフトウェア (Required Software) + +### Visual Studio 2022 + +- 公式サイトからインストーラをダウンロードしてインストールする. +- ワークロード選択で「.NET デスクトップ開発」を有効にする. +- リポジトリルートの `.vsconfig` をインストーラで読み込むと,必要なワークロードが自動で提案される. + +### IC Imaging Control SDK + +- The Imaging Source が提供するカメラ制御ライブラリ. +- ImagingSource 製カメラ(DFK33UX178,DFK23UX249)の使用に必要. +- インストール後,参照 DLL が Visual Studio から認識されることを確認する. + +### Lumenera SDK + +- Lumenera 製カメラ(Lw110)の使用に必要. +- `lumenera.api.dll` はリポジトリ内に同梱されている. + +## リポジトリのセットアップ (Repository Setup) + +1. リポジトリのクローン + + ```bash + git clone [リポジトリURL] + cd TIASshot + ``` + +2. ソリューションを開く + - `TIASshot.sln` を Visual Studio 2022 で開く. + +3. NuGet パッケージの復元 + - Visual Studio のメニューから「ビルド」→「NuGet パッケージの復元」を実行する. + - または,パッケージマネージャーコンソールで以下を実行する. + + ```bash + nuget restore TIASshot.sln + ``` + +4. ビルド + - 「ビルド」→「ソリューションのビルド」を実行し,エラーがないことを確認する. + +## 実行時の準備 (Runtime Preparation) + +### 設定ファイルの配置 + +- `TIASshot/config.xml` が実行ファイルと同じディレクトリに存在することを確認する. +- パラメータの詳細は `SPEC_02_設定ファイル仕様.md` を参照する. + +### カメラ設定ファイルの確認 + +- ImagingSource カメラを使用する場合,以下のファイルが同ディレクトリに必要. + - `DFK33UX178.xml` + - `DFK23UX249.xml` + +### TCC参照ファイルの確認 + +- 以下の CSV ファイルが実行ファイルと同じディレクトリに必要. + - `tcc_srgb.csv`: sRGB 変換の参照値 + - `tcc_xyz.csv`: XYZ 変換の参照値 + +### データ保存フォルダの確認 + +- `config.xml` の `` に指定したフォルダへの書き込み権限があることを確認する. +- デフォルトは `C:\TIAS_Data`. +- `setup.ps1` を実行した場合,このフォルダは自動で作成される. diff --git "a/docs/02_ENV/ENV_03_\344\276\235\345\255\230\343\203\251\343\202\244\343\203\226\343\203\251\343\203\252\344\270\200\350\246\247.md" "b/docs/02_ENV/ENV_03_\344\276\235\345\255\230\343\203\251\343\202\244\343\203\226\343\203\251\343\203\252\344\270\200\350\246\247.md" deleted file mode 100644 index 5768bc2..0000000 --- "a/docs/02_ENV/ENV_03_\344\276\235\345\255\230\343\203\251\343\202\244\343\203\226\343\203\251\343\203\252\344\270\200\350\246\247.md" +++ /dev/null @@ -1,50 +0,0 @@ -# 依存ライブラリ一覧 (Dependency List) - -## 開発環境 (Development Environment) - -- IDE: Visual Studio 2022 -- ターゲットフレームワーク: .NET Framework 4.8 - -## NuGet パッケージ (NuGet Packages) - -`packages.config` で管理する.Visual Studio のパッケージ復元で自動取得される. - -**OpenCvSharp4 関連** - -- `OpenCvSharp4` (4.10.0): OpenCV の C# ラッパー本体 -- `OpenCvSharp4.Extensions` (4.10.0): Bitmap 変換等の拡張機能 -- `OpenCvSharp4.runtime.win` (4.10.0): Windows 向けネイティブランタイム -- `OpenCvSharp4.Windows` (4.10.0): Windows Forms 向け統合パッケージ -- `OpenCvSharp4.WpfExtensions` (4.10.0): WPF 向け拡張機能 - -**.NET 補完ライブラリ** - -- `System.Buffers` (4.5.1) -- `System.Drawing.Common` (8.0.0) -- `System.Memory` (4.5.5) -- `System.Numerics.Vectors` (4.5.0) -- `System.Runtime.CompilerServices.Unsafe` (6.0.0) -- `System.ValueTuple` (4.5.0) - -## テストプロジェクト TIASshot.Tests (Test Project) - -テストプロジェクトも `packages.config` で管理する(本体と同じレガシー形式・x64). - -- `NUnit` (3.14.0): テストフレームワーク -- `NUnit3TestAdapter` (4.5.0): テストランナー連携(Visual Studio / vstest) -- `Microsoft.NET.Test.Sdk` (17.8.0): テスト実行基盤 -- ※ `OpenCvSharp4` / `OpenCvSharp4.runtime.win` (4.10.0) も参照する.`Mat` 演算はネイティブ DLL に依存するため,テストプロジェクトも **x64** でビルドする. - -## 外部 SDK(別途インストールが必要) (External SDKs) - -**IC Imaging Control SDK (The Imaging Source)** - -- 用途: ImagingSource 製カメラの制御(DFK33UX178,DFK23UX249) -- 名前空間: `TIS.Imaging` -- インストール: The Imaging Source の公式サイトから取得する - -**Lumenera SDK** - -- 用途: Lumenera 製カメラの制御(Lw110) -- DLL: `lumenera.api.dll`(リポジトリ内に同梱) -- 別途インストール不要(同梱 DLL を参照) diff --git "a/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" "b/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" new file mode 100644 index 0000000..85f1594 --- /dev/null +++ "b/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" @@ -0,0 +1,39 @@ +# 管理者用環境構築手順 (Administrator Setup) + +プロジェクト作成時に**一度だけ**行う初期設定をまとめる.各開発者が繰り返し行う構築手順は [ENV_02_環境構築手順](ENV_02_環境構築手順.md) を参照する. + +本プロジェクトは個人開発(solo)のデスクトップアプリのため,管理者作業は最小限である.チーム開発へ移行する場合の管理者初期設定は `.claude/rules/`/GUIDE_01 の team 運用に従って別途整備する. + +## リポジトリ (Repository) + +- ホスティング: GitHub の **Private** リポジトリ.具体的なオーナー・リポジトリ名・URL は管理者が別途把握する(本ドキュメントには記載しない). +- 既定ブランチ: `main`.`main` への直接 push は行わず,作業ブランチ → PR 経由でマージする(`.claude/rules/git-conventions.md`). +- 新しい開発マシンでは `git clone` 後に [ENV_02_環境構築手順](ENV_02_環境構築手順.md) に従う. + +## 外部 SDK・ライセンス (External SDKs & Licenses) + +カメラ制御 SDK はリポジトリに含めず,各開発マシンへ個別に導入する.入手元とライセンスの管理は管理者が把握しておく. + +| SDK | 用途 | 入手・配置 | +| --- | --- | --- | +| IC Imaging Control SDK | ImagingSource 製カメラ(DFK33UX178 / DFK23UX249) | [The Imaging Source](https://www.theimagingsource.com/en-us/support/download/) から各自インストール(`setup.ps1` が未導入時にダウンロードページを開く) | +| Lumenera SDK | Lumenera 製カメラ(Lw110) | `lumenera.api.dll` をリポジトリに同梱済み.追加インストールは不要 | + +## 実行時参照ファイルの配布 (Runtime Reference Files) + +アプリは実行ファイルと同じディレクトリに以下を必要とする.これらは環境・機材に依存するため**リポジトリでは管理せず**,管理者が正となるファイルを保持し,新しい開発者・現場へ配布する. + +- `config.xml` — 実行時設定(仕様は [SPEC_02_設定ファイル仕様](../04_SPEC/SPEC_02_設定ファイル仕様.md)) +- `DFK33UX178.xml` / `DFK23UX249.xml` — ImagingSource カメラ設定 +- `tcc_srgb.csv` / `tcc_xyz.csv` — TCC 色変換の参照値 + +## データ保存フォルダ (Data Folder) + +- 既定の保存先は `C:\TIAS_Data`(`config.xml` の `` で変更可能). +- `setup.ps1` 実行時に未作成なら自動生成される. +- 現場マシンでは,このフォルダへの書き込み権限を管理者が確認する. + +## CI・自動化 (CI & Automation) + +- 現時点で CI(GitHub Actions 等)は構築していない(`.github/` なし).ビルド・テストはローカルで行う([ENV_04_開発コマンド](ENV_04_開発コマンド.md)). +- 将来 CI を導入する場合は,x64・packages.config・ネイティブ DLL(OpenCvSharp)依存を満たすランナー構成が必要になる点に注意する. diff --git "a/docs/02_ENV/ENV_04_\343\203\223\343\203\253\343\203\211\346\247\213\346\210\220\343\201\250\343\203\223\343\203\253\343\203\211\343\203\225\343\203\251\343\202\260.md" "b/docs/02_ENV/ENV_04_\343\203\223\343\203\253\343\203\211\346\247\213\346\210\220\343\201\250\343\203\223\343\203\253\343\203\211\343\203\225\343\203\251\343\202\260.md" deleted file mode 100644 index 5146c0d..0000000 --- "a/docs/02_ENV/ENV_04_\343\203\223\343\203\253\343\203\211\346\247\213\346\210\220\343\201\250\343\203\223\343\203\253\343\203\211\343\203\225\343\203\251\343\202\260.md" +++ /dev/null @@ -1,75 +0,0 @@ -# ビルド構成とビルドフラグ (Build Configurations and Flags) - -本プロジェクトは,診断・評価用の機能(メモリ観測・白板撮影・リーク再現)を**条件コンパイルシンボル(ビルドフラグ)**で出し分けている.配布版(Release)にはこれらをコードごと含めない方針である.本ドキュメントは,どのフラグが何を有効化し,どの構成で定義されるかをまとめる. - -## 設計方針 (Policy) - -- **Release(配布版)=素の製品**.診断・評価・デモ用の機能はコードごと除外する. -- **Debug=開発・検証版**.診断/評価機能(`MEMMONITOR`・`WHITEBOARD`)を自動で含める. -- 一部のデモ用フラグ(`LEAKY_REPRO`)は既定では未定義とし,必要なときだけ**手動で**付与して対比計測に使う. - -## ソリューション構成 (Solution Configurations) - -`TIASshot.sln` が定義する構成は次の 2 つ(プラットフォームは **x64** のみ).OpenCvSharp 等がネイティブ DLL に依存するため x64 でビルドする. - -| 構成 | 用途 | 定義されるシンボル | 出力先 | -| --- | --- | --- | --- | -| `Debug\|x64` | 開発・検証 | `DEBUG` `TRACE` `WHITEBOARD` `MEMMONITOR` | `TIASshot/bin/x64/Debug/` | -| `Release\|x64` | 配布 | `TRACE` | `TIASshot/bin/x64/Release/` | - -> ※ `TIASshot.csproj` には `Debug\|AnyCPU` / `Release\|AnyCPU` の PropertyGroup も残っているが,`.sln` は `x64` のみをビルド対象としており,通常はこれらを使わない. -> ※ `TIASshot/bin/Debug-NoWB/` というフォルダが残っている場合があるが,これは `WHITEBOARD` フラグ導入前の古い手動ビルドの残骸であり,現在のソリューションには対応する構成は存在しない. - -## ビルドフラグ一覧 (Build Flags) - -| シンボル | 目的 | 定義される構成 | Release(配布)含有 | 出し分け対象(主なもの) | -| --- | --- | --- | --- | --- | -| `MEMMONITOR` | メモリ観測ウィンドウ+プレビュー計測 | `Debug\|x64`(自動) | ✗ | `UI/MemoryMonitorForm`,`UI/PreviewProfiler`,`UI/TimedPictureBox`,`UI/Form1.MemMonitor`(F9 トグル),`Form1.ShowImage` 等のプレビュー計測 | -| `WHITEBOARD` | 白板撮影モード(照明均一性評価用) | `Debug\|x64`(自動) | ✗ | 白板撮影ボタン(`Form1` の専用 partial),`Cameras/IScam.ShotWhiteBoard` 等 | -| `LEAKY_REPRO` | メモリ修正(優先度2)前の挙動を再現するデモ用 | **どの構成でも未定義(手動オプトイン)** | ✗ | `ColorCorrection/ColorCorrector.ConvertImage` のリーク版分岐,`UI/MemoryMonitorForm` のモード表示 | -| `DEBUG` | .NET 標準デバッグシンボル | `Debug\|x64` | ✗ | 標準(一部の開発時分岐) | -| `TRACE` | .NET 標準トレースシンボル | 全構成 | ○ | `System.Diagnostics.Trace` | - -### MEMMONITOR — メモリ観測・プレビュー計測 - -- 起動時にメモリ観測ウィンドウ(`MemoryMonitorForm`)を自動で開き,PrivateMemory / WorkingSet をライブ折れ線グラフ+CSV で記録する. -- プレビュー経路の計測(各段の実効 FPS・コピー時間・描画時間・GDI/USER/ハンドル数・画像サイズ・校正/撮影/F9 のイベント)を CSV(`bin/x64/Debug/MemMonitor_Results/`)に出力する. -- 副モニタ表示を実行中に切り替える計測用ホットキー **F9** も本フラグ限定で有効. -- 配布版には不要なため Release では未定義. - -### WHITEBOARD — 白板撮影モード - -- SmTIAS との装置間比較(照明均一性評価)用に,校正・色補正を行わず素の RGB を保存する独立撮影パスを追加する. -- ImagingSource(IScam)でのみ実装.未対応カメラでは通知して何もしない. -- 配布版の舌診撮影フローには不要なため Release では未定義. - -### LEAKY_REPRO — リーク再現(対比計測デモ用) - -- メモリ修正(PLAN_02 優先度2=`ConvertImage` の中間 Mat 未解放)の**修正前の挙動**を忠実に再現するためのデモ用フラグ. -- 既定(未定義)では入れ子 `using` による**修正後**実装が使われる.`LEAKY_REPRO` を定義してビルドすると,`ConvertImage` が中間 Mat を Dispose しないリーク版に切り替わり,観測ウィンドウのモード表示も「リーク再現(修正前)」になる. -- 「修正前→修正後」をメモリ観測で対比録画するときにのみ使う.どの標準構成にも含めないため,使うときは手動で付与する(下記). - -## ビルド方法 (How to Build) - -### 配布版(Release) - -Visual Studio で構成 `Release`・プラットフォーム `x64` を選択してビルドする.`MEMMONITOR` / `WHITEBOARD` / `LEAKY_REPRO` はいずれも含まれない. - -### 開発・検証版(Debug) - -構成 `Debug`・プラットフォーム `x64` を選択してビルドする.`WHITEBOARD` と `MEMMONITOR` が自動で有効になる(メモリ観測ウィンドウが開き,白板撮影ボタンが表示される). - -### LEAKY_REPRO を有効にする(対比計測デモ時のみ) - -`LEAKY_REPRO` はソリューション構成に含まれないため,一時的に手動で付与する.いずれかの方法で行い,**計測後は元に戻す**こと. - -- Visual Studio: プロジェクトのプロパティ →[ビルド]→ 条件付きコンパイル シンボル に `LEAKY_REPRO` を追加してビルド. -- または `TIASshot.csproj` の `Debug|x64` の `` に一時的に `;LEAKY_REPRO` を追記してビルド. - -## 関連 (Related) - -- 各フラグ導入の経緯・設計判断は [docs/PROGRESS.md](../PROGRESS.md) の該当エントリを参照: - - `WHITEBOARD`(白板撮影の専用ビルド記号化) - - `MEMMONITOR` / `LEAKY_REPRO`(メモリ修正の効果検証ツール) -- メモリ計測の結果は [docs/06_TEST/TEST_01_メモリ修正効果計測.md](../06_TEST/TEST_01_メモリ修正効果計測.md). -- ファイル命名・カテゴリ規約は [docs/01_GUIDE/GUIDE_03_ファイル命名規則.md](../01_GUIDE/GUIDE_03_ファイル命名規則.md). diff --git "a/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" "b/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" new file mode 100644 index 0000000..97c72ad --- /dev/null +++ "b/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" @@ -0,0 +1,69 @@ +# 開発コマンド (Development Commands) + +日常の開発で使うビルド・テスト・実行コマンドをまとめる.人間とエージェント(tester・coder,`/auto-refactor`・`/auto-audit`)が**コマンドを推測せずに済むための唯一の参照先**とする.コマンドが増減・変更されたら本ファイルを更新する. + +## 前提 (Prerequisites) + +- ビルドは **x64 のみ**(`TIASshot.sln` は `Debug|x64` / `Release|x64` のみ定義).OpenCvSharp 等がネイティブ DLL に依存するため `AnyCPU` は使わない. +- レガシー形式(packages.config)のため **`dotnet build` / `dotnet test` は使えない**.MSBuild と `vstest.console.exe` を使う. +- コマンドは PowerShell で実行する.VS のエディション差(Community / Professional / Enterprise)を吸収するため,`vswhere` で MSBuild・vstest の場所を解決する. + +## ツールパスの解決 (Locating Build Tools) + +```powershell +$vs = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath +$msbuild = Join-Path $vs "MSBuild\Current\Bin\MSBuild.exe" +$vstest = Join-Path $vs "Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" +``` + +以降のコマンドは `$msbuild` / `$vstest` を解決済みとして記載する. + +## NuGet 復元 (Restore) + +```powershell +nuget restore TIASshot.sln +``` + +`nuget.exe` が PATH に無い場合はリポジトリルートの `nuget.exe` を使う(`setup.ps1` が未取得時に自動ダウンロードする). + +## ビルド (Build) + +```powershell +# 開発・検証(WHITEBOARD / MEMMONITOR 有効) +& $msbuild TIASshot.sln /t:Build /p:Configuration=Debug /p:Platform=x64 + +# 配布版(診断機能なし) +& $msbuild TIASshot.sln /t:Build /p:Configuration=Release /p:Platform=x64 + +# クリーンビルド +& $msbuild TIASshot.sln /t:Rebuild /p:Configuration=Debug /p:Platform=x64 +``` + +構成ごとのビルドフラグの意味は [ENV_06_ビルド構成とビルドフラグ](ENV_06_ビルド構成とビルドフラグ.md) を参照する. + +## テスト (Test) + +自動テストの方針・対象範囲は `.claude/rules/testing.md` を参照する(本ファイルはコマンドのみ). + +```powershell +# テストプロジェクトをビルドしてから x64 で実行する +& $msbuild TIASshot.sln /t:Build /p:Configuration=Debug /p:Platform=x64 +& $vstest "TIASshot.Tests\bin\x64\Debug\TIASshot.Tests.dll" /Platform:x64 +``` + +- ネイティブ DLL を x64 でロードするため `/Platform:x64` は必須. +- Visual Studio 上ではテストエクスプローラーから実行できる(プラットフォームを x64 にすること). + +## 実行 (Run) + +ビルド後,構成に対応した実行ファイルを起動する.実行時参照ファイル(`config.xml`・カメラ設定 XML・TCC の CSV)が同ディレクトリに配置済みであること([ENV_02_環境構築手順](ENV_02_環境構築手順.md)). + +```powershell +# 開発・検証版 +& "TIASshot\bin\x64\Debug\TIASshot.exe" + +# 配布版 +& "TIASshot\bin\x64\Release\TIASshot.exe" +``` + +実機カメラ・光源に接続して動作する UI アプリのため,完全な動作確認には機材が必要. diff --git "a/docs/02_ENV/ENV_05_\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\346\247\213\346\210\220.md" "b/docs/02_ENV/ENV_05_\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\346\247\213\346\210\220.md" new file mode 100644 index 0000000..180435d --- /dev/null +++ "b/docs/02_ENV/ENV_05_\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\346\247\213\346\210\220.md" @@ -0,0 +1,98 @@ +# ディレクトリ構成 (Directory Structure) + +## 全体構成 (Overview) + +```text +TIASshot/ +├── CLAUDE.md ← AI向けガイドライン(ドキュメント・コーディング規則の参照) +├── README.md ← プロジェクト概要 +├── TIASshot.sln ← Visual Studio ソリューションファイル +├── TIASshot/ ← メインプロジェクト +├── TIASshot.Tests/ ← テストプロジェクト(NUnit / x64) +└── docs/ ← ドキュメント +``` + +## メインプロジェクト TIASshot/ (Main Project) + +### ソースコード + +責務ごとにサブフォルダへ分離している(リファクタリング Phase 1〜5 による). + +```text +├── Program.cs ← エントリポイント +├── Config.cs ← config.xml の読み込みユーティリティ +├── LightSource.cs ← 光源(シリアル通信)制御 +├── Cameras/ ← カメラ制御 +│ ├── CameraBase.cs ← カメラ制御の基底クラス(共通処理・撮影/校正の骨格) +│ ├── IScam.cs ← ImagingSource カメラの実装 +│ ├── Lucam.cs ← Lumenera カメラの実装 +│ └── GainCalc.cs ← ゲイン更新比率の計算(純粋ロジック) +├── ChartDetection/ ← チャート検出 +│ └── ChartDetector.cs ← ArUco マーカー検出・マスク生成 +├── ColorCorrection/ ← 色補正 +│ └── ColorCorrector.cs ← TCC 変換行列の計算・色変換 +├── UI/ ← フォーム(WinForms) +│ ├── Form1.cs ← メインフォーム(UI・操作イベント) +│ ├── Form1.Designer.cs ← メインフォームのデザイナー自動生成コード +│ ├── PreviewMonitor.cs ← プレビューモニタフォーム +│ └── PreviewMonitor.Designer.cs ← プレビューモニタのデザイナー自動生成コード +└── Utils/ ← ユーティリティ + ├── IoUtil.cs ← ファイル I/O(CSV・保存フォルダ・撮影情報)・サウンド + └── ImageStats.cs ← 飽和統計算出・JSON 生成(白板撮影用・純粋ロジック) +``` + +### 設定・データファイル + +```text +├── config.xml ← アプリケーション設定(パラメータ定義) +├── DFK33UX178.xml ← ImagingSource DFK33UX178 カメラ設定 +├── DFK23UX249.xml ← ImagingSource DFK23UX249 カメラ設定 +├── tcc_srgb.csv ← TCC sRGB 変換参照値(24色票×3ch) +└── tcc_xyz.csv ← TCC XYZ 変換参照値(24色票×3ch) +``` + +### 外部ライブラリ・リソース + +```text +├── lumenera.api.dll ← Lumenera SDK(同梱) +├── lumenera.api.xml ← Lumenera SDK ドキュメント +├── CalibDone.wav ← キャリブレーション完了音 +├── OneShot.wav ← 1枚撮影完了音 +├── MultiShot.wav ← 連続撮影完了音 +└── main.ico ← アプリケーションアイコン +``` + +### プロジェクト設定 + +```text +├── TIASshot.csproj ← プロジェクトファイル +├── App.config ← .NET アプリケーション設定 +├── packages.config ← NuGet パッケージ一覧 +└── Properties/ + ├── AssemblyInfo.cs ← アセンブリ情報 + ├── Resources.Designer.cs ← リソース自動生成コード + └── Settings.Designer.cs ← アプリ設定自動生成コード +``` + +## テストプロジェクト TIASshot.Tests/ (Test Project) + +```text +TIASshot.Tests/ +├── TIASshot.Tests.csproj ← テストプロジェクトファイル(net48 / x64) +├── packages.config ← NuGet パッケージ一覧(NUnit 等) +├── IoUtilTests.cs ← CSV 読み書き往復のテスト +├── ConfigTests.cs ← config.xml パースのテスト +└── ColorCorrectorTests.cs ← 次元拡張・変換行列・色変換のテスト +``` + +## ドキュメント docs/ (Documents) + +```text +docs/ +├── 01_GUIDE/ ← チームルール・規約(命名,Git,コーディング,コメント) +├── 02_ENV/ ← 開発環境・構成に関するドキュメント(本ディレクトリ) +├── 03_PLAN/ ← 進行計画・要件定義(リファクタリング計画,バグ修正計画) +├── 04_SPEC/ ← ユーザーから見える仕様(機能仕様,設定ファイル仕様) +├── 05_TECH/ ← クラス設計・アルゴリズム等の技術設計(カメラ制御,色補正処理) +└── 06_TEST/ ← テスト計画・品質保証(テスト仕様) +``` diff --git "a/docs/02_ENV/ENV_06_\343\203\223\343\203\253\343\203\211\346\247\213\346\210\220\343\201\250\343\203\223\343\203\253\343\203\211\343\203\225\343\203\251\343\202\260.md" "b/docs/02_ENV/ENV_06_\343\203\223\343\203\253\343\203\211\346\247\213\346\210\220\343\201\250\343\203\223\343\203\253\343\203\211\343\203\225\343\203\251\343\202\260.md" new file mode 100644 index 0000000..5146c0d --- /dev/null +++ "b/docs/02_ENV/ENV_06_\343\203\223\343\203\253\343\203\211\346\247\213\346\210\220\343\201\250\343\203\223\343\203\253\343\203\211\343\203\225\343\203\251\343\202\260.md" @@ -0,0 +1,75 @@ +# ビルド構成とビルドフラグ (Build Configurations and Flags) + +本プロジェクトは,診断・評価用の機能(メモリ観測・白板撮影・リーク再現)を**条件コンパイルシンボル(ビルドフラグ)**で出し分けている.配布版(Release)にはこれらをコードごと含めない方針である.本ドキュメントは,どのフラグが何を有効化し,どの構成で定義されるかをまとめる. + +## 設計方針 (Policy) + +- **Release(配布版)=素の製品**.診断・評価・デモ用の機能はコードごと除外する. +- **Debug=開発・検証版**.診断/評価機能(`MEMMONITOR`・`WHITEBOARD`)を自動で含める. +- 一部のデモ用フラグ(`LEAKY_REPRO`)は既定では未定義とし,必要なときだけ**手動で**付与して対比計測に使う. + +## ソリューション構成 (Solution Configurations) + +`TIASshot.sln` が定義する構成は次の 2 つ(プラットフォームは **x64** のみ).OpenCvSharp 等がネイティブ DLL に依存するため x64 でビルドする. + +| 構成 | 用途 | 定義されるシンボル | 出力先 | +| --- | --- | --- | --- | +| `Debug\|x64` | 開発・検証 | `DEBUG` `TRACE` `WHITEBOARD` `MEMMONITOR` | `TIASshot/bin/x64/Debug/` | +| `Release\|x64` | 配布 | `TRACE` | `TIASshot/bin/x64/Release/` | + +> ※ `TIASshot.csproj` には `Debug\|AnyCPU` / `Release\|AnyCPU` の PropertyGroup も残っているが,`.sln` は `x64` のみをビルド対象としており,通常はこれらを使わない. +> ※ `TIASshot/bin/Debug-NoWB/` というフォルダが残っている場合があるが,これは `WHITEBOARD` フラグ導入前の古い手動ビルドの残骸であり,現在のソリューションには対応する構成は存在しない. + +## ビルドフラグ一覧 (Build Flags) + +| シンボル | 目的 | 定義される構成 | Release(配布)含有 | 出し分け対象(主なもの) | +| --- | --- | --- | --- | --- | +| `MEMMONITOR` | メモリ観測ウィンドウ+プレビュー計測 | `Debug\|x64`(自動) | ✗ | `UI/MemoryMonitorForm`,`UI/PreviewProfiler`,`UI/TimedPictureBox`,`UI/Form1.MemMonitor`(F9 トグル),`Form1.ShowImage` 等のプレビュー計測 | +| `WHITEBOARD` | 白板撮影モード(照明均一性評価用) | `Debug\|x64`(自動) | ✗ | 白板撮影ボタン(`Form1` の専用 partial),`Cameras/IScam.ShotWhiteBoard` 等 | +| `LEAKY_REPRO` | メモリ修正(優先度2)前の挙動を再現するデモ用 | **どの構成でも未定義(手動オプトイン)** | ✗ | `ColorCorrection/ColorCorrector.ConvertImage` のリーク版分岐,`UI/MemoryMonitorForm` のモード表示 | +| `DEBUG` | .NET 標準デバッグシンボル | `Debug\|x64` | ✗ | 標準(一部の開発時分岐) | +| `TRACE` | .NET 標準トレースシンボル | 全構成 | ○ | `System.Diagnostics.Trace` | + +### MEMMONITOR — メモリ観測・プレビュー計測 + +- 起動時にメモリ観測ウィンドウ(`MemoryMonitorForm`)を自動で開き,PrivateMemory / WorkingSet をライブ折れ線グラフ+CSV で記録する. +- プレビュー経路の計測(各段の実効 FPS・コピー時間・描画時間・GDI/USER/ハンドル数・画像サイズ・校正/撮影/F9 のイベント)を CSV(`bin/x64/Debug/MemMonitor_Results/`)に出力する. +- 副モニタ表示を実行中に切り替える計測用ホットキー **F9** も本フラグ限定で有効. +- 配布版には不要なため Release では未定義. + +### WHITEBOARD — 白板撮影モード + +- SmTIAS との装置間比較(照明均一性評価)用に,校正・色補正を行わず素の RGB を保存する独立撮影パスを追加する. +- ImagingSource(IScam)でのみ実装.未対応カメラでは通知して何もしない. +- 配布版の舌診撮影フローには不要なため Release では未定義. + +### LEAKY_REPRO — リーク再現(対比計測デモ用) + +- メモリ修正(PLAN_02 優先度2=`ConvertImage` の中間 Mat 未解放)の**修正前の挙動**を忠実に再現するためのデモ用フラグ. +- 既定(未定義)では入れ子 `using` による**修正後**実装が使われる.`LEAKY_REPRO` を定義してビルドすると,`ConvertImage` が中間 Mat を Dispose しないリーク版に切り替わり,観測ウィンドウのモード表示も「リーク再現(修正前)」になる. +- 「修正前→修正後」をメモリ観測で対比録画するときにのみ使う.どの標準構成にも含めないため,使うときは手動で付与する(下記). + +## ビルド方法 (How to Build) + +### 配布版(Release) + +Visual Studio で構成 `Release`・プラットフォーム `x64` を選択してビルドする.`MEMMONITOR` / `WHITEBOARD` / `LEAKY_REPRO` はいずれも含まれない. + +### 開発・検証版(Debug) + +構成 `Debug`・プラットフォーム `x64` を選択してビルドする.`WHITEBOARD` と `MEMMONITOR` が自動で有効になる(メモリ観測ウィンドウが開き,白板撮影ボタンが表示される). + +### LEAKY_REPRO を有効にする(対比計測デモ時のみ) + +`LEAKY_REPRO` はソリューション構成に含まれないため,一時的に手動で付与する.いずれかの方法で行い,**計測後は元に戻す**こと. + +- Visual Studio: プロジェクトのプロパティ →[ビルド]→ 条件付きコンパイル シンボル に `LEAKY_REPRO` を追加してビルド. +- または `TIASshot.csproj` の `Debug|x64` の `` に一時的に `;LEAKY_REPRO` を追記してビルド. + +## 関連 (Related) + +- 各フラグ導入の経緯・設計判断は [docs/PROGRESS.md](../PROGRESS.md) の該当エントリを参照: + - `WHITEBOARD`(白板撮影の専用ビルド記号化) + - `MEMMONITOR` / `LEAKY_REPRO`(メモリ修正の効果検証ツール) +- メモリ計測の結果は [docs/06_TEST/TEST_01_メモリ修正効果計測.md](../06_TEST/TEST_01_メモリ修正効果計測.md). +- ファイル命名・カテゴリ規約は [docs/01_GUIDE/GUIDE_03_ファイル命名規則.md](../01_GUIDE/GUIDE_03_ファイル命名規則.md). diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index ced4474..5ab92b6 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -10,7 +10,7 @@ (本ファイルの編集時に自動ロードされる) --> -- [x] **環境整備(テンプレート同期・docs 番号修正)** (2026-06-06): プログラミングテンプレートを初回同期(エージェント/コマンド/GUIDE_05 等を取り込み)し、docs カテゴリ番号を命名規則(GUIDE_03)に整合(PLAN→03 / SPEC→04 / TECH→05)。リモートをセルフホスト Git から GitHub(rintoHasegawa/TIASshot, Private)へ移行。 +- [x] **環境整備(テンプレート同期・docs 番号修正)** (2026-06-06): プログラミングテンプレートを初回同期(エージェント/コマンド/GUIDE_05 等を取り込み)し、docs カテゴリ番号を命名規則(GUIDE_03)に整合(PLAN→03 / SPEC→04 / TECH→05)。リモートをセルフホスト Git から GitHub の Private リポジトリへ移行。 - [x] **CameraBase のリファクタリング(責務分離 Phase 1〜4)** (2026-06-06): 肥大化していた `CameraBase` の責務を分離。`Cameras/`・`UI/`(Phase1)、色補正→`ColorCorrection/ColorCorrector`(Phase2)、チャート検出→`ChartDetection/ChartDetector`(Phase3)、ファイル I/O・サウンド→`Utils/IoUtil`(Phase4)。 - 動機: `CameraBase` にカメラ制御・チャート検出・色補正・ファイル I/O・サウンドが集中していた。 diff --git a/setup.ps1 b/setup.ps1 index 8679da3..9554e25 100644 --- a/setup.ps1 +++ b/setup.ps1 @@ -101,5 +101,5 @@ Write-Host " 1. IC Imaging Control SDK のインストール(Step 4 参照)" Write-Host " 2. TIASshot.sln を Visual Studio 2022 で開いてビルド確認" Write-Host " 3. config.xml・カメラ設定ファイル・CSV ファイルの配置" -Write-Host " (詳細は docs\02_ENV\ENV_01_開発環境構築手順.md を参照)" +Write-Host " (詳細は docs\02_ENV\ENV_02_環境構築手順.md を参照)" Write-Host ""