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:
Mon Oct 03 12:19:03 2016 +0200
Revision:
26:f57db8d6d79e
Parent:
23:bab197887d5e
Child:
62:58e846621435
Added ChangeValWholeScreen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Generic 15:bc63b55a426d 1 #include "AutomaticControlScreen.hpp"
Kerneels Bezuidenhout 14:5beb6b4850b7 2
Generic 15:bc63b55a426d 3 AutomaticControlScreen::AutomaticControlScreen(int *nextScreen, float *xPos, float *yPos, int *Ts, bool *started, int *ballOnPlate, float *xSP, float *ySP) :
Kerneels Bezuidenhout 14:5beb6b4850b7 4 Screen(),
Kerneels Bezuidenhout 14:5beb6b4850b7 5 _lbTitle( SCREEN_W/2, 0, "Automatic", Label::CENTER, Font24),
Kerneels Bezuidenhout 14:5beb6b4850b7 6 _btBack( 0, SCREEN_H-30, 100, 30, "Back"),
Kerneels Bezuidenhout 14:5beb6b4850b7 7 _btSettings(SCREEN_W-100, SCREEN_H-30, 100, 30, "Settings"),
Kerneels Bezuidenhout 20:70c5b1e499f0 8 _btStart(0, SCREEN_H-65, SCREEN_W, 30, "Start"),
Kerneels Bezuidenhout 20:70c5b1e499f0 9 _btStop(0, SCREEN_H-65, SCREEN_W, 30, "Stop"),
Generic 15:bc63b55a426d 10 _btMore((SCREEN_W/2)-50, SCREEN_H-30, 100, 30, "More"),
Kerneels Bezuidenhout 14:5beb6b4850b7 11 _nlbTs( SCREEN_W/2, 26, "Cycle Time (us):%d", *Ts, Label::CENTER),
Generic 17:3b6d66253c97 12 _gXPos( 0, 40, SCREEN_W/2-1, 158, -170, 170, "X Position (mm)"),
Generic 15:bc63b55a426d 13 _gYPos( SCREEN_W/2+1, 40, SCREEN_W/2-1, 158, -136, 136, "Y Position (mm)")
Kerneels Bezuidenhout 14:5beb6b4850b7 14 {
Kerneels Bezuidenhout 14:5beb6b4850b7 15 _nextScreen = nextScreen;
Kerneels Bezuidenhout 14:5beb6b4850b7 16 _xPos = xPos;
Kerneels Bezuidenhout 14:5beb6b4850b7 17 _yPos = yPos;
Kerneels Bezuidenhout 14:5beb6b4850b7 18 _Ts = Ts;
Kerneels Bezuidenhout 14:5beb6b4850b7 19 _started = started;
Kerneels Bezuidenhout 14:5beb6b4850b7 20 _xSP = xSP;
Kerneels Bezuidenhout 14:5beb6b4850b7 21 _ySP = ySP;
Kerneels Bezuidenhout 20:70c5b1e499f0 22 _ballOnPlate = ballOnPlate;
Kerneels Bezuidenhout 14:5beb6b4850b7 23 }
Kerneels Bezuidenhout 14:5beb6b4850b7 24
Kerneels Bezuidenhout 14:5beb6b4850b7 25 void AutomaticControlScreen::Draw()
Kerneels Bezuidenhout 14:5beb6b4850b7 26 {
Kerneels Bezuidenhout 14:5beb6b4850b7 27 Clear();
Kerneels Bezuidenhout 14:5beb6b4850b7 28 _lbTitle.Draw();
Kerneels Bezuidenhout 14:5beb6b4850b7 29 _btBack.Draw();
Kerneels Bezuidenhout 14:5beb6b4850b7 30 _btSettings.Draw();
Kerneels Bezuidenhout 20:70c5b1e499f0 31 _btStop.Inactivate();
Kerneels Bezuidenhout 14:5beb6b4850b7 32 _btStart.Inactivate();
Kerneels Bezuidenhout 14:5beb6b4850b7 33 _btStart.Draw();
Kerneels Bezuidenhout 14:5beb6b4850b7 34 _btMore.Draw();
Kerneels Bezuidenhout 14:5beb6b4850b7 35 _nlbTs.Draw();
Kerneels Bezuidenhout 14:5beb6b4850b7 36 _gXPos.Draw();
Kerneels Bezuidenhout 14:5beb6b4850b7 37 _gYPos.Draw();
Kerneels Bezuidenhout 14:5beb6b4850b7 38 }
Kerneels Bezuidenhout 14:5beb6b4850b7 39
Generic 15:bc63b55a426d 40 void AutomaticControlScreen::Process()
Kerneels Bezuidenhout 14:5beb6b4850b7 41 {
Kerneels Bezuidenhout 14:5beb6b4850b7 42 if( _btBack.Touched() )
Kerneels Bezuidenhout 14:5beb6b4850b7 43 {
Kerneels Bezuidenhout 26:f57db8d6d79e 44 *_started = false;
Kerneels Bezuidenhout 14:5beb6b4850b7 45 *_nextScreen = MAIN_MENU_SCREEN;
Kerneels Bezuidenhout 14:5beb6b4850b7 46 }
Kerneels Bezuidenhout 14:5beb6b4850b7 47
Kerneels Bezuidenhout 14:5beb6b4850b7 48 if( _btSettings.Touched() )
Kerneels Bezuidenhout 14:5beb6b4850b7 49 {
Generic 23:bab197887d5e 50 *_nextScreen = AUTOMATIC_SETTINGS_SCREEN;
Kerneels Bezuidenhout 14:5beb6b4850b7 51 }
Kerneels Bezuidenhout 14:5beb6b4850b7 52
Kerneels Bezuidenhout 14:5beb6b4850b7 53 if( _btMore.Touched() )
Kerneels Bezuidenhout 14:5beb6b4850b7 54 {
Kerneels Bezuidenhout 20:70c5b1e499f0 55 if( *_started )
Kerneels Bezuidenhout 20:70c5b1e499f0 56 {
Kerneels Bezuidenhout 20:70c5b1e499f0 57 *_started = false;
Kerneels Bezuidenhout 20:70c5b1e499f0 58 }
Kerneels Bezuidenhout 20:70c5b1e499f0 59
Kerneels Bezuidenhout 18:1b9579ac9f41 60 *_nextScreen = AUTOMATIC_MORE_SCREEN;
Kerneels Bezuidenhout 14:5beb6b4850b7 61 }
Kerneels Bezuidenhout 14:5beb6b4850b7 62
Generic 16:6b553c9008ec 63
Kerneels Bezuidenhout 20:70c5b1e499f0 64 if( _btStart.IsActive() )
Kerneels Bezuidenhout 19:ef78ac1a98f8 65 {
Kerneels Bezuidenhout 20:70c5b1e499f0 66 if( !*_ballOnPlate )
Kerneels Bezuidenhout 20:70c5b1e499f0 67 _btStart.Inactivate();
Kerneels Bezuidenhout 22:dd9ff475b34c 68 else if( _btStart.Touched() )
Generic 16:6b553c9008ec 69 {
Kerneels Bezuidenhout 22:dd9ff475b34c 70 _btStart.Inactivate();
Kerneels Bezuidenhout 22:dd9ff475b34c 71 _btStart.Erase();
Kerneels Bezuidenhout 22:dd9ff475b34c 72 _btStop.Activate();
Kerneels Bezuidenhout 22:dd9ff475b34c 73 _btStop.Draw(0xFFFF0000);
Kerneels Bezuidenhout 22:dd9ff475b34c 74 Thread::wait(200);
Kerneels Bezuidenhout 22:dd9ff475b34c 75 *_started = true;
Kerneels Bezuidenhout 19:ef78ac1a98f8 76 }
Kerneels Bezuidenhout 20:70c5b1e499f0 77 }
Kerneels Bezuidenhout 20:70c5b1e499f0 78 else if( _btStop.IsActive() )
Kerneels Bezuidenhout 20:70c5b1e499f0 79 {
Kerneels Bezuidenhout 20:70c5b1e499f0 80 if( _btStop.Touched() )
Kerneels Bezuidenhout 19:ef78ac1a98f8 81 {
Kerneels Bezuidenhout 20:70c5b1e499f0 82 _btStop.Inactivate();
Kerneels Bezuidenhout 20:70c5b1e499f0 83 _btStop.Erase();
Kerneels Bezuidenhout 20:70c5b1e499f0 84 _btStart.Activate();
Kerneels Bezuidenhout 20:70c5b1e499f0 85 _btStart.Draw(0xFF00FF00);
Kerneels Bezuidenhout 20:70c5b1e499f0 86 Thread::wait(200);
Kerneels Bezuidenhout 20:70c5b1e499f0 87 *_started = false;
Kerneels Bezuidenhout 20:70c5b1e499f0 88 }
Kerneels Bezuidenhout 20:70c5b1e499f0 89 }
Kerneels Bezuidenhout 20:70c5b1e499f0 90 else if( *_ballOnPlate )
Kerneels Bezuidenhout 20:70c5b1e499f0 91 {
Kerneels Bezuidenhout 20:70c5b1e499f0 92 if( !_btStart.IsActive() )
Kerneels Bezuidenhout 20:70c5b1e499f0 93 {
Kerneels Bezuidenhout 20:70c5b1e499f0 94 _btStart.Activate();
Kerneels Bezuidenhout 20:70c5b1e499f0 95 _btStart.Draw(0xFF00FF00);
Generic 16:6b553c9008ec 96 }
Kerneels Bezuidenhout 14:5beb6b4850b7 97 }
Kerneels Bezuidenhout 14:5beb6b4850b7 98
Kerneels Bezuidenhout 20:70c5b1e499f0 99 if( *_ballOnPlate && *_started )
Kerneels Bezuidenhout 14:5beb6b4850b7 100 {
Kerneels Bezuidenhout 14:5beb6b4850b7 101 _gXPos.Insert(*_xPos);
Kerneels Bezuidenhout 20:70c5b1e499f0 102 _gYPos.Insert(*_yPos);
Kerneels Bezuidenhout 14:5beb6b4850b7 103
Kerneels Bezuidenhout 20:70c5b1e499f0 104 _gXPos.Update();
Kerneels Bezuidenhout 14:5beb6b4850b7 105 _gYPos.Update();
Kerneels Bezuidenhout 14:5beb6b4850b7 106
Kerneels Bezuidenhout 20:70c5b1e499f0 107 _nlbTs.Draw("Cycle time (us):%d",*_Ts);
Kerneels Bezuidenhout 20:70c5b1e499f0 108
Kerneels Bezuidenhout 20:70c5b1e499f0 109 if( *_xSP )
Kerneels Bezuidenhout 20:70c5b1e499f0 110 {
Kerneels Bezuidenhout 20:70c5b1e499f0 111 _gXPos.HLine(*_xSP);
Kerneels Bezuidenhout 20:70c5b1e499f0 112 }
Kerneels Bezuidenhout 20:70c5b1e499f0 113
Kerneels Bezuidenhout 20:70c5b1e499f0 114 if( *_ySP )
Kerneels Bezuidenhout 20:70c5b1e499f0 115 {
Kerneels Bezuidenhout 14:5beb6b4850b7 116 _gYPos.HLine(*_ySP);
Kerneels Bezuidenhout 20:70c5b1e499f0 117 }
Kerneels Bezuidenhout 14:5beb6b4850b7 118
Kerneels Bezuidenhout 14:5beb6b4850b7 119 }
Kerneels Bezuidenhout 14:5beb6b4850b7 120 }