応用情報技術者試験 過去問 2014年(平成26年) 春期 午後 問7
園芸用自動給水器
G社は,園芸用自動給水器(以下,給水器という)を開発している。
〔給水器の概要〕
給水器は庭に設置し,設定した時刻に庭の植物に霧状の水を噴射(以下,給水という)する。開発中の給水器の構成を,図1に示す。

給水器は,給水ユニット(以下,ユニットという)を最大4つまで接続することができる。ただし,給水に必要な水圧を維持するために,同時に給水できるのは最大2ユニットまでである。給水器の給水設定は,操作パネルで行う。図2に示すように,操作パネルは表示部とキーから構成される。

一つの給水設定では,ユニット番号,予約番号,給水を開始する時刻(以下,給水時刻という),給水を継続する時間(以下,給水時間という)を入力する(給水時間の単位は"分")。予約番号を指定することで,ユニットごとに1日最大4回まで給水することができる。また,給水時間は最大20分まで設定できる。
〔給水器の組込みソフトウェア〕
給水器の組込みソフトウェアには,リアルタイムOSを用いる。タスクには,実行状態,実行可能状態,待ち状態及び休止状態があり,イベントドリブンによるプリエンプティブ方式で状態遷移が行われる。各タスクの動作内容を,表1に示す。
タスク名 | 動作内容 |
---|---|
初期化 |
|
給水設定 |
|
キースキャン |
|
給水スケジュール |
|
給水弁操作 |
①ユニットに設定された給水弁を開いて,給水を開始する。 ②現在時刻と指定された給水時間から給水終了時刻を算出し,給水終了時刻まで待ち状態に移行する。 ③待ち状態が解除されると,給水弁を閉じて終了する。 |
給水器では,同時に給水できるのは2ユニットまでなので,計数型セマフォを用いて次のように排他制御を行う。
- 初期化タスクにおいて,セマフォの初期値をcに設定する。
- 給水弁操作タスクにおいて,給水弁を開く操作の前にdを獲得する。獲得できたときは給水弁を開き,獲得できないときは獲得できるまで待ち状態に移行する。
〔操作パネルのキースキャン動作〕
図3に示すキースキャン回路を用いて,操作パネルのキーを読み取る。この回路は給水器を制御するMCUに接続されており,MCUに内蔵されている4個の出力ポートで列を選択し,4個の入力ポートを読むことによって,16個のキーの状態を読み取る。

〔機能拡張の検討〕
インターネットを経由して,外出先から給水器の設定を変更したり,状態を監視したりする機能を,給水器に追加することを検討した。この通信はインターネットを経由することから,"通信相手のeを行い,なりすましによる不正な給水器操作を防止する","通信内容が漏えいしないように,通信データをfする"などのセキュリティ対策が必要である。