応用情報技術者過去問題 令和4年春期 午後問7
⇄問題文と設問を画面2分割で開く⇱問題PDF問7 組込みシステム開発
ワイヤレス防犯カメラの設計に関する次の記述を読んで,設問1~4に答えよ。
I社は,有線の防犯カメラを製造している。有線の防犯カメラの設置には通信ケーブルの配線,電源の電気工事などが必要である。そこで,充電可能な電池を内蔵して,太陽電池と接続することで,外部からの電力の供給が不要なワイヤレス防犯カメラ(以下,ワイヤレスカメラという)を設計することになった。
ワイヤレスカメラは,人などの動体を検知したときだけ,一定時間動画を撮影する。撮影の開始時にスマートフォン(以下,スマホという)に通知する。また,スマホから要求することで,現在の状況をスマホで視聴することができる。
〔ワイヤレスカメラのシステム構成〕
ワイヤレスカメラのシステム構成を図1に示す。ワイヤレスカメラはWi-Fiルータを介してインターネットと接続し,サーバ及びスマホと通信を行う。
ワイヤレスカメラには,自動撮影及び遠隔撮影の機能がある。
自動撮影のテストを行ったとき,サーバに異常な動画データが送られてくる不具合が発生した。通信及びハードウェアには問題がなかった。
この不具合は,自動撮影中に動体を検知したときに発生しており,バッファの使い方に問題があることが判明した。
そこで,撮影中に新たに動体を検知した時点で,書き込まれているバッファの続きから動画データを書き込み,バッファのdまで書き込んだ場合は,バッファのeに戻る方式のfに変更した。
I社は,有線の防犯カメラを製造している。有線の防犯カメラの設置には通信ケーブルの配線,電源の電気工事などが必要である。そこで,充電可能な電池を内蔵して,太陽電池と接続することで,外部からの電力の供給が不要なワイヤレス防犯カメラ(以下,ワイヤレスカメラという)を設計することになった。
ワイヤレスカメラは,人などの動体を検知したときだけ,一定時間動画を撮影する。撮影の開始時にスマートフォン(以下,スマホという)に通知する。また,スマホから要求することで,現在の状況をスマホで視聴することができる。
〔ワイヤレスカメラのシステム構成〕
ワイヤレスカメラのシステム構成を図1に示す。ワイヤレスカメラはWi-Fiルータを介してインターネットと接続し,サーバ及びスマホと通信を行う。
- カメラ部はカメラ及びマイクから構成される。動画用のエンコーダを内蔵しており,音声付きの動画データを生成する。
- 動体センサは人体などが発する赤外線を計測して,赤外線の量の変化で人などの動体を検知する。
- 通信部はWi-FiでWi-Fiルータを介してサーバ及びスマホと通信する。
- 制御部は,カメラ部,動体センサ及び通信部を制御する。
ワイヤレスカメラには,自動撮影及び遠隔撮影の機能がある。
- 自動撮影
- 動体を検知すると撮影を開始する。撮影を開始したとき,スマホに撮影を開始したことを通知する。
- 撮影を開始してからTa秒間撮影する。ここで,Taはパラメータである。
- 撮影した動画データは,一時的に制御部のバッファに書き込まれる。このとき,動画データはバッファの先頭から書き込まれる。Ta秒間の撮影が終わるとバッファの動画データはサーバに送信される。
- 撮影中に新たに動体を検知すると,バッファにあるその時点までの動画データをサーバに送信し始めると同時に,更にTa秒間撮影を行う。このとき,動画データはバッファの先頭から書き込まれる。
- 遠隔撮影
- スマホから遠隔撮影開始が要求されると撮影を開始する。
- 撮影した動画データはスマホに送信され,そのままスマホで視聴することができる。
- スマホから遠隔撮影終了が要求される,又は撮影を開始してから60秒経過すると撮影を終了する。
- 撮影中に再度,遠隔撮影開始が要求されると,その時点から60秒間又は遠隔撮影終了が要求されるまで,撮影を続ける。
- ワイヤレスカメラとスマホが通信するときに通信障害が発生すると,データの再送は行わず,障害発生中の送受信データは消滅するが,撮影は続ける。
- 状態
ワイヤレスカメラの状態を表1に示す。 - イベント
状態遷移のトリガとなるイベントを表2に示す。 - 処理
状態遷移したときに行う処理を表3に示す。それぞれのタイマは新たに設定されると,直前のタイマ要求は取り消される。
自動撮影のテストを行ったとき,サーバに異常な動画データが送られてくる不具合が発生した。通信及びハードウェアには問題がなかった。
この不具合は,自動撮影中に動体を検知したときに発生しており,バッファの使い方に問題があることが判明した。
そこで,撮影中に新たに動体を検知した時点で,書き込まれているバッファの続きから動画データを書き込み,バッファのdまで書き込んだ場合は,バッファのeに戻る方式のfに変更した。
設問1
時刻t1に動体を検知して自動撮影を開始した。時刻t1から時刻t2まで途切れることなく自動撮影を続けており,時刻t2に最後の動体を検知した。このときの自動撮影は何秒間行われたか。時間を表す式を答えよ。ここで,処理の遅延及び通信の遅延は無視できるものとする。
解答入力欄
解答例・解答の要点
- (t2-t1)+Ta
解説
ワイヤレスカメラの機能は「自動撮影」と「遠隔撮影」があり、この設問では「自動撮影」について問われています。〔ワイヤレスカメラの機能〕の自動撮影の説明と照らし合わせながら、時系列に沿って自動撮影が行われていた時間を考えていきます。
まず、時刻t1より前については動体が検知されていません。自動撮影の説明に「動体を検知してから自動撮影を開始する」より自動撮影は行われていません。
次に動体を検知した時刻t1から時刻t2までについては、問題文より自動撮影が行われています。
最後に時刻t2以降について、「時刻t2に最後の動体を検知した」とあることから、自動撮影の説明「撮影中に新たに動体を検知すると,…更にTa秒間撮影を行う」より、時刻t2からTa秒間の撮影が行われた後、自動撮影は終了します。以上より、時刻t1から時刻t2までの時間(t2-t1[秒])にTa[秒]を加えた「(t2-t1)+Ta」が撮影時間を表す式となります。
∴(t2-t1)+Ta
まず、時刻t1より前については動体が検知されていません。自動撮影の説明に「動体を検知してから自動撮影を開始する」より自動撮影は行われていません。
次に動体を検知した時刻t1から時刻t2までについては、問題文より自動撮影が行われています。
最後に時刻t2以降について、「時刻t2に最後の動体を検知した」とあることから、自動撮影の説明「撮影中に新たに動体を検知すると,…更にTa秒間撮影を行う」より、時刻t2からTa秒間の撮影が行われた後、自動撮影は終了します。以上より、時刻t1から時刻t2までの時間(t2-t1[秒])にTa[秒]を加えた「(t2-t1)+Ta」が撮影時間を表す式となります。
∴(t2-t1)+Ta
設問2
スマホから要求を行い動画の視聴を開始した。その10秒後に送受信の通信障害が20秒間発生した。通信障害が発生してから5秒後にスマホから遠隔撮影開始を要求した。スマホでの視聴が終了するのは視聴を開始してから何秒後か。整数で答えよ。ここで,処理の遅延及び通信の遅延は無視できるものとする。
解答入力欄
- 秒後
解答例・解答の要点
- 60
解説
遠隔撮影について問われているので、〔ワイヤレスカメラの機能〕の遠隔撮影の説明と照らし合わせながら考えていきます。
まず、撮影を開始した時点では、遠隔撮影の終了は撮影開始後60秒後です。
次に、通信障害の発生から5秒後にスマホから遠隔撮影開始が要求されていますが、通信障害中のためカメラ側はこの要求を受け取ることができません。
通信障害中もカメラ側の撮影は続きます。通信障害中のデータの再送は行われないので、スマホは通信障害中の動画データを受信せず、通信障害の復旧以降の動画データをリアルタイムに受信することになります。
以上より、カメラ側は撮影開始後に遠隔撮影開始要求を受信せず、撮影が停止することもないため、遠隔撮影が終了するタイミングは撮影開始時点から変わりません。すなわち、撮影開始後60秒後に撮影が終了します。また、スマホは動画データをリアルタイムに受信するので、カメラの撮影が終了すると同時にスマホでも撮影終了時の動画データを受信して視聴が終了します。したがって、スマホでの視聴が終了するのは視聴を開始してから「60」秒後となります。
∴60
まず、撮影を開始した時点では、遠隔撮影の終了は撮影開始後60秒後です。
次に、通信障害の発生から5秒後にスマホから遠隔撮影開始が要求されていますが、通信障害中のためカメラ側はこの要求を受け取ることができません。
通信障害中もカメラ側の撮影は続きます。通信障害中のデータの再送は行われないので、スマホは通信障害中の動画データを受信せず、通信障害の復旧以降の動画データをリアルタイムに受信することになります。
以上より、カメラ側は撮影開始後に遠隔撮影開始要求を受信せず、撮影が停止することもないため、遠隔撮影が終了するタイミングは撮影開始時点から変わりません。すなわち、撮影開始後60秒後に撮影が終了します。また、スマホは動画データをリアルタイムに受信するので、カメラの撮影が終了すると同時にスマホでも撮影終了時の動画データを受信して視聴が終了します。したがって、スマホでの視聴が終了するのは視聴を開始してから「60」秒後となります。
∴60
設問3
〔ワイヤレスカメラの状態遷移〕について,(1)~(3)に答えよ。
- 図2の状態遷移図の状態S1,S2に入れる適切な状態名を,表1中の状態名で答えよ。
- 図2中のa,bに入れる適切なイベント名を,表2中のイベント名で答えよ。
- 図2中のcに入れる適切な処理を,表3中の項番で全て答えよ。
解答入力欄
- S1:
- S2:
- a:
- b:
- c:
解答例・解答の要点
- S1:遠隔撮影状態
- S2:自動撮影状態
- a:遠隔撮影開始イベント
- b:自動撮影タイマ通知イベント
- c:①,③,⑦
解説
- 図2の状態遷移図には既に「待機状態」が記載されています。したがってS1及びS2には、表1の状態のうち、「自動撮影状態」「遠隔撮影状態」「マルチ撮影状態」のいずれかが入ります。
状態遷移図より、待機状態から遷移する状態はS1・S2です。また、S3はS1・S2から遷移し、待機状態からは遷移しません。「マルチ撮影状態」は「自動撮影と遠隔撮影を同時に行っている状態」ですから、S1・S2には「自動撮影状態」「遠隔撮影状態」のいずれかが入り、S3は「マルチ撮影状態」であるとわかります。
S1に注目すると、S1から待機状態へと遷移するイベントに「遠隔撮影終了イベント」と「遠隔撮影タイマ通知イベント」があることから、S1に入るのは「遠隔撮影状態」となります。またS2に注目すると、S2から待機状態へと遷移するイベントに「自動撮影タイマ通知イベント」があることから、S2に入るのは「自動撮影状態」となります。
∴S1:遠隔撮影状態
S2:自動撮影状態 - 〔aについて〕
前述のとおり、[a]に入るのは待機状態、つまり撮影していない状態から遠隔撮影を始める契機となるイベントが入ります。〔ワイヤレスカメラの機能〕(2)遠隔撮影の説明より、遠隔撮影が始まる契機は「スマホからの遠隔撮影開始の要求」です。このとき発生するイベントは、表2のうち「遠隔撮影開始イベント」です。したがって、これが答えとなります。
∴a=遠隔撮影開始イベント
〔bについて〕
[b]に入るのはマルチ撮影状態から遠隔撮影状態に遷移する、すなわち「自動撮影が終了する」ときのイベントが入ります。〔ワイヤレスカメラの機能〕(1)自動撮影の説明より、自動撮影が終了するのは「Ta秒間の撮影が終わったとき」です。このとき発生するイベントは、表2のうち「自動撮影タイマ通知イベント」です。したがって、これが答えとなります。
∴b=自動撮影タイマ通知イベント - 〔cについて〕
空欄に当てはまるのは、待機状態から自動撮影状態への遷移、つまり「自動撮影の開始」をするときに行う処理です。
表3の各処理について、自動撮影の開始時に実行すべき処理かどうかを考えていきます。- 処理内容に「撮影を開始するとき~」とあるので、①は自動撮影の開始時に実行すべき処理です。
- 撮影を終了する遷移ではないので、②の実行は不要です。
- 〔ワイヤレスカメラの機能〕(1)に「撮影を開始したとき,スマホに撮影を開始したことを通知する」とあるので、③は自動撮影の開始時に実行すべき処理です。
- バッファへの書き込みは、撮影を開始した「後」に行われる処理です。よって、④の実行は不要です。
- 〔ワイヤレスカメラの機能〕(1)より、サーバへの動画データ送信は「撮影中に新たに動体を検知したとき」と「撮影が終わったとき」にのみ行われる処理です。よって、⑤の実行は不要です。
- 自動撮影ではスマホへの送信を行わないので、⑥の実行は不要です。
- 〔ワイヤレスカメラの機能〕(1)に「撮影を開始してからTa秒間撮影する」とあるので、Ta秒後に撮影を終了するためのトリガーとして、撮影開始時にタイマを設定する必要があります。よって、⑦は自動撮影の開始時に実行すべき処理です。
- 自動撮影では遠隔撮影時の60秒タイマを使用しないので、⑧の実行は不要です。
∴c=①,③,⑦
設問4
〔サーバに送られた動画データの不具合〕について,(1)~(3)に答えよ。
- 不具合が発生した理由を40字以内で述べよ。
- 本文中のd,eに入れる適切な字句を答えよ。
- 本文中のfに入れるバッファの名称を答えよ。
解答入力欄
- d:
- e:
- f:
解答例・解答の要点
- 書込みと読込みが同時に行われ,バッファの先頭のデータが上書きされた (33文字)
- d:終端
- e:始端
- f:リングバッファ
解説
- 動画データに不具合が発生したのは「自動撮影中に動体を検知したとき」です。〔ワイヤレスカメラの機能〕(1)より、自動撮影中に新たに動体を検知すると下記の2つが行われます。
- バッファにあるその時点までの動画データをサーバに送信する
- 更にTa秒間撮影を行い、動画データをバッファの先頭から書き込む
∴書込みと読込みが同時に行われ,バッファの先頭のデータが上書きされた - 〔サーバに送られた動画データの不具合〕では、不具合への対策として「動体を検知した時点で,書き込まれているバッファの続きから動画データを書き込み…」とあります。
通常のバッファではサイズに限度がありバッファの終端を超えては書き込めないため、バッファの途中から書込みを開始すると記録できるデータサイズが小さくなります。これだと、動体を検知し続けた場合にバッファの終端に達してしまい、それ以上書き込みができなくなる可能性があります。これを防ぐには、バッファの「d:終端」と「e:始端」が論理的に連結された構造のバッファを用いればよいです。
∴d=終端
e=始端 - (2)の構造をもつバッファを、リングバッファ(循環バッファ)といいます。リングバッファは環状構造になっており、バッファの終端までデータを格納した後、バッファの先頭に戻ってデータ書き込む方式です。終端と始端が連結されることで、終端に達しても続けて始端から書込みを行うことができます。本問のように読込みと書込みが同時に行われるシステムに適した構造です。∴f=リングバッファ