応用情報技術者試験 過去問 2014年(平成26年) 秋期 午後 問7
DVDレコーダ、ブルーレイディスクレコーダ用のリモートコントロールボックスの設計
U社は、タブレット、スマートフォン、PCなど(以下、端末という)から、家庭内の無線LAN(以下、無線LANという)を介してDVDレコーダ、ブルーレイディスクレコーダ(以下、これらを総称してレコーダという)を制御できるリモートコントロールボックス(以下、ボックスという)を設計した。
【システムの構成】
端末からボックスを介して、レコーダの番組録画予約と、録画された番組(以下、録画番組という)の視聴を行うことができる。端末とボックスはアクセスポイントを経由して無線LANで接続し、ボックスとレコーダは専用のケーブルで接続する。
システムの構成を図1に示す。

【レコーダの機能】
レコーダは、ボックスからのコマンドで番組録画予約を行い、録画番組を視聴の際には、録画番組の映像と音声のデータ(以下、録画データという)をボックスに送る。
【端末及びボックスの機能】
端末には、専用のアプリケーションシステム(以下、アプリという)をインストールしてある。このアプリはボックスと通信を行い、ボックスを介して、レコーダの番組録画予約と、録画番組の視聴を行うことができる。ただし、レコーダが出力する録画データは端末に保存できないようにしている。また、ボックスのタスクの制約から、同時に視聴できる端末は1台だけである。
録画データは、ボックスで端末用のデータに変換されて端末に送られる。また、端末とボックス間の通信は全て暗号化されている。
ボックスは無線LAN用にデータを送るために十分に大きな無線LAN用のバッファを備えており、バッファに格納したデータを自動的に無線LANに送る。
【ボックスで使用するOS】
ボックスは、独自のリアルタイムOSを使用する。このOSでは、タスクは、実行状態、実行待ち状態、待ち状態のいずれかとなる。タスクにはあらかじめ、高、中、低の3種類の優先度が付与され、変更されることはない。
- 実行状態のタスクがあるとき、より優先度が高いタスクの実行要求があると、実行状態のタスクは実行待ち状態になり、優先度が高いタスクは実行状態になる。
- タスク間の通信にはメッセージキュー(以下、キューという)及びリングバッファを使用する。
【ボックスのタスク構成】
ボックスで使用するタスクの構成を、表1に示す。
タスク | 機能 | 優先度 |
---|---|---|
ボックス制御 |
|
中 |
レコーダ制御1) |
|
a |
無線LAN制御2) |
|
b |
エンコーダ |
|
c |
番組予約 |
|
低 |
2) 遅延が最小となり、かつ、レコーダ制御タスクの処理を妨げないように設計されている。
【タスク間通信】
タスク間の通信では、コマンドなどの短いデータはキューを使用し、サイズの大きい録画データはリングバッファを使用する。レコーダ制御タスクとエンコーダタスクの間にリングバッファA(以下、バッファAという)を、エンコーダタスクと無線LAN制御タスクの間にリングバッファB(以下、バッファBという)をそれぞれ割り当てる。
リングバッファは、書込みインデックスの値W、読出しインデックスの値R、及びデータを格納するバッファから成る。
リングバッファでは、データを書き込むと書き込んだデータ長が書込みインデックスに加算され、データを読み出すと読み出したデータ長が読出しインデックスに加算される。リングバッファではデータを全て読み出したとき、書込みインデックスの値Wと読出しインデックスの値Rの関係はdとなる。
【視聴時のタスクの動き】
録画番組を視聴するとき、ボックスはレコーダを制御して録画データを連続して受け取る。
端末から録画番組が指定されると、ボックスはレコーダにコマンドを送り、視聴を開始する。視聴を開始すると、各タスクが表2の処理を繰り返す。
1フレーム分の録画データが30ミリ秒周期でレコーダから送られ、ボックスで端末用のデータにブロック化され、ブロック単位で端末に送られる。
タスク | 処理 |
---|---|
レコーダ制御 |
|
エンコーダ |
|
無線LAN制御 |
|
【インターネット経由の予約機能の追加】
インターネットを経由して番組録画予約を行う機能の追加を行うことになった。
端末が番組録画予約データを電子メール(以下、メールという)でボックス宛てに送ると、ボックスがメールを受信し、番組録画予約データを取り出して番組録画予約を行い、予約完了、予約エラーなどの処理結果をメールで端末に返信することにした。予約機能追加時のシステムの構成を図2に示す。

端末のアプリには、番組録画予約データを暗号化してメールで送信する機能と、ボックスで処理された結果をメールで受信する機能を追加した。
ボックスには、5分間隔でメールの有無をチェックする機能をeタスクに追加した。さらに、fタスクに、受信したメールから番組録画予約データを取り出して番組予約タスクに通知する機能及び処理結果のメールを生成して送信する機能を追加した。