日々

 EIT読み込み処理に昨日思い付いたアルゴリズムを組み込む。ONIDとTSIDとSIDは1つの値にまとめて最初に出現したものから処理し、途中で出現したものを順次処理するようにしてみた。セクション番号は最初に出現したものから処理し、より小さな番号が出現したら再度やり直すようにしたが、Eテレはサブチャンネルだとセグメントの途中も飛んでいることが判明(汗)
 そもそも8日後までの番組表の配信に使われているEIT[スケジュール]はテーブル識別の0x50でセクション番号が0~255(8セクションごとにセグメント#0~#31)、テーブル識別の0x51でセクション番号が0~255(セグメント#0~#31)あり、セグメント1つに3時間分の番組表が含まれているので(32セグメント+32セグメント)×3時間=192時間÷24時間=8日間となる。セグメントは最低1セクション、最大8セクションからなる。
 1セクションの送出頻度は30秒に1回以上なので64セグメントの最低64セクションは32分かかり、最大512セクションだと4時間16分かかる。もちろん、送出頻度はもっと高いと思うけど、番組表が先頭から順番に送出されてる訳じゃないから順番に取得するのは無駄が多すぎて実用性に疑問がある。
 てな訳で、ONID+TSID+SIDごとに64セグメント分が取得できているか否かのデータを持ち、これらが埋まれば取得完了とする方向に切り替えることにした。Eテレは1日目の00:00~03:00にあたるセグメント#0と1日目の03:00~06:00にあたるセグメント#1が送出されない場合があるので、ここは埋まっているか否かはチェックしない。あと、メインチャンネルが埋まれば取得完了で、サブチャンネルは埋まってなくてもチェックしない。
 と、次に実装すべきアルゴリズムを思い付いたところで本日は終了。

 定時後、第二神明で帰宅。晩御飯はナゲットカレー。

 昨日の深夜にメインNASからHDDエラーのメールが飛んできた。先々月交換したばかりのHDDだったが、RMAで返送された品だけに耐久性に難ありだったか(汗)てな訳で、別途RMAで返送されたHDDに交換することに。こちらも2ヶ月しか持たなかったらどうしよう。
 まずはNAS4Free(現XigmaNAS)をシャットダウン。エラーメールに記載されたS/NのHDDを交換して電源ON。テストメールが飛んできたらNASにログインして、交換前のHDDの登録を削除、交換後のHDDを登録を追加、ZFSのツールでreplaceのコマンドを使って交換前と交換後のデバイスを指定して実行。これでZFSの情報を確認してresilvering(再同期)されていたら終わるまで1日ほど待つだけ。

 夜9時にお茶入れてもらって一服。