Newer
Older
TIASShot / docs / 02_ENV / ENV_06_ビルド構成とビルドフラグ.md

ビルド構成とビルドフラグ (Build Configurations and Flags)

本プロジェクトは,診断・評価用の機能(メモリ観測・白板撮影)を**条件コンパイルシンボル(ビルドフラグ)**で出し分けている.配布版(Release)にはこれらをコードごと含めない方針である.本ドキュメントは,どのフラグが何を有効化し,どの構成で定義されるかをまとめる.

設計方針 (Policy)

  • Release(配布版)=素の製品.診断・評価・デモ用の機能はコードごと除外する.
  • Debug=開発・検証版.診断/評価機能(MEMMONITOR・WHITEBOARD・SELFTEST・HWTEST)を自動で含める.

ソリューション構成 (Solution Configurations)

TIASshot.sln が定義する構成は次の 2 つ(プラットフォームは x64 のみ).OpenCvSharp 等がネイティブ DLL に依存するため x64 でビルドする.

構成用途定義されるシンボル出力先
Debug\|x64開発・検証DEBUG TRACE WHITEBOARD MEMMONITOR SELFTEST HWTESTTIASshot/bin/x64/Debug/
Release\|x64配布TRACETIASshot/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 等
SELFTESTヘッドレスのセルフテスト(--selftest)Debug\|x64(自動)・Debug\|AnyCPU(csproj のみ.通常は未使用)✗SelfTest/(ランナー・偽カメラ・合成チャート),UI/Form1.SelfTest・UI/PreviewMonitor.SelfTest,Program.Main の分岐,Form1.ShowError のヘッドレス記録
HWTEST実機テスト(--hwtest.実機のカメラ・光源を操作する)Debug\|x64(自動)・Debug\|AnyCPU(csproj のみ.通常は未使用).SELFTEST と同時に定義すること(無いと #error)✗HwTest/(ランナー・判定・引数),UI/Form1.HwTest,Cameras/IScam.HwTest・Cameras/Lucam.HwTest(露光・ゲインの操作),Program.Main の分岐,CameraBase の校正停止フラグ,Form1_Load の自動接続の省略・Form1.ShowImage のフレーム記録・Form1.ShowError の記録,メモリ観測ウィンドウを開かない分岐
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 では未定義.

SELFTEST — ヘッドレスのセルフテスト

  • TIASshot.exe --selftest でフォームを表示せずに,依存アセンブリのロード(deps)・偽カメラによるプレビュー経路(preview)・合成チャートによる校正〜保存(calib-save)を検査し,終了コード(0=合格)と結果ファイルで返す.実機カメラ・光源には触れず,保存先は一時フォルダに差し替える.
  • 依存更新後などに,人間の実機確認の前段として verifier(/verify)が使う.実行手順は ENV_04_開発コマンド と .claude/verify-profile.md を参照する.
  • 配布版には不要なため Release では未定義(Release の exe に --selftest を渡しても通常起動になる).

HWTEST — 実機テスト

  • TIASshot.exe --hwtest --camera <lucam|iscam> で実際の Form1 を表示し,指定した機種のカメラと光源を操作して,接続・プレビュー・露光/ゲイン・光源・閉じる処理・再接続を検査する(PLAN_06).終了コード(0=合格)と結果ファイルで返す.保存先は一時フォルダに差し替え,同梱の config.xml・デバイス状態ファイルは書き換えない.
  • チャート不要の検査の間は,CameraBase の校正停止フラグでフレームコールバックの校正処理(チャート検出・ホワイトバランスの調整・変換行列の算出)を止める(カメラの前にチャートをはめたまま検査するため).
  • SELFTEST の部品(SelfTestConfig・SelfTestReport・SelfTestPump・閉じる処理の段階の記録)を使うため,SELFTEST と同時に定義する必要がある(HwTest/HwTestRunner.cs・UI/Form1.HwTest.cs が #error で検出する).
  • 機材を操作するため,ユーザーの合図があるときだけ実行する.実行手順は ENV_04_開発コマンド と .claude/verify-profile.md を参照する.
  • 配布版には不要なため Release では未定義(Release の exe に --hwtest を渡しても通常起動になる).

ビルド方法 (How to Build)

標準構成(Debug / Release)のビルド・テスト・実行コマンドは ENV_04_開発コマンド を参照する.Debug|x64 では WHITEBOARD・MEMMONITOR・SELFTEST・HWTEST が自動で有効になり(メモリ観測ウィンドウが開き,白板撮影ボタンが表示され,--selftest・--hwtest 引数が使える),Release|x64 ではいずれの診断フラグも含まれない.