My final year project

Dependencies:   BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem TS_DISCO_F746NG ResistiveTouchController Map CYS8218Controller MedianFilter

Committer:
Kerneels Bezuidenhout
Date:
Sat Oct 08 18:40:44 2016 +0200
Revision:
38:f1c571d22919
Parent:
37:93c7563f2078
Added warning splash screen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kerneels Bezuidenhout 32:d490f8ca6d2a 1 #include "CalibrateScreen.hpp"
Kerneels Bezuidenhout 32:d490f8ca6d2a 2
Kerneels Bezuidenhout 37:93c7563f2078 3 CalibrateScreen::CalibrateScreen(int *nextScreen, int *ballOnPlate, bool *calStarted, bool *calFinished, int *calPoint, float *calHeldTime) :
Kerneels Bezuidenhout 32:d490f8ca6d2a 4 Screen(),
Kerneels Bezuidenhout 32:d490f8ca6d2a 5 _lbTitle( SCREEN_W/2, 0, "Calibrate", Label::CENTER, Font24),
Kerneels Bezuidenhout 32:d490f8ca6d2a 6 _btBack( 0, SCREEN_H-30, 100, 30, "Back"),
Kerneels Bezuidenhout 32:d490f8ca6d2a 7 _lbMessage( SCREEN_W/2, SCREEN_H/2-10, "Please remove ball from plate", Label::CENTER, Font20)
Kerneels Bezuidenhout 32:d490f8ca6d2a 8 {
Kerneels Bezuidenhout 32:d490f8ca6d2a 9 _nextScreen = nextScreen;
Kerneels Bezuidenhout 34:0b308a399f72 10 _ballOnPlate = ballOnPlate;
Kerneels Bezuidenhout 35:6baa558d3b86 11 _calStarted = calStarted;
Kerneels Bezuidenhout 35:6baa558d3b86 12 _calHeldTime = calHeldTime;
Kerneels Bezuidenhout 37:93c7563f2078 13 _calPoint = calPoint;
Kerneels Bezuidenhout 37:93c7563f2078 14 _calFinished = calFinished;
Kerneels Bezuidenhout 32:d490f8ca6d2a 15 }
Kerneels Bezuidenhout 32:d490f8ca6d2a 16
Kerneels Bezuidenhout 32:d490f8ca6d2a 17 void CalibrateScreen::Draw()
Kerneels Bezuidenhout 32:d490f8ca6d2a 18 {
Kerneels Bezuidenhout 32:d490f8ca6d2a 19 Clear();
Kerneels Bezuidenhout 34:0b308a399f72 20
Kerneels Bezuidenhout 32:d490f8ca6d2a 21 _lbTitle.Draw();
Kerneels Bezuidenhout 32:d490f8ca6d2a 22 _btBack.Draw();
Kerneels Bezuidenhout 34:0b308a399f72 23
Kerneels Bezuidenhout 35:6baa558d3b86 24 DisplayMessage();
Kerneels Bezuidenhout 32:d490f8ca6d2a 25 }
Kerneels Bezuidenhout 32:d490f8ca6d2a 26
Kerneels Bezuidenhout 32:d490f8ca6d2a 27 void CalibrateScreen::Process()
Kerneels Bezuidenhout 32:d490f8ca6d2a 28 {
Kerneels Bezuidenhout 32:d490f8ca6d2a 29 if( _btBack.Touched() )
Kerneels Bezuidenhout 35:6baa558d3b86 30 {
Kerneels Bezuidenhout 37:93c7563f2078 31 *_calFinished = false;
Kerneels Bezuidenhout 35:6baa558d3b86 32 *_calStarted = false;
Kerneels Bezuidenhout 35:6baa558d3b86 33 *_calPoint = 0;
Kerneels Bezuidenhout 35:6baa558d3b86 34 *_nextScreen = MAIN_SETTINGS_SCREEN;
Kerneels Bezuidenhout 35:6baa558d3b86 35 }
Kerneels Bezuidenhout 35:6baa558d3b86 36
Kerneels Bezuidenhout 35:6baa558d3b86 37 DisplayMessage();
Kerneels Bezuidenhout 32:d490f8ca6d2a 38 }
Kerneels Bezuidenhout 35:6baa558d3b86 39
Kerneels Bezuidenhout 35:6baa558d3b86 40 void CalibrateScreen::DisplayMessage()
Kerneels Bezuidenhout 35:6baa558d3b86 41 {
Kerneels Bezuidenhout 35:6baa558d3b86 42 if( *_calStarted)
Kerneels Bezuidenhout 35:6baa558d3b86 43 {
Kerneels Bezuidenhout 35:6baa558d3b86 44 if( *_ballOnPlate )
Kerneels Bezuidenhout 35:6baa558d3b86 45 {
Kerneels Bezuidenhout 35:6baa558d3b86 46 float _tempHeldTime = 5;
Kerneels Bezuidenhout 37:93c7563f2078 47 _tempHeldTime -= *_calHeldTime;
Kerneels Bezuidenhout 35:6baa558d3b86 48
Kerneels Bezuidenhout 35:6baa558d3b86 49 if( _tempHeldTime <= 0 )
Kerneels Bezuidenhout 35:6baa558d3b86 50 {
Kerneels Bezuidenhout 37:93c7563f2078 51 sprintf(_message, "Release");
Kerneels Bezuidenhout 35:6baa558d3b86 52 }
Kerneels Bezuidenhout 35:6baa558d3b86 53 else
Kerneels Bezuidenhout 35:6baa558d3b86 54 {
Kerneels Bezuidenhout 37:93c7563f2078 55 sprintf(_message, "%.0f", _tempHeldTime);
Kerneels Bezuidenhout 35:6baa558d3b86 56 }
Kerneels Bezuidenhout 35:6baa558d3b86 57 }
Kerneels Bezuidenhout 35:6baa558d3b86 58 else
Kerneels Bezuidenhout 35:6baa558d3b86 59 {
Kerneels Bezuidenhout 37:93c7563f2078 60 sprintf(_message, "Touch and hold position %d", *_calPoint+1);
Kerneels Bezuidenhout 35:6baa558d3b86 61 }
Kerneels Bezuidenhout 35:6baa558d3b86 62 }
Kerneels Bezuidenhout 35:6baa558d3b86 63 else
Kerneels Bezuidenhout 35:6baa558d3b86 64 {
Kerneels Bezuidenhout 38:f1c571d22919 65 if( *_ballOnPlate && !*_calFinished)
Kerneels Bezuidenhout 35:6baa558d3b86 66 {
Kerneels Bezuidenhout 35:6baa558d3b86 67 sprintf(_message, "Please remove ball from plate");
Kerneels Bezuidenhout 35:6baa558d3b86 68 }
Kerneels Bezuidenhout 35:6baa558d3b86 69 else
Kerneels Bezuidenhout 35:6baa558d3b86 70 {
Kerneels Bezuidenhout 37:93c7563f2078 71 if( *_calFinished )
Kerneels Bezuidenhout 37:93c7563f2078 72 {
Kerneels Bezuidenhout 37:93c7563f2078 73 sprintf(_message, "Calibration Done");
Kerneels Bezuidenhout 37:93c7563f2078 74 }
Kerneels Bezuidenhout 37:93c7563f2078 75 else
Kerneels Bezuidenhout 37:93c7563f2078 76 {
Kerneels Bezuidenhout 37:93c7563f2078 77 *_calStarted = true;
Kerneels Bezuidenhout 37:93c7563f2078 78 }
Kerneels Bezuidenhout 35:6baa558d3b86 79 }
Kerneels Bezuidenhout 35:6baa558d3b86 80 }
Kerneels Bezuidenhout 35:6baa558d3b86 81
Kerneels Bezuidenhout 35:6baa558d3b86 82 _lbMessage.Draw(_message);
Kerneels Bezuidenhout 35:6baa558d3b86 83 }