タイマの基本部分は以下の画面でなんとかする。ということで仕様はほぼ決定。コード書いていきます。
●ランニング画面(screenID=0) 012345678901234567890 +---------------------+ 0|Interval Timer | 1|Del 99'99 Num 9999 | 2|Int 99'99 Exp 99'99" | 3| | 4|Ramen Timer | 5|A 99'99" B 99'99" | 6| | 7|YY/MM/DD hh:mm:ss XXX| +---------------------+ 0~6行は、実行中のステータス表示に使用する。 ESC: メニュー画面 ENT:時分をしゃべる チャイム音のあとに、hh時mm分です <NUMK VAL=hh COUNTER=ji>/<NUMK VAL=mm COUNTER=funn>de_su. ラーメンタイマーは、満了時刻30秒前に タイマーA あと30秒です ta'ima-/e'i a'to/<NUMK VAL=30 COUNTER=byo->de'_su. タイマーB あと30秒です ta'ima-/bi'- a'to/<NUMK VAL=30 COUNTER=byo->de'_su. と事前通知を行ない、時間満了でチャイム2回鳴らす。 ●メニュー画面-選択画面(screenID=1) 012345678901234567890 +---------------------+ 0|Set DATE & TIME | 1|Interval Timer | 2|Ramen Timer | 3| | 4| | 5| | 6| | 7|YY/MM/DD hh:mm:ss XXX| +---------------------+ ESC: ランニング画面に戻る ENT: 選択されたメニューを表示 カーソル上下: メニュー選択 ●メニュー画面-Realtime Clock(screenID=2) Set DATE & TIME選択時の画面 012345678901234567890 +---------------------+ 0| | 1| YY __ hh __ | 2| MM __ mm __ | 3| DD __ ss __ | 4| DAY ___ | 5| ENT=Write RTC | 6| | 7|YY/MM/DD hh:mm:ss XXX| +---------------------+ ESC: ランニング画面に戻る ENT: RTC に最新時刻書き込む。ランニング画面に戻る カーソル上下: 値上下 カーソル左右: 項目移動 ●インターバルタイマ設定画面(screenID=3) 012345678901234567890 +---------------------+ 0|Interval Timer | 1| Delay 99'99 | 2| Interval 99'99 | 3| Exposure 99'99 | 4| Num Shot 9999 | 5| ENT=Start ESC=Back | 6| | 7|YY/MM/DD hh:mm:ss XXX| +---------------------+ ESC: ランニング画面に戻る ENT: インターバルタイマ開始し、ランニング画面に戻る ●ラーメンタイマ設定画面(screenID=4) 012345678901234567890 +---------------------+ 0|Ramen Timer | 1| | 2| Timer A 99'99 | 3| Timer B 99'99 | 4| Enable A X B X | 5| ENT=Start ESC=Back | 6| | 7|YY/MM/DD hh:mm:ss XXX| +---------------------+ ESC: ランニング画面に戻る ENT: ラーメンタイマ開始し、ランニング画面に戻る
動作の様子は以下の youtube に上げた動画のとおりです。
- インターバルタイマ機能
- ラーメンタイマ機能
- 時間をしゃべらせる
などです。
現状は、画面に出すのを最優先でコーディングしましたので、vfd の描画を一々消してから再描画などやってまして、画面がチカチカします。今後は、再描画の範囲を減らして操作しやすいようにしていきましょう。