Cornelius Bezuidenhout / Mbed OS Heiko

Dependencies:   BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem TS_DISCO_F746NG ResistiveTouchController Map CYS8218Controller MedianFilter

Committer:
Kerneels Bezuidenhout
Date:
Mon Oct 03 17:12:39 2016 +0200
Revision:
35:6baa558d3b86
Parent:
34:0b308a399f72
Child:
37:93c7563f2078
Testing calibration

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 35:6baa558d3b86 3 CalibrateScreen::CalibrateScreen(int *nextScreen, int *ballOnPlate, bool *calStarted, 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 32:d490f8ca6d2a 13 }
Kerneels Bezuidenhout 32:d490f8ca6d2a 14
Kerneels Bezuidenhout 32:d490f8ca6d2a 15 void CalibrateScreen::Draw()
Kerneels Bezuidenhout 32:d490f8ca6d2a 16 {
Kerneels Bezuidenhout 32:d490f8ca6d2a 17 Clear();
Kerneels Bezuidenhout 34:0b308a399f72 18
Kerneels Bezuidenhout 32:d490f8ca6d2a 19 _lbTitle.Draw();
Kerneels Bezuidenhout 32:d490f8ca6d2a 20 _btBack.Draw();
Kerneels Bezuidenhout 34:0b308a399f72 21
Kerneels Bezuidenhout 35:6baa558d3b86 22 DisplayMessage();
Kerneels Bezuidenhout 32:d490f8ca6d2a 23 }
Kerneels Bezuidenhout 32:d490f8ca6d2a 24
Kerneels Bezuidenhout 32:d490f8ca6d2a 25 void CalibrateScreen::Process()
Kerneels Bezuidenhout 32:d490f8ca6d2a 26 {
Kerneels Bezuidenhout 32:d490f8ca6d2a 27 if( _btBack.Touched() )
Kerneels Bezuidenhout 35:6baa558d3b86 28 {
Kerneels Bezuidenhout 35:6baa558d3b86 29 *_calStarted = false;
Kerneels Bezuidenhout 35:6baa558d3b86 30 *_calPoint = 0;
Kerneels Bezuidenhout 35:6baa558d3b86 31 *_nextScreen = MAIN_SETTINGS_SCREEN;
Kerneels Bezuidenhout 35:6baa558d3b86 32 }
Kerneels Bezuidenhout 35:6baa558d3b86 33
Kerneels Bezuidenhout 35:6baa558d3b86 34 DisplayMessage();
Kerneels Bezuidenhout 32:d490f8ca6d2a 35 }
Kerneels Bezuidenhout 35:6baa558d3b86 36
Kerneels Bezuidenhout 35:6baa558d3b86 37 void CalibrateScreen::DisplayMessage()
Kerneels Bezuidenhout 35:6baa558d3b86 38 {
Kerneels Bezuidenhout 35:6baa558d3b86 39 if( *_calStarted)
Kerneels Bezuidenhout 35:6baa558d3b86 40 {
Kerneels Bezuidenhout 35:6baa558d3b86 41 if( *_ballOnPlate )
Kerneels Bezuidenhout 35:6baa558d3b86 42 {
Kerneels Bezuidenhout 35:6baa558d3b86 43 float _tempHeldTime = 5;
Kerneels Bezuidenhout 35:6baa558d3b86 44 _tempHeldTime -= *_heldTime;
Kerneels Bezuidenhout 35:6baa558d3b86 45
Kerneels Bezuidenhout 35:6baa558d3b86 46 if( _tempHeldTime <= 0 )
Kerneels Bezuidenhout 35:6baa558d3b86 47 {
Kerneels Bezuidenhout 35:6baa558d3b86 48 sprintf(message, "Release");
Kerneels Bezuidenhout 35:6baa558d3b86 49 }
Kerneels Bezuidenhout 35:6baa558d3b86 50 else
Kerneels Bezuidenhout 35:6baa558d3b86 51 {
Kerneels Bezuidenhout 35:6baa558d3b86 52 sprintf(message, "%.0f", _tempHeldTime);
Kerneels Bezuidenhout 35:6baa558d3b86 53 }
Kerneels Bezuidenhout 35:6baa558d3b86 54 }
Kerneels Bezuidenhout 35:6baa558d3b86 55 else
Kerneels Bezuidenhout 35:6baa558d3b86 56 {
Kerneels Bezuidenhout 35:6baa558d3b86 57 sprintf(message, "Touch and hold position %d", *_pointToMeasure);
Kerneels Bezuidenhout 35:6baa558d3b86 58 }
Kerneels Bezuidenhout 35:6baa558d3b86 59 }
Kerneels Bezuidenhout 35:6baa558d3b86 60 else
Kerneels Bezuidenhout 35:6baa558d3b86 61 {
Kerneels Bezuidenhout 35:6baa558d3b86 62 if( *_ballOnPlate)
Kerneels Bezuidenhout 35:6baa558d3b86 63 {
Kerneels Bezuidenhout 35:6baa558d3b86 64 sprintf(_message, "Please remove ball from plate");
Kerneels Bezuidenhout 35:6baa558d3b86 65 }
Kerneels Bezuidenhout 35:6baa558d3b86 66 else
Kerneels Bezuidenhout 35:6baa558d3b86 67 {
Kerneels Bezuidenhout 35:6baa558d3b86 68 *_calStarted = true;
Kerneels Bezuidenhout 35:6baa558d3b86 69 }
Kerneels Bezuidenhout 35:6baa558d3b86 70 }
Kerneels Bezuidenhout 35:6baa558d3b86 71
Kerneels Bezuidenhout 35:6baa558d3b86 72 _lbMessage.Draw(_message);
Kerneels Bezuidenhout 35:6baa558d3b86 73 }