●HDUSで地デジレベルの測定
どうも関東でも県境になると、東京タワーの電波が弱くなるせいか、ラジオダクトとかフェージングとかの影響を受けやすいようで、30分~1時間程度、レベルと品質が急激に下がる現象がおきます。
何が起こっているか調べるために、CentOSで、地デジ受信レベルの測定して、ログ管理したいのでいろいろ検証した。
※スカイツリーから電波が出るようになると、多少は変わるのだろうか・・・。
LEADERあたりの測定器を使いたいところだが、24時間365日これにとられてしまうのはもったいないので(高額なので)、安価で相対的にレベル管理をしたいと考え、SKNETのMonsterTV HDUS + recfriioというパターンでやってみた。
recfriioだと、受信すると下記のように表示されるので、
-----
# /usr/local/hdus/bin/recfriio --hdus --b25 --lockfile lock 27 10 tes.ts
B25Decoder initialized.
Tuner type is HDUS.
Search friios from dir: /dev/bus/usb
3 friios found:
args usbbus : /dev/bus/usb/001/002
/dev/bus/usb/001/002: this friio.
opening HDUS...done.
freq = 557
CNR: 31.4054
Signal level: 59.6279
Output ts file.
sync 42 bytes
sync 56 bytes
done.
Rec time: 9.104928 sec.
CNR: 31.0652
Signal level: 59.0575
closing HDUS...done.
-----
この出力の、「Signal level」と「CNR」を利用する。Signal levelとCNRは受信前と受信後の2つ出てくるので、平均をとることにした。
また、複数のアンテナ線を使用したいので、HDUSを3台接続中(RF切替器の手もあるが、今回は3台使った)。
がしかし、HDUSというかUSBの問題か、接続する順番(というか認識の順番)が、起動時に入れ変わってしまうというトラブルが発生。
このままでは、HDUSがラウンドロピンしてしまうので(笑)、アンテナ線が特定できないと使い物にならない。
もともとrecfriioは複数台つながることを想定していないようだ。
----
# lsusb
Bus 003 Device 002: ID 04e6:511a SCM Microsystems, Inc.
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 005 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 003: ID 3275:6051 VidzMedia Pte Ltd ※このへんが、前後入れ替わる。
Bus 001 Device 004: ID 3275:6051 VidzMedia Pte Ltd ※このへんが、前後入れ替わる。
Bus 001 Device 002: ID 3275:6051 VidzMedia Pte Ltd ※このへんが、前後入れ替わる。
Bus 004 Device 001: ID 0000:0000
----
でこれでは、だめなので、recfriioを改造した。
具体的には、オプションで、USBデバイス番号を指定できるようにした。
-----
# /usr/local/hdus/bin/recfriio --hdus --usbbus /dev/bus/usb/001/002 --b25 --lockfile lock 27 10 tes.ts
B25Decoder initialized.
Tuner type is HDUS.
Search friios from dir: /dev/bus/usb
3 friios found:
args usbbus : /dev/bus/usb/001/002
/dev/bus/usb/001/003: this friio. (fd:6)
/dev/bus/usb/001/004: this friio. (fd:7)
/dev/bus/usb/001/002: this friio. (fd:8)
use_device_fd : 8
opening HDUS...done.
freq = 557
CNR: 31.4054
Signal level(b): 59.6279
Output ts file.
sync 42 bytes
sync 56 bytes
done.
Rec time: 9.104928 sec.
CNR: 31.0652
Signal level(a): 59.0575
closing HDUS...done.
-----
これでUSB接続が固定できた。
この情報をメールで送信できるプログラムを別途作成。
●ZABBIXで統合管理してみた。
HDUS接続してるサーバをセンサーとして、メールでZABBIXサーバに送信。
複数の測定場所が想定されるので、SNMPでZABBIXサーバがとりに行く方式はやめ(センサー側に固定IPとか必要になるので)、メールでセンサー側が一方的にZABBIXサーバに送りつける方法とした。
で、メール受信したら、zabbix_senderで特定キーに流し込む。
グラフ化とトリガーを組み合わせれば、レベルの管理とトリガーによる警報発報が可能。
センサー用PCを組込系のARM系とかで構成できれば、HDUSとの組合せで小さくできるので、ポータブルも可能かも。
ネットワークさえ現地で確保できれば、いろいろ用途が広がりそう。
しばらく使ってみたいと思います。