========================================================================
設定ファイル仕様 (Configuration File Specification)
========================================================================

実行ファイルと同じディレクトリに `config.xml` を配置する．
XML のルート要素は `<Config>` とする．

※ ファイル名・保存先のテンプレート変数: `{NO}` は4桁連番，`{CN}` は2桁の次元数に展開される．


1. Lucam カメラ設定 (Lucam Camera)
------------------------------------------------------------------------
Lumenera Lw110 の初期パラメータ．

■ <Lucam>
    ・<Exposure>: 露光時間 (ms)
        - 例: `60.0`
    ・<Gain>: マスターゲイン
        - 例: `1.5`
    ・<GainB>: ブルーゲイン
        - 例: `2.62`
    ・<GainG>: グリーンゲイン
        - 例: `1.72`
    ・<GainR>: レッドゲイン
        - 例: `1.70`


2. ImagingSource カメラ設定 (ImagingSource Camera)
------------------------------------------------------------------------
各カメラの ROI（関心領域）設定．カメラ名はデバイス名と一致させる．

■ <DFK33UX178> / <DFK23UX249>
    ・<ROI>
        - <X>: ROI の左端座標 (px)
        - <Y>: ROI の上端座標 (px)
        - <W>: ROI の幅 (px)
        - <H>: ROI の高さ (px)
    ※ ImagingSource カメラは画像を転置してから ROI を切り出す．
       X・Y・W・H は転置後の座標系で指定する．


3. キャリブレーション設定 (Calibration)
------------------------------------------------------------------------

■ <Calib>
    ・<ChartSetCriteria>: チャート固定判定の閾値 (px)
        - ARマーカーの移動量がこの値未満のフレームを「静止」とみなす．
        - 例: `4.0`
    ・<ChartSetCount>: チャート固定判定に必要な連続静止フレーム数
        - 例: `30`
    ・<Reference>: 白色票（24色票の13番）の目標 RGB 値
        - <B>: ブルー目標値 (0-255)
        - <G>: グリーン目標値 (0-255)
        - <R>: レッド目標値 (0-255)
        - 例: `226`（各チャンネル共通）
    ・<UpdateRate>: ホワイトバランスゲインの更新率（0.0-1.0）
        - 1.0 で即時反映，値を下げると緩やかに収束する．
        - 例: `0.8`
    ・<Frames>: キャリブレーションに使用するフレーム数
        - 例: `100`
    ・<UpdateInterval>: ゲインを更新するフレーム間隔
        - 例: `5`（5フレームごとに更新）
    ・<ConversionChannels>: 変換行列の次元数
        - 4 (1次式)，10 (2次式)，17 (3次式) から選択する．
        - カンマ区切りで複数指定可能（例: `4,10,17`）．
        - 詳細は `SPEC_01_機能仕様.txt` の「3-3. TCC計算」を参照．


4. 撮影設定 (Shot)
------------------------------------------------------------------------

■ <Shot>
    ・<PreviewMonitorWidth>: プレビューモニタの表示幅 (px)
        - 例: `1280`
    ・<MultiShotCount>: 連続撮影の枚数（UI の初期値）
        - 例: `10`
    ・<MultiShotInterval>: 連続撮影の間隔 (ms)（UI の初期値）
        - 例: `500`
    ・<SubjectName>: データ名の初期値（UI のテキストボックスに表示）
        - 例: `無記名`


5. ファイル設定 (File)
------------------------------------------------------------------------

■ <File>
    ・<SaveFolder>: データの保存先フォルダ（絶対パス）
        - 例: `C:\TIAS_Data`
    ・<TccSrgbRef>: sRGB 変換参照値 CSV のパス
        - 例: `tcc_srgb.csv`
    ・<TccXyzRef>: XYZ 変換参照値 CSV のパス
        - 例: `tcc_xyz.csv`
    ・<TccImage>: キャリブ時の画像ファイル名
        - 例: `TCC.png`
    ・<TccRoisImage>: チャート ROI 確認画像ファイル名
        - 例: `TCC_ROIs.jpg`
    ・<RgbImage>: 撮影画像ファイル名（`{NO}` で連番）
        - 例: `Shot{NO}.png`
    ・<SrgbImage>: sRGB 変換画像ファイル名（`{CN}` で次元数，`{NO}` で連番）
        - 例: `sRGB{CN}_{NO}.jpg`
    ・<Info>: 撮影情報 CSV のファイル名
        - 例: `Info.csv`
    ・<TccRgbValues>: チャート RGB 値 CSV のファイル名
        - 例: `TCC_RGB.csv`
    ・<TccSrgbValues>: チャート sRGB 値 CSV のファイル名（`{CN}` で次元数）
        - 例: `TCC_sRGB{CN}.csv`
    ・<ConvRgb2Srgb>: RGB→sRGB 変換行列 CSV のファイル名
        - 例: `Conv_RGB-sRGB{CN}.csv`
    ・<ConvRgb2Xyz>: RGB→XYZ 変換行列 CSV のファイル名
        - 例: `Conv_RGB-XYZ{CN}.csv`
    ・<ConvSrgb2Xyz>: sRGB→XYZ 変換行列 CSV のファイル名
        - 例: `Conv_sRGB-XYZ{CN}.csv`
    ・<ConvRgb2XyzOld>: RGB→XYZ 変換行列（旧形式）CSV のファイル名
        - 例: `Conv_RGB-XYZold.csv`


6. 光源設定 (Light Source)
------------------------------------------------------------------------

■ <LightSource>
    ・<Device>: 光源デバイスのデバイス名（部分一致で検索）
        - 例: `Silicon Labs CP210x`
    ・<BaudRate>: シリアル通信のボーレート (bps)
        - 例: `38400`


7. サウンド設定 (Sound)
------------------------------------------------------------------------

■ <Sound>
    ・<CalibDone>: キャリブレーション完了時の効果音ファイル名
        - 例: `CalibDone.wav`
    ・<OneShotDone>: 1枚撮影完了時の効果音ファイル名
        - 例: `OneShot.wav`
    ・<MultiShotDone>: 連続撮影完了時の効果音ファイル名
        - 例: `MultiShot.wav`
