riset3v mAagicTV GT 番組予約ファイル riset3.ri 表示ツール

Copyright (C) [2018-3] Akinori Furuta.


はじめに

riset3v は mAgicTV GT の番組予約ファイル riset3.ri の内容を 表示するコマンドラインツールです。次は表示例です。

riset3v -f "%s,%e,%N,%T,%t" -t "%Y/%m/%d %H:%M:%S"
2018/03/30 07:00:00,2018/03/30 07:45:00,0x7fe0,0x7fe0,"NHKニュース おはよう日本[字]"
2018/03/30 10:15:00,2018/03/30 10:25:00,0x7fe1,0x7fe1,"おとなの基礎英語[終] Session96「Review Test」"

riset3v  -f "%s,%e,%N,%T,%t" -t "%s"
1522360800,1522363500,0x7fe0,0x7fe0,"NHKニュース おはよう日本[字]"
1522372500,1522373100,0x7fe1,0x7fe1,"おとなの基礎英語[終] Session96「Review Test」"

ダウンロード

riset3v.zip をダウンロードして下さい。 ZIP ファイルを展開すると、展開先ディレクトリにの直下にファイルが 配置されます。

インストール・同梱ファイル一覧

ダウンロードした zip ファイルを展開し、 その中に含まれる riset3v.exe を次の様に して使って下さい。

  1. ダウンロードした zip ファイルを展開します。 展開先はツールを配置したいフォルダか、一時的に 作業用として配置する場所にします。
  2. riset3v.exe のプロパティを表示して、 「セキュリティ」を「許可すとる」にチェックを 入れて「適用」する。あるいは「ブロックの解除」 をクリックして「適用」して下さい。
  3. 一時的に作業用として配置する場所に展開した場合は、 riset3v.exe ファイルを配置したいフォルダへ コピーして下さい。PATH 環境変数で実行ファイルを 検索するフォルダ内にコピーするのが便利です。

次の表に zip ファイルに含まれるファイル一覧を示します。

ファイル 必須か 説明
Makefile.bcc 不要 riset3v.exe を Embarcadero C++ で構築するために 使います。構築する予定が無ければ削除して構いません。
Makefile 不要 riset3v.exe を cygwin または Linux 環境で構築する ために使います。構築する予定が無ければ削除して構いません。
readme.htm
computer-manual.css
不要 このファイルとそのスタイルシートです。内容を確認したら 削除しても構いません。 riset3v.exe -h で最低限の ヘルプメッセージが表示されます。
riset3v.c
riset3v.h
不要 riset3v.exe のソースコードです。ソースコードから構築する 予定が無ければ削除して構いません。
riset3v.exe 必須 録画情報ファイル riset3.ri ファイルを読み込んで内容を 表示するコマンドラインツールです。PATH 環境変数で 実行ファイルを検索するフォルダにコピーして使うと便利 です。PATH 環境変数で検索対象になっていないフォルダに 格納した場合は、フルパスを指定して実行して下さい。
riset3view.sln
riset3view.vcxproj
不要 riset3v.exe を Visual Studio で構築するために 使います。構築する予定が無ければ削除して構いません。

コマンドライン

全般

riset3v.exe のコマンドライン書式は次の通りです。

riset3v.exe [-a] [-c{b|rC|d|n}...] [-f format] [-t time_format] [-d digit_format] [path_riset3.ri]
引数 説明
-a[+|-|]

ARIB 拡張文字を [hhhh] に置き換える指定をします。

オプション文字列 説明
-a+ または -a ARIB 拡張文字を [hhhh] に置き換えます。 人名・地名に良く使われる漢字も置き換わります。 例えば髙(はしご高)、𠮷(つちよし)などです。
-a- (既定値) ARIB 拡張文字を置き換えません。置き換えを 行わない出力を iconv -f SJIS にパイプライン などで渡した場合、エラーが発生し変換が終了します。 終了によって発生する問題を避けるにはiconv に -c オプションを指定して、変換不能文字を捨てて下さい。
-c[b|rC|d|n]

制御文字置き換え方法を指定します。既定は指定無しで置き換え処理はしません。

オプション文字列 説明
-cb \ を接頭辞にしてエスケープします。 置き換え規則は C 言語の仕様に準拠します。 置き換え対象文字列に \ が有った場合 \\ に 置き換えます。
-crC 制御文字を文字 C に置き換えます。 C を省略した場合は ';' に置き換えます。
-cd 制御文字を削除します。
-cn 制御文字の並び CR-LF (\r\n) と CR (\r) を LF (\n) に置き換えます。
-f format

予約情報の表示書式を指定します。表示書式は次に示す文字列を 織り交ぜて指定します。既定は "%s,%e,%N,%T,%t" です。

書式文字列 説明
%s 録画開始時刻、 開始時刻が現在時刻より古い場合もあります。
%e 録画終了時刻
%t タイトル文字列
%b 概要文字列、改行などが含まれているため、 -cb オプションなどを併用してください。
%d 詳細文字列、改行などが含まれているため、 -cb オプションなどを併用してください。
%N Network ID、16進数で表示されます。 (詳細は ARIB 仕様を参照して下さい。)
%T Transport Stream ID、16進数で表示されます。 (地上波は上記の Network ID) と一致します。
%S Station ID、16進数で表示されます。 (詳細は ARIB 仕様を参照して下さい。)
%P Program ID と思われる値、16進数で表示されます。 (詳細は ARIB 仕様を参照して下さい。)
%E Event ID と思われる値、16進数で表示されます。 (詳細は ARIB 仕様を参照して下さい。)
%G mAgicTV が録画予定情報に付けた GUID と思われる文字列
-t time_format

日時の書式を指定します。strftime() の書式と同一です。既定は "%Y/%m/%d %H:%M:%S" です。 次は良く使用する書式の一部です。

書式文字列 説明
%Y 4 桁の西暦年号
%y 2 桁の西暦年号
%m 2 桁の月
%d 2 桁の日
%H 2 桁の 24 時間制 時
%M 2 桁の分
%S 2 桁の秒
%s 1970/1/1 00:00:00 UTC から 数えた秒数 (UNIX 時刻)、単独で 指定した場合は -d オプションで 指定した書式で表示されます。

%a(短縮形曜日), %A(曜日), %b(月), %B(月), %p(午前/午後), %P(午前/午後) も 使用可能です。しかし、番組タイトルの 文字コード体系 SJIS と混合すると 読み取りが困難になる場合があります。

-d digit_format

日時の書式を "%s" にした場合に秒数を 表示する書式を指定します。既定は "10" です。書式はprintf() の変換指定子 u (10 進数で符号無し整数を 表示する)に指定できる書式のうち、 フラグ文字、フィールド幅、精度に 使える文字から間接指定文字を除いた 文字でで構成して下さい。

-h または -?

ヘルプを表示します。コマンドラインに 何も指定しない場合は、mAgicTV が運用している riset3.ri を読み取り、表示しますます。 初期化直後などで録画予約が全くない場合に、 riset3v.exe を起動すると何も表示されません。

path_riset3.ri

riset3.ri ファイルのパスを指定します。 既定は APPDATA 環境変数を参照して mAgicTV が運用している riset3.ri ファイルのパスになります。Windows10 で典型的な既定のパスは C:\Users\ユーザー名\AppData\Roaming\I-O DATA\mAgicTV\TVManager\riset3.ri となります。

使用例

ヘルプメッセージを表示する。

riset3v -h

mAgicTV が運用している riset3v.ri ファイルを表示する。

riset3v

開始時刻、終了時刻、Netrowk id、Service id、概要を表示する。

riset3v -f "%s,%e,%N,%S,%b" -cb

ノート: 概要または詳細を表示する 場合 "-cb", "-cd", "-cr;" オプションのいずれかを併用した方が 良いでしょう。概要、詳細に含まれる CR または LF 制御文字によって 出力が大きく乱れるのを防いで下さい。

開始時刻、終了時刻、Netrowk id、Service id、タイトルを表示する。 時刻は UNIX time を秒で表示する。

riset3v -f "%s,%e,%N,%S,%t" -t "%s"

C:\TMP にコピーした riset3.ri を表示する。

riset3v C:\TMP\riset3.ri

cygwin などの疑似 UNIX 環境でパイプライン処理で使う。 時刻は UNIX time を秒で表現する。

riset3v -f "%s,%e,%N,%S,%t" -t "%s" -a | dos2unix | iconv -f SJIS | sort

ノート: 添付した riset3v.exe は Embarcadero C++ で構築した Windows command line アプリケーション です。改行の形式は CR-LF です。dos2unix などで改行形式を LF に 変換せずに riset3v.exe の出力を sed, gawk, sell script で処理と、 気づきにくい CR コードによってエラーまたは式の評価が期待通りに 行われない場合があります。

ノート: riset3v に -a オプションを 付けて ARIB 拡張文字を [hhhh] に置き換えて iconv でエラーになら ないようにしています。iconv でエラー対策をするには iconv に -c オプションを使用して、終了しない様にします。


Network ID, Transport Stream ID, Service ID について

Network ID, Transport Stream ID, Service ID は放送ネットワーク(衛星)、 放送局、メイン/サブチャネル、周波数帯を識別する番号です。riset3v はこれらを翻訳しないで値のまま表示します。それぞれ次の検索結果を 参照して下さい。


ソースコードから構築する

riset3v.exe は Visual C++(Visual Studio), Embarcadero C++, gcc (cygwin), gcc (Linux) を 使ってソースコードから構築できます。添付してある riset3v.exe は Embarcadero C++ を使い 構築したものです。

構築環境 お勧め 構築コマンドライン、特徴
Visual C++ (Visual Studio)
build command line: devenv riset3view.sln -build "Release|Win32"

Visual Studio に含まれる。C++ コンパイラで構築できます。 ソースコードは C 言語の範囲で書かれています。構築ターゲットは "Debug|Win32", "Release|Win32", "Debug|x64", "Release|x64" の いずれかを指定できます。64bit windows 環境でも 32bit コードを 実行することができますので "Release|Win32" ターゲットだけ構築 すれば十分でしょう。ランタイムライブラリを必要とするので、 構築環境と実行環境が違う場合は、ランタイムライブラリも コピーする必要があります。

Visual C++ で構築した riset3v.exe は riset3.ri ファイルを共有 モードで開きます。mAgicTV の動作を妨害する可能性は低いです。 riset3v.exe 動作中に riset3.ri ファイルが更新された場合、 riset3v.exe の出力が乱れる可能性があります。

ターゲット 構築先 構築内容
Debug|Win32 Win32\Debug Win32 (x86 32bit) 版のデバック用実行ファイルが作られます。
Release|Win32 Win32\Release Win32 (x86 32bit) 版のリリース用実行ファイルが作られます。
Debug|x64 x64\Debug x64 (64bit) 版のデバック用実行ファイルが作られます。
Release|x64 x64\Release x64 (64bit) 版のリリース用実行ファイルが作られます。
Embarcadero C++
build command line: make -f Makefile.bcc

Embarcadero C++ のフリー版で構築できます。構築される バイナリは Win32(32bit) コードです。64bit 環境でも実行できます。 ランタイムライブラリが不要なバイナリが構築されます。 構築した EXE ファイルをコピーするだけで、別の環境でも実行できます。

Embarcadero C++ で構築した riset3v.exe は riset3.ri ファイルを共有 モードで開きます。mAgicTV の動作を妨害する可能性は低いです。 riset3v.exe 動作中に riset3.ri ファイルが更新された場合、 riset3v.exe の出力が乱れる可能性があります。

gcc (cygwin)
build command line: make

cygwin の gcc で構築できます。32bit/64bit どちらの cygwin 環境でも 構築できます。cygwin のランタイムライブラリを必要とします。 構築環境と実行環境双方に cygwin をインストールしておくことをお勧めします。

cygwin の文字コード体系は UTF-8 なのに対し、riset3v.exe の出力は SJIS です。cygwin 環境で出力結果は直接読めないので iconv を通して 変換し、読む・処理する必要があります。

cygwin 環境で構築した riset3v.exe は riset3.ri ファイルを共有 モードで開きます。mAgicTV の動作を妨害する可能性は低いです。 riset3v.exe 動作中に riset3.ri ファイルが更新された場合、 riset3v.exe の出力が乱れる可能性があります。

gcc (Linux)
build command line: make

Linux の gcc で構築できます。Little endian の 32bit/64bit どちらの Linux 環境でもビルドできます。

riset3v.exe の出力は SJIS です。出力結果は直接読めないので iconv を通して変換し、読む・処理する必要があります。

riset3.ri ファイルを Linux 環境にコピーし、コピーしたファイルを riset3v で表示することをお勧めします。

ノート: riset3.c, riset3v.h の中に Watcom C と主に 16bit 環境で使用する C コンパイラで構築を試みた 記述があります。2018/3 の時点ではこれらのコンパイラで構築する ことはできません。


ライセンスと責任範囲

ライセンスと責任範囲は 2 条項 BSD ライセンスに準拠します。責任範囲について、2 条項 BSD ライセンスに則り次の様に定めます。

ソフトウエアは「あるがまま」で提供されます。明示黙示を問わず、商業的な使用可能性、および特定の目的に対する適合性に関する暗黙の保証も含め、またそれに限定されない、いかなる保証もありません。著作権者もコントリビューターも、事由のいかんを問わず、 損害発生の原因いかんを問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その他の)不法行為であるかを問わず、仮にそのような損害が発生する可能性を知らされていたとしても、本ソフトウェアの使用によって発生した(代替品または代用サービスの調達、使用の喪失、データの喪失、利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害について、一切責任を負わないものとします。


商標等

本文中に現れる製品名あるいは商標はその権利所有者による登録商標です。


Mail@to afuruta@m7.dion.ne.jp