Skip to content

junghwon/rangeTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RangeTest

ビルド方法

ターミナルにて下記を実行する。

$ make

makeが使えない場合は以下を実行する。

$ gcc -o rangeTest main.c rangeController.c rangeKeyController.c rangeCookModel.c rangeMagnetronModel.c rangeRelayModel.c rangeTimer_Model.c rangeView.c -lpthread

操作方法

  • 調理時間設定

    キーボードで't'を入力する度に、以下の通り調理時間が変更される。
    0秒 → 10秒 → 20秒 → 30秒 → 40秒 → 50秒 → 60秒 → 0秒...
    ※初期値:0秒


  • 調理出力設定

    キーボードで'w'を入力する度に、以下の通り出力が変更される。
    500w → 400w → 300w → 200w → 100w → 500w...
    ※初期値:500w


  • 調理開始

    キーボードで's'を入力すると、調理が開始される。


クラス図

range_class_diagram.pdfを参照。

MVCモデル

本プログラムはMVCモデルパターンに沿って作成されている。
電子レンジ動作のロジックを担当するModel、
表示に関する処理を担当するView、
ユーザー入力及び、ModelとViewに対する制御を担当するControllerから成る。

以下に各クラスとM、V、Cそれぞれの対応を記載する。
・Model:rangeCookModel, rangeMagnetronModel, rangeRelayModel, rangeTimerModel
・View:rangeView
・Controller:rangeController, rangeKeyController

各クラスの役割

rangeController

主にユーザーから見える設定、操作を行う。
属性
・watt          … 電子レンジ出力設定値
・timer         … 調理時間設定値
操作
・startup       … 起動処理を行う。
・wattSetting   … 電子レンジの出力を設定する。
・timerSetting  … 調理時間を設定する。
・start         … 調理を開始する。
・stop          … 調理完了時の処理。
・manager       … 調理工程制御(rangeCookModel)を呼び出す。

rangeKeyController

キーボード入力を制御する。
属性
・keyCode       … 入力されたキーコードの値
操作
・scanKey      … キーボードの入力監視を行う。
・getKey       … キーコードを取得する。

rangeView

表示の制御を行う。
属性
・なし
操作
・startUpDisplay    … 起動時の表示を行う。
・wattDisplay       … 出力設定時の表示を行う。
・timerDisplay      … 調理時間設定時の表示を行う。
・startDisplay      … 調理開始時の表示を行う。
・stopDisplay       … 調理完了時の表示を行う。
・cookTimerDisplay  … 調理中のカウントダウン表示を行う。

rangeCookModel

調理工程を制御する。
属性
・state             … 調理工程
・cookTimer         … 調理時間(カウント値)
操作
・cookManager       … 調理工程を制御する。以下の状態を持つ。
                            stateStandby:調理スタンバイ
                            stateCook:調理中
                            stateEnd:調理完了
・cookStart         … 調理工程を開始する。
・getCookTimer      … 調理時間を取得する。

rangeMagnetronModel

マグネトロンの駆動を制御する。
属性
・mqOnTime      … マグネトロンON時間設定値
・mqOffTime     … マグネトロンOFF時間設定値
・state         … マグネトロンON又は、OFFの状態
・mqCounter     … マグネトロンON又は、OFFのカウント値
操作
・manager       … マグネトロンON、OFF状態を制御する。
・init          … マグネトロン駆動状態を初期化する。
・mqStart       … マグネトロンの駆動時間を設定し、駆動制御を開始する。

rangeRelayModel

リレー制御を行う。
属性
・relayState    … リレーのON、OFF状態
操作
・relayOn       … リレー状態をONにする。
・relayOff      … リレー状態をOFFにする。

rangeTimerModel

制御に関する時間のカウントを行う。
属性
・timer         … カウント値のアドレス
・countEnable   … カウント許可
操作
・setTimer      … カウント値に時間をセットする。
・initTimer     … カウント値を初期化する。
・countTimer    … カウントを行う。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published