エンベデッドシステムスペシャリスト 2014年 午後1 問02
省エネ対応の自動販売機に関する次の記述を読んで、設問1~3に答えよ。
B社は、省エネ機能搭載の自動販売機(以下、自販機という)の開発を行っている。自販機の外観とシステム構成を、図1に示す。

〔自販機の機能概要〕
(1) 省エネ機能
・人感センサ(以下、センサという)は50ミリ秒ごとに起動され、起動されると1ミリ秒間動作する。自販機は、センサが自販機前にいる人を検知すると主LED照明を点灯し、人を検知しなくなってから1秒後に主LED照明を消灯する。
・日の入りから日の出までの夜間、自販機は、補助LED照明を点灯する。
(2) 販売機能
① 投入口にコインが投入されると、投入金額を金額表示部に表示し、投入金額に応じて、販売可能な商品の販売LEDを点灯する。
② 販売LEDが点灯している商品の選択ボタンが押されると、点灯中の販売LEDを消灯する。このとき、釣銭が不要な場合は、金額表示部に0を表示した後、商品を取出口に搬送する。釣銭が必要で、その釣銭がある場合は、釣銭金額を金額表示部に表示した後、商品を取出口に搬送し、釣銭を返却口に出す。釣銭が不足している場合は、金額表示部の表示を消灯した後、投入金額分のコインを返却口に出す。
③ 商品を取出口に搬送した後、0.5秒経過したら金額表示部を消灯する。
④ 品切れになった場合は、品切LEDを点灯し、その商品の販売を停止する。
⑤ 返却レバーが操作された場合は、投入金額を返却口に出した後、金額表示部を消灯する。
(3) 集計・設定機能
・自販機に集計端末が接続されると、集計端末からの指示に従って売上データを集計端末に送信する。また、集計端末から、年月日、現在時刻、管理会社への売上データ送信時刻、単価又は商品温度の設定データを受け取って、保存する。
・売上データ送信時刻になると、専用回線経由で管理会社に、売上金額、商品温度及び品切れ情報を送信する。
〔自販機のハードウェア構成〕
自販機のハードウェア構成を図2に、ハードウェアの主な構成要素の概要を表1に示す。


〔シリアルバスの機能〕
・制御部は、シリアルバスを通じて、10ミリ秒ごとにユニットの一つと通信を行い、30ミリ秒間で全てのユニットとの通信を行う。
・制御部がユニットにデータを送信した後、ユニットは制御部に必ず応答を返信する。制御部は、この動作を三つのユニットに対して繰り返し行う。
・ユニットは、自身の異常を検知した場合、制御部への送信を停止する。制御部は、あるユニットから応答がない場合、そのユニットとの次回の通信時に同じデータを再送する。再送しても応答がなければ、制御部は、そのユニットが正常に動作していないと判断する。
〔制御部のソフトウェア構成〕
制御部のOSには、リアルタイムOSを使用している。タスクの機能概要を表2に、制御部のタスク構成を図3に示す。

設問1:自販機のシステムについて、(1)~(3)に答えよ。
設問1(1)
問題文を見るセンサが人を検知すると、主LED照明を点灯する。点灯してから消灯するまでの最小時間は何秒か。答えは小数第3位を四捨五入して、小数第2位まで求めよ。ここで、ソフトウェアの動作時間は無視できるものとする。
模範解答
1.05
解説
解答の導き方
-
センサは「50ミリ秒ごとに起動」されます。人を検知して主LED照明が点灯した直後に人がいなくなったとしても、人がいなくなったことをセンサが確認できるのは、次にセンサが起動する時点です。したがって、点灯から最初の非検知を確認するまでには、最も早い場合でも50ミリ秒かかります。
-
表2の照明管理タスクには、センサが人を検知しなくなってから、センサ起動の通知を20回受け取り、毎回検知しなかった場合に主LED照明を消灯するとあります。センサは50ミリ秒ごとに起動するため、この20回分にかかる時間は、ミリ秒、つまり1秒です。
-
したがって、点灯から消灯までの最小時間は、最初の非検知を確認するまでの50ミリ秒と、その後の20回分の1秒を合わせた時間です。合計は1,050ミリ秒なので、秒に直すと1.05秒です。センサの1ミリ秒の動作時間を加味しても、小数第2位への四捨五入後の値は変わりません。
誤りやすいポイント
- 非検知を20回確認する時間だけを計算し、次のセンサ起動までの50ミリ秒を加え忘れることがあります。点灯の直後に人がいなくなっても、非検知が確認されるのは次のセンサ起動時なので、最小時間でもこの50ミリ秒は含まれます。
- センサの起動間隔と、センサが1回起動したときの動作時間を混同しないようにします。起動間隔は50ミリ秒です。
- ミリ秒のまま計算した後、秒に直すのを忘れないようにします。1,000ミリ秒は1秒です。
FAQ
Q: なぜ最初の非検知確認までに50ミリ秒かかるのですか?
A: センサは50ミリ秒ごとに起動するため、人が検知された直後にいなくなった場合でも、次の起動までは非検知を確認できないからです。
A: センサは50ミリ秒ごとに起動するため、人が検知された直後にいなくなった場合でも、次の起動までは非検知を確認できないからです。
Q: センサの動作時間である1ミリ秒も加える必要がありますか?
A: 1ミリ秒はセンサが起動したときの動作時間で、50ミリ秒ごとの起動間隔とは別の周期ではありません。端点で加味しても、小数第2位までの答えは変わりません。
A: 1ミリ秒はセンサが起動したときの動作時間で、50ミリ秒ごとの起動間隔とは別の周期ではありません。端点で加味しても、小数第2位までの答えは変わりません。
関連キーワード: 周期処理、サンプリング周期、人感センサ、時間計算、LED照明
設問1(2)
問題文を見る夜間は、補助LED照明を点灯する。このとき自販機は、時刻を基にどのようにして夜間と判断すればよいか。35字以内で述べよ。
模範解答
日の出及び日没の時刻を年月日から計算し、時刻を基に夜間を判断する。
解説
解答の導き方
-
補助LED照明を点灯する時間帯は、本文で「日の入りから日の出までの夜間」と定められています。したがって、夜間かどうかは、日の入りと日の出を境界にして判断します。
-
日の出と日の入りの時刻は日付によって変わるため、固定の時刻を境界にするのではなく、年月日を基にその日の日の出及び日の入りの時刻を求めます。表2には「時刻を管理する」とあり、また、集計端末から年月日や現在時刻を受け取る機能も示されています。
-
求めた日の出・日の入りの時刻と現在時刻を比較します。現在時刻が日の入り以降、又は日の出前であれば夜間と判断できます。夜間は日付をまたぐため、条件は「日の入り以降」と「日の出前」のどちらかを満たすことです。
誤りやすいポイント
- 夜間を「18時から翌朝6時まで」のような固定時刻で決めることです。日の出・日の入りの時刻は日付によって変わるため、本文の条件どおりに判定できません。
- 現在時刻だけを確認し、年月日を考慮しないことです。年月日を基に日の出・日の入りの時刻を求めてから、現在時刻と比較します。
- 夜間の条件を「日の入り以降、かつ日の出前」とすることです。夜間は日付をまたぐため、「日の入り以降」又は「日の出前」のいずれかで判定します。
FAQ
Q: なぜ年月日を使うのですか?
A: 日の出と日の入りの時刻が日付によって変わるためです。現在時刻だけでなく、その日の日の出・日の入りの時刻を基準にする必要があります。
A: 日の出と日の入りの時刻が日付によって変わるためです。現在時刻だけでなく、その日の日の出・日の入りの時刻を基準にする必要があります。
Q: 夜間と判定する時間帯は、どのように考えればよいですか?
A: 日の入り以降から、翌日の日の出前までです。日付をまたぐので、日の入り後か日の出前のどちらかを満たすかで判断します。
A: 日の入り以降から、翌日の日の出前までです。日付をまたぐので、日の入り後か日の出前のどちらかを満たすかで判断します。
関連キーワード: 時刻管理、リアルタイムクロック、時刻比較、日付計算、照明制御
設問1(3)
問題文を見る制御部は、各ユニットが正常に動作していることを、各ユニットからの応答を利用して確認している。それに対し、各ユニットは、制御部が正常に動作していることを、どのように確認すればよいか。35字以内で述べよ。
模範解答
一定間隔で制御部からデータが受信できていることを確認する。
解説
解答の導き方
-
まず、問題文では制御部が「10ミリ秒ごとにユニットの一つと通信を行い、30ミリ秒間で全てのユニットとの通信を行う」とされています。つまり、各ユニットには制御部から一定の周期でデータが届く仕組みです。
-
また、制御部はユニットにデータを送信し、ユニットはその後に応答を返します。ユニットから制御部の正常性を確認する場合は、制御部への応答が返ってくるかではなく、制御部からのデータが周期どおり届いているかを見ればよいと分かります。
-
送信バッファにデータがない場合でも、シリアルタスクは「そのことを示すデータ」を送信します。そのため、指示がないときも、ユニットは制御部からの通信が続いているかを確認できます。したがって、一定間隔で制御部からデータを受信できていることを確認します。
誤りやすいポイント
- 制御部がユニットの応答を使って異常を確認する仕組みと、ユニットが制御部の正常性を確認する方法を混同しないようにします。
- ユニットが自分の異常を検知するだけでは、制御部が動作しているかは分かりません。確認すべきなのは、制御部からの周期的なデータ受信です。
- 送信すべき指示がないとデータも届かない、と考えないようにします。送信バッファが空の場合も、その状態を示すデータが送られます。
FAQ
Q: 制御部から有効な指示が届かないときは、ユニットは異常と判断しますか?
A: いいえ。指示がなくても、そのことを示すデータが届いていれば、制御部との通信が続いていることを確認できます。
A: いいえ。指示がなくても、そのことを示すデータが届いていれば、制御部との通信が続いていることを確認できます。
Q: なぜ受信の有無を一定間隔で確認するのですか?
A: 制御部と全ユニットとの通信が一定周期で繰り返されるためです。予定された周期でデータを受信できないことを、制御部の異常の検知に利用できます。
A: 制御部と全ユニットとの通信が一定周期で繰り返されるためです。予定された周期でデータを受信できないことを、制御部の異常の検知に利用できます。
Q: ユニットが応答を返すだけでは、制御部の正常性を確認できませんか?
A: 応答を返したことだけでは、制御部から継続して通信が行われているとは確認できません。制御部からのデータ受信を監視する必要があります。
A: 応答を返したことだけでは、制御部から継続して通信が行われているとは確認できません。制御部からのデータ受信を監視する必要があります。
関連キーワード: 周期通信、通信監視、応答確認、タイムアウト、異常検知
設問2:自販機のソフトウェアについて、(1)~(3)に答えよ。
設問2(1)
問題文を見る模範解答
a:管理会社
b:売上管理
c:商品管理
解説
解答の導き方
まず、a は「設定時刻になると」データ送信を依頼されるタスクです。表2の「管理会社」タスクは、データ送信の通知を受け取ると、送信に必要な情報を集めて「専用回線」タスクに通知します。したがって、設定時刻に送信の準備を始める役割に当たる a は「管理会社」です。
次に、b と c は、投入金額を受け取った販売タスクが問い合わせる相手です。販売できる商品を判断するには、商品の単価と品切れの有無の両方が必要です。
表2の「売上管理」タスクは「単価を保持する」ため、商品の単価を問い合わせる相手です。一方、「商品管理」タスクは品切れの確認を行い、その情報を依頼元に通知します。したがって、単価を問い合わせる b は「売上管理」、品切れの有無を問い合わせる c は「商品管理」と判断できます。なお、設問文のとおり、b と c は逆の順でも構いません。
誤りやすいポイント
- a を「専用回線」としないようにします。「管理会社」タスクが送信する情報を集め、「専用回線」タスクが管理会社との通信を行うという役割の違いがあります。
- 販売可能かどうかの判断には、投入金額と単価の比較だけでなく、品切れでないことの確認も必要です。そのため、問い合わせ先は一つではありません。
- 「商品管理」は商品温度だけを扱うタスクではありません。品切れの確認と、その結果の通知も担当します。
FAQ
Q: なぜ単価は「売上管理」タスクに問い合わせるのですか?
A: 表2で「売上管理」タスクは単価を保持し、単価の通知要求を受けて依頼元に通知すると説明されているためです。
A: 表2で「売上管理」タスクは単価を保持し、単価の通知要求を受けて依頼元に通知すると説明されているためです。
Q: 品切れの有無は「販売」タスクだけで判断できませんか?
A: 「販売」タスク自身が商品保管ユニットの在庫状態を保持するとは書かれていません。表2では「商品管理」タスクが品切れを確認し、その情報を依頼元に通知します。
A: 「販売」タスク自身が商品保管ユニットの在庫状態を保持するとは書かれていません。表2では「商品管理」タスクが品切れを確認し、その情報を依頼元に通知します。
Q: b と c の順番を逆にしてもよいのですか?
A: 設問文で順不同と指定されています。単価を得る役割と品切れ情報を得る役割の両方が含まれていれば、順番は問いません。
A: 設問文で順不同と指定されています。単価を得る役割と品切れ情報を得る役割の両方が含まれていれば、順番は問いません。
関連キーワード: タスク分割、責務分担、タスク間通信、要求応答、状態管理
設問2(2)
問題文を見る模範解答
d:販売LEDを点灯する指示を出す。
e:品切れでなく、かつ、投入金額が単価以上
f:売上金額を、売上管理タスク
g:センサが人を検知し、主LED照明が消灯中なら点灯する。
解説
解答の導き方
表2の空欄は、販売タスクと照明管理タスクが、どの条件で何を行うかを整理すると導けます。
-
d:販売可能な商品の販売LEDを点灯する指示です。
コイン投入後、販売タスクは商品管理タスクに品切れの有無を、売上管理タスクに単価を問い合わせます。表2には「品切れでなく、かつ、投入金額以下の単価の商品がある場合」とあります。つまり、品切れではなく、投入金額で購入できる商品が見つかった場合に、その商品を選べると知らせる必要があります。そのため、販売LEDを点灯する指示を出します。 -
e:選択された商品が購入可能かを確認する条件です。
商品が選択されたとき、販売タスクは販売LEDを消灯する指示を出します。ただし、選択された商品が品切れでなく、投入金額が単価以上であることが条件です。これは、コイン投入時に販売可能と判断された商品でも、選択時に購入条件を満たしていることを確かめるためです。 -
f:売上金額を売上管理タスクに通知します。
表2の売上管理タスクは、売上金額を集計します。したがって、販売タスクは売上金額を売上管理タスクに通知します。 -
g:人を検知し、主LED照明が消灯中なら点灯します。
自販機の機能概要では、人を検知すると主LED照明を点灯します。表2には、照明管理タスクがセンサ起動の通知を受け取ることと、非検知が続いた場合に主LED照明を消灯することが示されています。これに対応する点灯側の動作は、センサが人を検知したとき、主LED照明が消灯中であれば点灯することです。点灯中かどうかも条件に含めることで、消灯から点灯への切替えが必要な場合に限って点灯指示を出せます。
誤りやすいポイント
- dは、コインが投入された時点で無条件に販売LEDを点灯するのではありません。品切れでなく、投入金額で購入できる商品が対象です。
- eの金額条件は、投入金額が単価以上であることです。投入金額が単価より小さい場合は購入できません。
- fは、売上金額を集計するタスクに通知する内容です。通知先と通知するデータの両方を確認してください。
- gでは、人の検知だけでなく、主LED照明が消灯中であることも条件です。消灯側の条件と取り違えないようにしましょう。
FAQ
Q: 「投入金額が単価以上」と「単価が投入金額以下」は、違う条件ですか?
A: 同じ条件です。どちらも、投入金額で商品の単価を支払えることを表します。
A: 同じ条件です。どちらも、投入金額で商品の単価を支払えることを表します。
Q: gでは、人を検知したら常に点灯指示を出すのですか?
A: いいえ。主LED照明が消灯中の場合に点灯します。点灯状態かどうかも確認します。
A: いいえ。主LED照明が消灯中の場合に点灯します。点灯状態かどうかも確認します。
Q: 非検知が続いた場合の動作も、gに含まれますか?
A: 含まれません。gは点灯側の動作です。非検知が続いた場合の消灯動作は、表2に別に記載されています。
A: 含まれません。gは点灯側の動作です。非検知が続いた場合の消灯動作は、表2に別に記載されています。
関連キーワード: イベント駆動処理、タスク間通信、条件分岐、状態管理、センサ制御
設問2(3)
問題文を見る各タスクが通知するデータについて検討している。
(a) 販売タスクがシリアルタスクに通知している情報を、商品搬送、販売LEDの点灯、販売LEDの消灯以外で四つ答えよ。
(b) 商品管理タスクが、集計端末タスクから入手している情報を答えよ。
模範解答
(a):①・金額を金額表示部に表示する指示
②・金額表示部を消灯する指示
③・釣銭を出す指示
④・品切LEDを点灯する指示
(b):商品温度の設定データ
解説
解答の導き方
(a) まず、図3では販売タスクとシリアルタスクが双方向につながっています。また、表2のシリアルタスクには、送信バッファからユニット向けの指示を取り出して送信するとあります。したがって、販売タスクがシリアルタスクに通知する情報には、各ユニットを制御するための指示が含まれます。
表2の販売タスクの記述から、指定された「商品搬送」「販売LEDの点灯」「販売LEDの消灯」を除き、ほかの指示を探します。
- 釣銭の要否を判断する場面では、金額表示部に0や釣銭金額を表示します。この処理に対応する指示は、金額を金額表示部に表示する指示です。
- 釣銭不足時や、商品搬送後、返却レバー操作時には、金額表示部の表示を消灯します。発生する場面は複数ありますが、指示の種類としては金額表示部を消灯する指示です。
- 商品を搬送した後、釣銭が必要な場合は、釣銭を返却口に出す指示を出します。
- 品切れを確認した場合は、品切LEDを点灯する指示を出します。
これらは、販売タスクからシリアルタスクを経由してユニットに伝える制御指示として整理できます。
(b) 商品管理タスクの役割を確認すると、表2には「ブロックごとの商品温度の設定値を保存する」とあります。一方、集計端末タスクは、受け取った設定データを関係タスクに通知します。図3では集計端末タスクから商品管理タスクへのつながりも示されています。
このため、商品管理タスクが集計端末タスクから入手するのは、保存・変更の対象となる商品温度の設定データです。現在の商品温度そのものではなく、設定する温度の情報である点に注意します。
誤りやすいポイント
- 商品温度の設定データと、商品保管ユニットで確認する現在の商品温度を混同しないようにします。商品管理タスクが保存するのは設定値です。
- 金額表示部の消灯は複数のタイミングで発生しますが、設問で問われる情報としては「金額表示部を消灯する指示」と整理します。
- 販売LEDの点灯・消灯は設問で除外されています。ほかの指示を挙げる際に、除外条件を見落とさないようにします。
FAQ
Q: 金額表示部を消灯する指示は、発生タイミングごとに別の情報として数えますか?
A: 表2では複数の契機が示されていますが、いずれも同じ金額表示部を消灯する指示として整理できます。
A: 表2では複数の契機が示されていますが、いずれも同じ金額表示部を消灯する指示として整理できます。
Q: 商品管理タスクが扱う商品温度は、実測値ですか?
A: 集計端末タスクから入手するのは商品温度の設定データです。表2では、商品管理タスクは設定値を保存し、その変更を商品保管ユニットに指示します。
A: 集計端末タスクから入手するのは商品温度の設定データです。表2では、商品管理タスクは設定値を保存し、その変更を商品保管ユニットに指示します。
Q: シリアルタスクは、販売タスクから受け取った指示をどう扱いますか?
A: 送信バッファから通信先ユニット向けの指示を取り出し、ユニットとの通信を行います。
A: 送信バッファから通信先ユニット向けの指示を取り出し、ユニットとの通信を行います。
関連キーワード: タスク間通信、シリアル通信、出力指示、設定データ、状態管理
設問3:自販機の売上金額などの集計、照明制御及び商品温度管理の方法に関して、次のような機能を追加したい。その追加内容について、(1)、(2)に答えよ。
管理会社が売上金額などの集計を迅速に行うために、自販機が専用回線経由で管理会社から情報の送信の指示を受け取ると、売上金額、商品温度及び品切れの有無の情報を管理会社に送信する機能を追加したい。さらに、きめ細かく省エネを行うために、専用回線経由での商品温度の設定機能、又は夜間でない時間の主LED照明の動作停止機能も自販機に追加したい。
機能追加は、専用回線タスク、管理会社タスク及び自販機管理タスクの変更だけで対応したい。
設問3(1)
問題文を見る管理会社タスク、専用回線タスク及び自販機管理タスクの変更内容を表3に示す。表3中のh~kに入れる適切なタスク名又は字句を答えよ。


模範解答
h:情報の送信
i:商品温度の設定
j:主LED照明の動作停止
k:商品管理
解説
解答の導き方
表3の空欄は、管理会社から届く指示の種類と、その指示を受けて処理するタスクを対応させると判断できます。
-
まず、追加する機能には、管理会社から指示を受けたときに「売上金額、商品温度及び品切れの有無」の情報を送信するものがあります。
専用回線タスクが受け取るのは、送信する情報そのものではなく、情報を送るよう求める指示です。その指示を受けた管理会社タスクは必要な情報を集め、専用回線タスクに渡します。このため、指示の内容は「情報の送信」です。 -
次に、専用回線経由で商品温度を設定する機能を考えます。商品管理タスクは商品温度の設定値を保存し、設定変更があると商品保管ユニットに変更後の設定を指示します。したがって、管理会社タスクは商品温度の設定指示を商品管理タスクに通知します。
この対応から、指示の内容は「商品温度の設定」、通知先は「商品管理」と分かります。 -
最後に、夜間でない時間に主LED照明の動作を停止する機能を考えます。表3では、管理会社タスクから通知を受けた自販機管理タスクが、夜間でない時間に照明管理タスクへの通知を停止します。したがって、専用回線タスクが受け取る指示は「主LED照明の動作停止」であり、その指示は管理会社タスクを経由して自販機管理タスクに伝えます。
誤りやすいポイント
- 「情報の送信」は、送信するデータの名称ではなく、管理会社から届く指示の内容です。指示を受けた後にデータを集めるのが管理会社タスクです。
- 商品温度の設定先を売上管理タスクと取り違えないようにします。商品温度の設定値を保存し、変更を指示するのは商品管理タスクです。
- 主LED照明の動作停止指示を照明管理タスクへ直接通知するのではありません。表3では、管理会社タスクから自販機管理タスクへ通知し、自販機管理タスクが照明管理タスクへの通知を停止します。
FAQ
Q: 「情報の送信」の指示を受けたとき、専用回線タスクが情報を集めるのですか?
A: いいえ。表3では、管理会社タスクが必要な情報を収集し、専用回線タスクに通知します。専用回線タスクは管理会社との通信を担当します。
A: いいえ。表3では、管理会社タスクが必要な情報を収集し、専用回線タスクに通知します。専用回線タスクは管理会社との通信を担当します。
Q: 商品温度の設定指示を商品管理タスクに通知するのはなぜですか?
A: 商品管理タスクが商品温度の設定値を保存し、変更後の設定を商品保管ユニットに指示する役割を持つためです。
A: 商品管理タスクが商品温度の設定値を保存し、変更後の設定を商品保管ユニットに指示する役割を持つためです。
Q: 主LED照明を停止する指示は、なぜ自販機管理タスクに通知するのですか?
A: 表3で、夜間でない時間に照明管理タスクへの通知を止める役割を担うのが自販機管理タスクだからです。
A: 表3で、夜間でない時間に照明管理タスクへの通知を止める役割を担うのが自販機管理タスクだからです。
関連キーワード: タスク間通信、イベント通知、データ収集、設定管理、照明制御
設問3(2)
問題文を見る表3の変更を行い、自販機の動作のテストをしていると、主LED照明の動作に関して不具合が発生した。その不具合の内容を70字以内で述べよ。
模範解答
夜間から夜間でない時刻になるとき、主LED照明が点灯している場合、主LED照明の動作停止の指示を受けると、主LED照明が消灯しない。
解説
解答の導き方
-
まず、通常時に主LED照明が消灯する条件を確認します。照明管理タスクは、「センサ起動の通知を20回受け取り、毎回、人を検知しなかった場合」に主LED照明を消灯します。つまり、主LED照明が点灯中でも、人を検知しない状態のセンサ起動通知を受け続ける必要があります。
-
次に、表3で追加された処理を確認します。管理会社タスクから指示を受けると、夜間でない時間は自販機管理タスクが照明管理タスクへの通知を停止します。これは通知を止める処理であり、主LED照明を消灯する処理ではありません。
-
そのため、夜間から夜間でない時刻に変わったとき、主LED照明が点灯中だと、通知が止まってセンサ起動の通知を受け取れなくなります。人を検知しない状態が続いても、消灯条件である20回の通知を受け取れないため、主LED照明が消灯しません。
誤りやすいポイント
- 「通知を停止する」ことと「主LED照明を消灯する」ことを同じ処理だと考えないようにします。
- 主LED照明が点灯している状態から、追加機能の動作に移る場合を見落とさないようにします。
- 消灯条件は、単に人を検知しないことではなく、人を検知しないセンサ起動の通知を20回受け取ることです。
FAQ
Q: なぜ夜間から夜間でない時刻に変わる場合が問題になるのですか?
A: 夜間中に人を検知して主LED照明が点灯している可能性があり、日中になると照明管理タスクへの通知が止まるためです。
A: 夜間中に人を検知して主LED照明が点灯している可能性があり、日中になると照明管理タスクへの通知が止まるためです。
Q: 通知が止まれば、時間がたつことで自動的に消灯しませんか?
A: 消灯条件は経過時間だけではなく、センサ起動の通知を20回受け取り、その都度人を検知しないことです。通知が止まると、この条件を満たせません。
A: 消灯条件は経過時間だけではなく、センサ起動の通知を20回受け取り、その都度人を検知しないことです。通知が止まると、この条件を満たせません。
Q: 通知を止める前に消灯する処理があれば、この不具合は防げますか?
A: 消灯を明示的に指示してから通知を止めるなど、通知の停止とは別に主LED照明を消灯する処理を設ければ、防止できます。
A: 消灯を明示的に指示してから通知を止めるなど、通知の停止とは別に主LED照明を消灯する処理を設ければ、防止できます。
関連キーワード: 状態遷移、タスク間通知、イベント駆動、LED制御




