【備忘録】BSトラポン移動時の BonDriver 関連更新手順

# この記事は何？
BS のトランスポンダ移動に伴う BonDriver 関連の更新作業手順を記載した備忘録

BonDriver_Splitter 使って３波化している人には役立つ情報があるかも知れないが、この記事を書いている 2021年2月現在 自動でトラポン移動に対応する [BonDriver_PTx-ST mod版](https://github.com/hyrolean/BonDriver_PTx-ST_mod) が公開されているので、特段事情がなければ素直に mod版 使うが吉

# 構成

### システム構成

- 録画PC と 視聴PC の２台構成で、録画PC は PT2 x 2枚差し
- BonDriverProxyEx で8チューナーを共有＆排他（ついでに B25 もデコード）
- 視聴PC では BonDriverProxy と TVTest の間に BonDriver_Splitter を挟んで 3波化 

![構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1129235/aaa18a94-97ab-aeb1-53ef-66dbd7f1eb98.png)

### フォルダ構成

#### 録画PC
    C:\
     └─PT2
       ├─BonDriverProxyEx
       │      BonDriverProxyEx.exe
       │      BonDriverProxyEx.ini
       │      BonDriver_PT-S.ChSet.txt
       │      BonDriver_PT-S0.dll
       │      BonDriver_PT-S1.dll
       │      BonDriver_PT-S2.dll
       │      BonDriver_PT-S3.dll
       │      BonDriver_PT-ST.ini
       │      BonDriver_PT-T.ChSet.txt
       │      BonDriver_PT-T0.dll
       │      BonDriver_PT-T1.dll
       │      BonDriver_PT-T2.dll
       │      BonDriver_PT-T3.dll
       │      PTCtrl.exe
       │       :
       │
       └─EDCB
           │   :
           │  EpgDataCap_Bon.exe
           │  EpgTimer.exe
           │   :
           │
           ├─BonDriver
           │      BonDriver_Proxy_S.dll
           │      BonDriver_Proxy_S.ini
           │      BonDriver_Proxy_T.dll
           │      BonDriver_Proxy_T.ini
           │
           ├─EdcbPlugIn（中身省略）
           ├─HttpPublic（中身省略）
           ├─PostBatExamples（中身省略）
           ├─RecName（中身省略）
           ├─Setting
           │  │   :
           │  │  BonDriver_Proxy_S(BonDriverProxy).ChSet4.txt
           │  │  BonDriver_Proxy_T(BonDriverProxy).ChSet4.txt
           │  │  ChSet5.txt
           │  │   :
           │  │
           │  └─EpgData
           │          0004FFFF_epg.dat
           │           :
           │          7FE67FE6_epg.dat
           │
           ├─Tools（中身省略）
           └─Write（中身省略）

★設定ファイルの現物は[こちら](https://github.com/kao5k3/PT2/tree/main/Server)

#### 視聴PC
    C:\
     └─TVTest
        │  BonDriver_Splitter.ch2
        │  BonDriver_Splitter.dll
        │  BonDriver_Splitter.ini
        │   :
        │  TVTest.exe
        │   :
        │
        ├─BonDriverProxy
        │      BonDriver_Proxy_S.ch2
        │      BonDriver_Proxy_S.dll
        │      BonDriver_Proxy_S.ini
        │      BonDriver_Proxy_T.ch2
        │      BonDriver_Proxy_T.dll
        │      BonDriver_Proxy_T.ini
        │
        ├─Plugins（中身省略）
        └─Themes（中身省略）

★設定ファイルの現物は[こちら](https://github.com/kao5k3/PT2/tree/main/Client)


# 作業手順

### 0. 概要
1. チューナー定義ファイル更新  
録画PC の BonDriver_PT-Sx.dll が読み込むチューナー定義ファイル (BonDriver_PT-S.ChSet.txt)をトラポン移動後の状態に更新
2. EDCB の設定更新  
録画PC の EDCB でチャンネルスキャンして EDCB が独自に持っているチャンネル定義ファイル(*.ChSet4.txt, ChSet5.txt)を更新
3. TVTest の設定更新  
視聴PC の TVTest でチャンネルスキャンしてまず (BonDriver_Splitter は使わず) BonDriverProxy だけで視聴できるように設定
4. チューナー3波化  
BonDriverProxy と TVTest の間に BonDriver_Splitter を挟んで3波化 

### 1. チューナー定義ファイル更新
以下の作業はすべて**録画PC** で行う

1. まずは BonDriverProxyEx と EpgTimer(EDCB) を停止して C:\PT2 フォルダを丸ごとコピーしてバックアップ
1. [PT1-PT2-Sample-200改.zip](https://www.axfc.net/u/3903918?key=PT2) をダウンロードして適当なフォルダに展開
1. 展開した exe ファイルをコマンドプロンプトから起動
1. ISDB-S のチャンネルスキャンを実行 → カレントディレクトリに [BonDriver_PT-S.ChSet.txt](https://github.com/kao5k3/PT2/blob/main/Server/PT2/BonDriverProxyEx/BonDriver_PT-S.ChSet.txt) が生成される
1. 生成された [BonDriver_PT-S.ChSet.txt](https://github.com/kao5k3/PT2/blob/main/Server/PT2/BonDriverProxyEx/BonDriver_PT-S.ChSet.txt) を C:\PT2\BonDriverProxyEx フォルダに上書きコピー
1. C:\PT2\BonDriverProxyEx\BonDriverProxyEx.exe を起動

**補足**: 最新の [BonDriver_PT-S.ChSet.txt](https://github.com/kao5k3/PT2/blob/main/Server/PT2/BonDriverProxyEx/BonDriver_PT-S.ChSet.txt) を Web や某掲示板で公開してくれている人もいるので面倒な人はそれを使うのもあり。ただ、拾ってきたファイルの区切り文字 Space を Tab に変換するのを忘れると動かないので注意。

### 2. EDCB の設定更新
以下の作業はすべて **録画PC** で行う

1. 以下のファイルを削除
 * C:\PT2\EDCB\Setting\EpgData\\*.dat
 * C:\PT2\EDCB\Setting\ChSet5.txt
 * C:\PT2\EDCB\Setting\\*.ChSet4.txt

1. C:\PT2\EDCB\EpgDataCap_Bon.exe を起動
 * BonDriver に BonDriver_Proxy_**S**.dll を指定してチャンネルスキャン実行  
 * BonDriver に BonDriver_Proxy_**T**.dll を指定してチャンネルスキャン実行  
 * チャンネルスキャンが終了したら EpgDataCap_Bon.exe を終了
![EpgDataCap_Bon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1129235/c0cabb42-cbcc-eaa1-069f-8ecafeff2712.png)


1. C:\PT2\EDCB\EpgTimer.exe を起動して 「EPG取得」 を実行
![EpgTimer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1129235/85b9ebad-5d8e-75eb-2ba2-0e6bd742e090.png)


録画PCでの作業は以上で終了。 1. で削除したファイルが復元されているハズなので確認しておくと良い。

### 3. TVTest の設定更新
以下の作業はすべて **視聴PC** で行う
まず BonDriver_Splitter は使わず BonDriverProxy だけで視聴ができる状態にする
![構成2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1129235/0e865242-c98d-a87f-7d77-02287bd8c03e.png)

1. まずは TVTest を停止して C:\TVTest フォルダを丸ごとコピーしてバックアップ

2. TVTest を起動して BonDriver に BonDriver_Proxy_S.dll を指定  
筆者のように TVTest フォルダ直下に BonDriver_Proxy_S.dll を置いていない人は BonDriver を選択するメニューの「参照」を押して C:\TVTest\BonDriverProxy\BonDriver_Proxy_S.dll を選択
![BonDrivers参照.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1129235/06b5ac27-1a44-3697-6a0e-31d928c9ae74.png)

3. 画面上で右クリック → 設定 → チャンネルスキャン と選択し、対象チューニング空間に **BS** を設定して「スキャン開始」ボタンを押下
![TVTest設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1129235/0d6a444b-b5d5-b8ec-6f83-0007fd6fab87.png)

4. スキャンが終わったら全チャンネルが視聴できるか確認
（BonDriver_Splitter で3波化しない人は以上で作業完了）

### 4. チューナー3波化
以下の作業はすべて **視聴PC** で行う

#### 4.1. BonDriver_Splitter.ini の更新
[C:\TVTest\BonDriverProxy\BonDriver_Proxy_S.ch2](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriverProxy/BonDriver_Proxy_S.ch2) ファイルと [C:\TVTest\BonDriver_Splitter.ini](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriver_Splitter.ini) ファイルを見比べて、[BonDriver_Proxy_S.ch2](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriverProxy/BonDriver_Proxy_S.ch2) にあって [BonDriver_Splitter.ini](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriver_Splitter.ini) にないチャンネルがないか確認する。

[BonDriver_Proxy_S.ch2](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriverProxy/BonDriver_Proxy_S.ch2) の中身は以下のような感じ

```csvs:BonDriver_Proxy_S.ch2
; TVTest チャンネル設定ファイル
; 名称,チューニング空間,チャンネル,リモコン番号,サービスタイプ,サービスID,ネットワークID,TSID,状態
;#SPACE(0,BS)
ＮＨＫＢＳ１,0,16,1,1,101,4,16625,1
ＮＨＫＢＳ１,0,16,2,1,102,4,16625,1
ＮＨＫＢＳプレミアム,0,4,3,1,103,4,16433,1
ＮＨＫＢＳプレミアム,0,4,104,1,104,4,16433,0
ＢＳ日テレ,0,13,4,1,141,4,16592,1
ＢＳ日テレ,0,13,4,1,142,4,16592,0
 :
```

[BonDriver_Proxy_S.ch2](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriverProxy/BonDriver_Proxy_S.ch2) ファイルにあるチャンネル番号とは各行の**３カラム目**の値（被りを無視すると上から順に **16**, **4**, **13**, ... という数字が BS のチャンネル番号）

　ＮＨＫＢＳ１,0,**16**,1,1,101,4,16625,1
　ＮＨＫＢＳ１,0,**16**,2,1,102,4,16625,1
　ＮＨＫＢＳプレミアム,0,**4**,3,1,103,4,16433,1
　ＮＨＫＢＳプレミアム,0,**4**,104,1,104,4,16433,0
　ＢＳ日テレ,0,**13**,4,1,141,4,16592,1
　ＢＳ日テレ,0,**13**,4,1,142,4,16592,0
　　：

一方 [BonDriver_Splitter.ini](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriver_Splitter.ini) の中身は以下のような感じ

```ini:BonDriver_Splitter.ini
[OPTION]
MODPMT=0
TSSYNC=0
DEL=

[SYSTEM]
TS_FIFO_SIZE=128
TSPACKET_BUFSIZE=48128

[BONDRIVER]
00=BonDriverProxy\BonDriver_Proxy_S.dll
01=BonDriverProxy\BonDriver_Proxy_T.dll

[SPACE00]
NAME=BS
USESERVICEID=0
000=BS00	0	0	0
001=BS01	0	0	1
002=BS02	0	0	2
003=BS03	0	0	3
004=BS04	0	0	4
005=BS05	0	0	5
006=BS06	0	0	6
007=BS07	0	0	7
008=BS08	0	0	8
009=BS09	0	0	9
010=BS10	0	0	10
011=BS11	0	0	11
012=BS12	0	0	12
013=BS13	0	0	13
014=BS14	0	0	14
015=BS15	0	0	15
016=BS16	0	0	16
017=BS17	0	0	17
018=BS18	0	0	18
019=BS19	0	0	19
020=BS20	0	0	20
021=BS21	0	0	21
022=BS22	0	0	22
023=BS23	0	0	23
024=BS24	0	0	24
025=BS25	0	0	25
026=BS26	0	0	26

[SPACE01]
NAME=CS
USESERVICEID=0
000=CS00	0	1	0
001=CS01	0	1	1
002=CS02	0	1	2
003=CS03	0	1	3
004=CS04	0	1	4
005=CS05	0	1	5
006=CS06	0	1	6
007=CS07	0	1	7
008=CS08	0	1	8
009=CS09	0	1	9
010=CS10	0	1	10
011=CS11	0	1	11

[SPACE02]
NAME=地デジ
USESERVICEID=0
000=GR00	1	0	0
001=GR05	1	0	5
002=GR06	1	0	6
003=GR07	1	0	7
004=GR08	1	0	8
005=GR09	1	0	9
006=GR10	1	0	10
007=GR11	1	0	11
008=GR12	1	0	12
009=GR13	1	0	13
010=GR14	1	0	14
011=GR27	1	0	27
```

[BonDriver_Splitter.ini](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriver_Splitter.ini) ファイルにあるチャンネル番号とは各行の最後尾の値
BS のチャンネルが列挙されている  [SPACE00]  の所だけ抜き出すと以下の **0**, **1**, **2**,... という値が BS のチャンネル番号

　[SPACE00]
　NAME=BS
　USESERVICEID=0
　000=BS00	0	0	**0**
　001=BS01	0	0	**1**
　002=BS02	0	0	**2**
　 ：

この両者のチャンネル番号の集合を比較して、[BonDriver_Proxy_S.ch2](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriverProxy/BonDriver_Proxy_S.ch2) にあって [BonDriver_Splitter.ini](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriver_Splitter.ini) にないチャンネル番号があったら [BonDriver_Splitter.ini](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriver_Splitter.ini) に追加していく。
なお逆（[BonDriver_Splitter.ini](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriver_Splitter.ini) にあって [BonDriver_Proxy_S.ch2](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriverProxy/BonDriver_Proxy_S.ch2) にない）はそのまま放っておいて構わないが、気になるなら [BonDriver_Splitter.ini](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriver_Splitter.ini) から削除してもいい。

**注意**: [BonDriver_Splitter.ini](https://github.com/kao5k3/PT2/blob/main/Client/TVTest/BonDriver_Splitter.ini) の区切り文字は Space ではなく Tab。上の記述をコピペすると区切り文字が Space になってしまうので全部 Tab に置換すること。

#### 4.2. TVTest でチャンネルスキャン

1. TVTest を（再）起動して BonDriver には BonDriver_Splitter.dll を指定
2. 画面上で右クリック → 設定 → チャンネルスキャン と選択し、対象チューニング空間に **BS** を設定して「スキャン開始」ボタンを押下
3. 全チャンネル(BS,CS,地デジ)が映れば作業完了
![TVTest設定2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1129235/3e17727b-622c-6979-8aa5-e94b45f4e02b.png)