My final year project
Dependencies: BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem TS_DISCO_F746NG ResistiveTouchController Map CYS8218Controller MedianFilter
Screens/CalibrateScreen.cpp@38:f1c571d22919, 2016-10-08 (annotated)
- 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?
User | Revision | Line number | New 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 | } |